From c6162464e1010f6c961b692fa2dfa6631abe2537 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Fri, 17 Jul 2020 16:05:29 -0400 Subject: [PATCH] Update Quality Declarations to level 3. (#77) * Update Quality Declarations to level 3. Signed-off-by: Chris Lalancette --- rosidl_typesupport_c/QUALITY_DECLARATION.md | 53 +++++++++++------- rosidl_typesupport_cpp/QUALITY_DECLARATION.md | 54 +++++++++++++------ 2 files changed, 72 insertions(+), 35 deletions(-) diff --git a/rosidl_typesupport_c/QUALITY_DECLARATION.md b/rosidl_typesupport_c/QUALITY_DECLARATION.md index 2e540bcd..7809c1f3 100644 --- a/rosidl_typesupport_c/QUALITY_DECLARATION.md +++ b/rosidl_typesupport_c/QUALITY_DECLARATION.md @@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rosidl_typesupport_c # rosidl_typesupport_c Quality Declaration -The package `rosidl_typesupport_c` claims to be in the **Quality Level 4** category. +The package `rosidl_typesupport_c` claims to be in the **Quality Level 3** category. -Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 4 in REP-2004](https://www.ros.org/reps/rep-2004.html). +Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 3 in REP-2004](https://www.ros.org/reps/rep-2004.html). ## Version Policy [1] @@ -14,7 +14,7 @@ Below are the rationales, notes, and caveats for this claim, organized by each r ### Version Stability [1.ii] -`rosidl_typesupport_c` is not yet at a stable version, i.e. `>= 1.0.0`. +`rosidl_typesupport_c` is at a stable version, i.e. >= 1.0.0. The current version can be found in its [package.xml](./package.xml), and its change history can be found in its [CHANGELOG](./CHANGELOG.rst). ### Public API Declaration [1.iii] @@ -30,7 +30,6 @@ All installed headers are in the `include` directory of the package, headers in `rosidl_typesupport_c` contains C code and therefore must be concerned with ABI stability, and will maintain ABI stability within a ROS distribution. - ## Change Control Process [2] `rosidl_typesupport_c` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-requirements). @@ -40,6 +39,7 @@ All installed headers are in the `include` directory of the package, headers in This package requires that all changes occur through a pull request. ### Contributor Origin [2.ii] + This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md). @@ -69,7 +69,7 @@ All pull requests must resolve related documentation changes before merging. ### Public API Documentation [3.ii] -`rosidl_typesupport_c` has documentation of its public API, but it is not yet hosted. +`rosidl_typesupport_c` has documentation of its public API, and it is publicly [hosted](http://docs.ros2.org/latest/api/rosidl_typesupport_c/index.html). ### License [3.iii] @@ -77,27 +77,43 @@ The license for `rosidl_typesupport_c` is Apache 2.0, and a summary is in each s There is an automated test which runs a linter that ensures each file has a license statement. +Most recent test results can be found [here](http://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_c/copyright). + ### Copyright Statements [3.iv] The copyright holders each provide a statement of copyright in each source code file in `rosidl_typesupport_c`. There is an automated test which runs a linter that ensures each file has at least one copyright statement. -Most recent test results can be found [here](http://build.ros2.org/view/Epr/job/Epr__rosidl_typesupport__ubuntu_bionic_amd64/lastBuild/testReport/rosidl_typesupport_c/) +Most recent test results can be found [here](http://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_c/copyright). ## Testing [4] ### Feature Testing [4.i] -There are currently no public features undergoing tests. +The features of `rosidl_typesupport_c` are tested, and their tests are located in the [test directory](https://github.com/ros2/rosidl_typesupport/tree/master/rosidl_typesupport_c/test). + +Most recent test results can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_c). ### Public API Testing [4.ii] -There are currently no tests for the public API. +The public API of `rosidl_typesupport_c` is tested, and the tests are located in the [test directory](https://github.com/ros2/rosidl_typesupport/tree/master/rosidl_typesupport_c/test). + +Most recent test results can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_c). ### Coverage [4.iv] -`rosidl_typesupport_c` does not currently track test coverage. +`rosidl_typesupport_c` follows the recommendations for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#code-coverage), and opts to use line coverage instead of branch coverage. + +This includes: + +- tracking and reporting line coverage statistics +- achieving and maintaining a reasonable branch line coverage (90-100%) +- no lines are manually skipped in coverage calculations + +Changes are required to make a best effort to keep or increase coverage before being accepted, but decreases are allowed if properly justified and accepted by reviewers. + +Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_coverage/lastSuccessfulBuild/cobertura/src_ros2_rosidl_typesupport_rosidl_typesupport_c_src/). A description of how coverage statistics are calculated is summarized in this page ["ROS 2 Onboarding Guide"](https://index.ros.org/doc/ros2/Contributing/ROS-2-On-boarding-Guide/#note-on-coverage-runs). ### Performance [4.iv] @@ -105,26 +121,25 @@ There are currently no tests for the public API. ### Linters and Static Analysis [4.v] -`rosidl_typesupport_c` uses and passes all the standard linters and static analysis tools for a C++ package as described in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters). +`rosidl_typesupport_c` uses and passes all the standard linters and static analysis tools for a C package as described in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters). -Results of the linting tests can be found [here](http://build.ros2.org/view/Epr/job/Epr__rosidl_typesupport__ubuntu_bionic_amd64/lastBuild/testReport/rosidl_typesupport_c/). +Results of the linting tests can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_c/). ## Dependencies [5] ### Direct Runtime ROS Dependencies [5.i/5.ii] + `rosidl_typesupport_c` has the following runtime ROS dependencies: -* `rcpputils` -* `rosidl_runtime_c` -* `rosidl_typesupport_connext_c` -* `rosidl_typesupport_interface` -* `rosidl_typesupport_introspection_c` +* `rcpputils`: [QUALITY DECLARATION](https://github.com/ros2/rcpputils/tree/master/QUALITY_DECLARATION.md) +* `rosidl_runtime_c`: [QUALITY DECLARATION](https://github.com/ros2/rosidl/tree/master/rosidl_runtime_c/QUALITY_DECLARATION.md) +* `rosidl_typesupport_interface`: [QUALITY DECLARATION](https://github.com/ros2/rosidl/tree/master/rosidl_typesupport_interface/QUALITY_DECLARATION.md) It has "buildtool" dependencies, which do not affect the resulting quality of the package, because they do not contribute to the public library API. It also has several test dependencies, which do not affect the resulting quality of the package, because they are only used to build and run the test code. ### Direct Runtime Non-ROS Dependencies [5.iii] -`rosidl_typesupport_cpp` does not have any runtime non-ROS dependencies. +`rosidl_typesupport_c` does not have any runtime non-ROS dependencies. ## Platform Support [6] @@ -136,6 +151,8 @@ Currently nightly results can be seen here: * [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rosidl_typesupport_c/) * [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rosidl_typesupport_c/) -## Vulnerability Disclosure Policy [7.i] +## Security [7] + +### Vulnerability Disclosure Policy [7.i] This package conforms to the Vulnerability Disclosure Policy in [REP-2006](https://www.ros.org/reps/rep-2006.html). diff --git a/rosidl_typesupport_cpp/QUALITY_DECLARATION.md b/rosidl_typesupport_cpp/QUALITY_DECLARATION.md index f2ab228f..933a02eb 100644 --- a/rosidl_typesupport_cpp/QUALITY_DECLARATION.md +++ b/rosidl_typesupport_cpp/QUALITY_DECLARATION.md @@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rosidl_typesupport_c # rosidl_typesupport_cpp Quality Declaration -The package `rosidl_typesupport_cpp` claims to be in the **Quality Level 4** category. +The package `rosidl_typesupport_cpp` claims to be in the **Quality Level 3** category. -Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 4 in REP-2004](https://www.ros.org/reps/rep-2004.html). +Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Requirements for Quality Level 3 in REP-2004](https://www.ros.org/reps/rep-2004.html). ## Version Policy [1] @@ -14,7 +14,7 @@ Below are the rationales, notes, and caveats for this claim, organized by each r ### Version Stability [1.ii] -`rosidl_typesupport_cpp` is not yet at a stable version, i.e. `>= 1.0.0`. +`rosidl_typesupport_cpp` is at a stable version, i.e. >= 1.0.0. The current version can be found in its [package.xml](./package.xml), and its change history can be found in its [CHANGELOG](./CHANGELOG.rst). ### Public API Declaration [1.iii] @@ -28,7 +28,7 @@ All installed headers are in the `include` directory of the package, headers in ### ABI Stability Within a Released ROS Distribution [1.v]/[1.vi] -`rosidl_typesupport_cpp` contains C code and therefore must be concerned with ABI stability, and will maintain ABI stability within a ROS distribution. +`rosidl_typesupport_cpp` contains C++ code and therefore must be concerned with ABI stability, and will maintain ABI stability within a ROS distribution. ## Change Control Process [2] @@ -39,6 +39,7 @@ All installed headers are in the `include` directory of the package, headers in This package requires that all changes occur through a pull request. ### Contributor Origin [2.ii] + This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md). @@ -68,7 +69,7 @@ All pull requests must resolve related documentation changes before merging. ### Public API Documentation [3.ii] -`rosidl_typesupport_cpp` has documentation of its public API, but it is not yet hosted. +`rosidl_typesupport_cpp` has documentation of its public API, and it is publicly [hosted](http://docs.ros2.org/latest/api/rosidl_typesupport_cpp/index.html). ### License [3.iii] @@ -76,7 +77,7 @@ The license for `rosidl_typesupport_cpp` is Apache 2.0, and a summary is in each There is an automated test which runs a linter that ensures each file has a license statement. -Most recent test results can be found [here](http://build.ros2.org/view/Epr/job/Epr__rosidl_typesupport__ubuntu_bionic_amd64/lastBuild/testReport/rosidl_typesupport_cpp/) +Most recent test results can be found [here](http://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_cpp/copyright). ### Copyright Statements [3.iv] @@ -84,19 +85,35 @@ The copyright holders each provide a statement of copyright in each source code There is an automated test which runs a linter that ensures each file has at least one copyright statement. +Most recent test results can be found [here](http://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_cpp/copyright). + ## Testing [4] ### Feature Testing [4.i] -There are currently no public features undergoing tests. +The features of `rosidl_typesupport_cpp` are tested, and their tests are located in the [test directory](https://github.com/ros2/rosidl_typesupport/tree/master/rosidl_typesupport_cpp/test). + +Most recent test results can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_cpp). ### Public API Testing [4.ii] -There are currently no tests for the public API. +The public API of `rosidl_typesupport_cpp` is tested, and the tests are located in the [test directory](https://github.com/ros2/rosidl_typesupport/tree/master/rosidl_typesupport_cpp/test). + +Most recent test results can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_cpp). ### Coverage [4.iii] -`rosidl_typesupport_cpp` does not currently track test coverage. +`rosidl_typesupport_cpp` follows the recommendations for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#code-coverage), and opts to use line coverage instead of branch coverage. + +This includes: + +- tracking and reporting line coverage statistics +- achieving and maintaining a reasonable branch line coverage (90-100%) +- no lines are manually skipped in coverage calculations + +Changes are required to make a best effort to keep or increase coverage before being accepted, but decreases are allowed if properly justified and accepted by reviewers. + +Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_coverage/lastSuccessfulBuild/cobertura/src_ros2_rosidl_typesupport_rosidl_typesupport_cpp_src/). A description of how coverage statistics are calculated is summarized in this page ["ROS 2 Onboarding Guide"](https://index.ros.org/doc/ros2/Contributing/ROS-2-On-boarding-Guide/#note-on-coverage-runs). ### Performance [4.iv] @@ -106,17 +123,18 @@ There are currently no tests for the public API. `rosidl_typesupport_cpp` uses and passes all the standard linters and static analysis tools for a C++ package as described in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters). -The latest linting results can be found [here](http://build.ros2.org/view/Epr/job/Epr__rosidl_typesupport__ubuntu_bionic_amd64/lastBuild/testReport/rosidl_typesupport_cpp/). +Results of the linting tests can be found [here](https://ci.ros2.org/job/nightly_linux_release/lastBuild/testReport/rosidl_typesupport_cpp/). ## Dependencies [5] -### Direct Runtime ROS Dependencies [5.i/5.ii] +### Direct and Optional Runtime ROS Dependencies [5.i/5.ii] + `rosidl_typesupport_cpp` has the following runtime ROS dependencies: -* `rcpputils` -* `rosidl_runtime_c` -* `rosidl_typesupport_cpponnext_c` -* `rosidl_typesupport_interface` -* `rosidl_typesupport_introspection_c` +* `rcpputils`: [QUALITY DECLARATION](https://github.com/ros2/rcpputils/tree/master/QUALITY_DECLARATION.md) +* `rosidl_runtime_c`: [QUALITY DECLARATION](https://github.com/ros2/rosidl/tree/master/rosidl_runtime_c/QUALITY_DECLARATION.md) +* `rosidl_runtime_cpp`: [QUALITY DECLARATION](https://github.com/ros2/rosidl/tree/master/rosidl_runtime_cpp/QUALITY_DECLARATION.md) +* `rosidl_typesupport_c`: [QUALITY DECLARATION](../rosidl_typesupport_c/QUALITY_DECLARATION.md) +* `rosidl_typesupport_interface`: [QUALITY DECLARATION](https://github.com/ros2/rosidl/tree/master/rosidl_typesupport_interface/QUALITY_DECLARATION.md) It has "buildtool" dependencies, which do not affect the resulting quality of the package, because they do not contribute to the public library API. It also has several test dependencies, which do not affect the resulting quality of the package, because they are only used to build and run the test code. @@ -135,6 +153,8 @@ Currently nightly results can be seen here: * [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rosidl_typesupport_cpp/) * [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rosidl_typesupport_cpp/) -## Vulnerability Disclosure Policy [7.i] +## Security [7] + +### Vulnerability Disclosure Policy [7.i] This package conforms to the Vulnerability Disclosure Policy in [REP-2006](https://www.ros.org/reps/rep-2006.html).