You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@community.apache.org by "Tim Bossenmaier (Jira)" <ji...@apache.org> on 2023/03/02 16:52:00 UTC

[jira] [Updated] (COMDEV-495) Code Insights for Apache StreamPipes

     [ https://issues.apache.org/jira/browse/COMDEV-495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Bossenmaier updated COMDEV-495:
-----------------------------------
    Description: 
h3. *Apache StreamPipes*

Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.
h3. *Background*

StreamPipes has grown significantly throughout recent years. We were able to introduce a lot of new features and attracted both users and contributors. Putting the cherry on the cake, we were graduated as an Apache top level project in December 2022. We will of course continue developing new features and never rest to make StreamPipes even more amazing. Although, since we are approaching with full stream towards our `1.0` release, we want to project also to get more mature. Therefore, we want to address one of our Achilles' heels: our test coverage.

Don't worry, this issue is not about implementing myriads of tests for our code base. As a first step, we would like to make the status quo transparent. That means we want to measure our code coverage consistently across the whole codebase (Backend, UI, Python library) and report the coverage to [codecov|https://about.codecov.io/]. Furthermore, to benchmark ourselves and motivate us to provide tests with every contributing, we would like to lock the current test coverage as an lower threshold that we always want to achieve (meaning in case we drop CI builds fail etc). With time we then can increase the required coverage lever step to step.

More than monitoring our test coverage, we also want to invest in better and more clean code. Therefore, we would like to adopt [sonarcloud|https://www.sonarsource.com/products/sonarcloud/] for our repository.
h3. *Tasks*
 - [ ] calculate test coverage for all main parts of the repo
 - [ ] send coverage to codeCov
 - [ ] determine coverage threshold and let CI fail if below
 - [ ] include sonarcloud in CI setup
 - [ ] include automatic coverage report in PR validation (see an example [here|https://github.com/pydantic/pydantic/pull/648#issuecomment-509855300] ) -> optional
 - [ ] include automatic sonarcloud report in PR validation -> optional
 - [ ] what ever comes in your mind šŸ’” further ideas are always welcome

Ā 
h3. *ā—Important Noteā—*

Do not create any account in behalf of Apache StreamPipes in Sonarcloud or in CodeCov or using the name of Apache StreamPipes for any account creation. Your mentor will take care of it.

Ā 
h3. *Relevant Skills*
 - basic knowledge about GitHub worfklows

h3. *Learning Material*
 - [GitHub workflow docs|https://docs.github.com/en/actions/using-workflows]
 - [Apache StreamPipes workflows|https://github.com/apache/streampipes/tree/dev/.github/workflows]
 - [Sonarcloud for Monorepos|https://docs.sonarcloud.io/advanced-setup/monorepo-support/]
 - Using code cov for a monorepo: [https://www.curtiscode.dev/post/tools/codecov-monorepo/] & [https://docs.codecov.com/docs/flags]

Ā 

*References*

You can find our corresponding issue on GitHub [here|https://github.com/apache/streampipes/issues/1343]

Ā 
h3. *Name and Contact Information*

Name: Tim Bossenmaier

email: Ā bossenti[at]apache.org

community: dev[at]streampipes.apache.org

website: [https://streampipes.apache.org/]

  was:
h3. *Apache StreamPipes*
Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.

h3. *Background*
StreamPipes has grown significantly throughout recent years. We were able to introduce a lot of new features and attracted both users and contributors. Putting the cherry on the cake, we were graduated as an Apache top level project in December 2022. We will of course continue developing new features and never rest to make StreamPipes even more amazing. Although, since we are approaching with full stream towards our `1.0` release, we want to project also to get more mature. Therefore, we want to address one of our Achilles' heels: our test coverage.

Don't worry, this issue is not about implementing myriads of tests for our code base. As a first step, we would like to make the status quo transparent. That means we want to measure our code coverage consistently across the whole codebase (Backend, UI, Python library) and report the coverage to [codecov|https://about.codecov.io]. Furthermore, to benchmark ourselves and motivate us to provide tests with every contributing, we would like to lock the current test coverage as an lower threshold that we always want to achieve (meaning in case we drop CI builds fail etc). With time we then can increase the required coverage lever step to step.

More than monitoring our test coverage, we also want to invest in better and more clean code. Therefore, we would like to adopt [sonarcloud|https://www.sonarsource.com/products/sonarcloud/] for our repository.

h3. *Tasks*
 - [ ] calculate test coverage for all main parts of the repo
 - [ ] send coverage to codeCov
 - [ ] determine coverage threshold and let CI fail if below
 - [ ] include sonarcloud in CI setup
 - [ ] include automatic coverage report in PR validation (see an example [here|https://github.com/pydantic/pydantic/pull/648#issuecomment-509855300] ) -> optional
 - [ ] include automatic sonarcloud report in PR validation -> optional
 - [ ] what ever comes in your mind šŸ’” further ideas are always welcome

Ā 

h3. *ā—Important Noteā—*
Do not create any account in behalf of Apache StreamPipes in Sonarcloud or in CodeCov or using the name of Apache StreamPipes for any account creation. Your mentor will take care of it.

Ā 

h3. *Relevant Skills*
 - basic knowledge about GitHub worfklows

h3.*Learning Material*
 - [GitHub workflow docs|https://docs.github.com/en/actions/using-workflows]
 - [Apache StreamPipes workflows|https://github.com/apache/streampipes/tree/dev/.github/workflows]
 - [Sonarcloud for Monorepos|https://docs.sonarcloud.io/advanced-setup/monorepo-support/]
 - Using code cov for a monorepo: [https://www.curtiscode.dev/post/tools/codecov-monorepo/] & [https://docs.codecov.com/docs/flags]

Ā 

h3. *Name and Contact Information*

Name: Tim Bossenmaier

email: Ā bossenti[at]apache.org

community: dev[at]streampipes.apache.org

website: [https://streampipes.apache.org/]



> Code Insights for Apache StreamPipes
> ------------------------------------
>
>                 Key: COMDEV-495
>                 URL: https://issues.apache.org/jira/browse/COMDEV-495
>             Project: Community Development
>          Issue Type: Improvement
>          Components: GSoC/Mentoring ideas
>            Reporter: Tim Bossenmaier
>            Priority: Major
>              Labels: StreamPipes, gsoc, gsoc2023, mentor, part-time
>
> h3. *Apache StreamPipes*
> Apache StreamPipes (incubating) is a self-service (Industrial) IoT toolbox to enable non-technical users to connect, analyze and explore IoT data streams. StreamPipes offers several modules including StreamPipes Connect to easily connect data from industrial IoT sources, the Pipeline Editor to quickly create processing pipelines and several visualization modules for live and historic data exploration. Under the hood, StreamPipes utilizes an event-driven microservice paradigm of standalone, so-called analytics microservices making the system easy to extend for individual needs.
> h3. *Background*
> StreamPipes has grown significantly throughout recent years. We were able to introduce a lot of new features and attracted both users and contributors. Putting the cherry on the cake, we were graduated as an Apache top level project in December 2022. We will of course continue developing new features and never rest to make StreamPipes even more amazing. Although, since we are approaching with full stream towards our `1.0` release, we want to project also to get more mature. Therefore, we want to address one of our Achilles' heels: our test coverage.
> Don't worry, this issue is not about implementing myriads of tests for our code base. As a first step, we would like to make the status quo transparent. That means we want to measure our code coverage consistently across the whole codebase (Backend, UI, Python library) and report the coverage to [codecov|https://about.codecov.io/]. Furthermore, to benchmark ourselves and motivate us to provide tests with every contributing, we would like to lock the current test coverage as an lower threshold that we always want to achieve (meaning in case we drop CI builds fail etc). With time we then can increase the required coverage lever step to step.
> More than monitoring our test coverage, we also want to invest in better and more clean code. Therefore, we would like to adopt [sonarcloud|https://www.sonarsource.com/products/sonarcloud/] for our repository.
> h3. *Tasks*
>  - [ ] calculate test coverage for all main parts of the repo
>  - [ ] send coverage to codeCov
>  - [ ] determine coverage threshold and let CI fail if below
>  - [ ] include sonarcloud in CI setup
>  - [ ] include automatic coverage report in PR validation (see an example [here|https://github.com/pydantic/pydantic/pull/648#issuecomment-509855300] ) -> optional
>  - [ ] include automatic sonarcloud report in PR validation -> optional
>  - [ ] what ever comes in your mind šŸ’” further ideas are always welcome
> Ā 
> h3. *ā—Important Noteā—*
> Do not create any account in behalf of Apache StreamPipes in Sonarcloud or in CodeCov or using the name of Apache StreamPipes for any account creation. Your mentor will take care of it.
> Ā 
> h3. *Relevant Skills*
>  - basic knowledge about GitHub worfklows
> h3. *Learning Material*
>  - [GitHub workflow docs|https://docs.github.com/en/actions/using-workflows]
>  - [Apache StreamPipes workflows|https://github.com/apache/streampipes/tree/dev/.github/workflows]
>  - [Sonarcloud for Monorepos|https://docs.sonarcloud.io/advanced-setup/monorepo-support/]
>  - Using code cov for a monorepo: [https://www.curtiscode.dev/post/tools/codecov-monorepo/] & [https://docs.codecov.com/docs/flags]
> Ā 
> *References*
> You can find our corresponding issue on GitHub [here|https://github.com/apache/streampipes/issues/1343]
> Ā 
> h3. *Name and Contact Information*
> Name: Tim Bossenmaier
> email: Ā bossenti[at]apache.org
> community: dev[at]streampipes.apache.org
> website: [https://streampipes.apache.org/]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@community.apache.org
For additional commands, e-mail: dev-help@community.apache.org