[foxy] Update QD to QL 1 (#1480)
Signed-off-by: Stephen Brawner <brawner@gmail.com>
This commit is contained in:
parent
965b4d2c24
commit
a4fd8ceece
8 changed files with 148 additions and 140 deletions
|
@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rclcpp` package, bas
|
||||||
|
|
||||||
# rclcpp Quality Declaration
|
# rclcpp Quality Declaration
|
||||||
|
|
||||||
The package `rclcpp` claims to be in the **Quality Level 2** category.
|
The package `rclcpp` claims to be in the **Quality Level 1** category when it is used with a **Quality Level 1** middleware.
|
||||||
|
|
||||||
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
||||||
|
|
||||||
|
@ -57,12 +57,11 @@ All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://i
|
||||||
|
|
||||||
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
||||||
|
|
||||||
Currently nightly results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp/)
|
|
||||||
|
|
||||||
### Documentation Policy [2.v]
|
### Documentation Policy [2.v]
|
||||||
|
|
||||||
|
@ -72,23 +71,23 @@ All pull requests must resolve related documentation changes before merging.
|
||||||
|
|
||||||
### Feature Documentation [3.i]
|
### Feature Documentation [3.i]
|
||||||
|
|
||||||
`rclcpp` has a [feature list](http://docs.ros2.org/latest/api/rclcpp/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
`rclcpp` has a [feature list](http://docs.ros2.org/foxy/api/rclcpp/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
||||||
|
|
||||||
### Public API Documentation [3.ii]
|
### Public API Documentation [3.ii]
|
||||||
|
|
||||||
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/latest/api/rclcpp/).
|
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/foxy/api/rclcpp/).
|
||||||
|
|
||||||
### License [3.iii]
|
### License [3.iii]
|
||||||
|
|
||||||
The license for `rclcpp` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
The license for `rclcpp` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp/) can be found a list with the latest results of the various linters being run on the package.
|
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp/) can be found a list with the latest results of the various linters being run on the package.
|
||||||
|
|
||||||
### Copyright Statements [3.iv]
|
### Copyright Statements [3.iv]
|
||||||
|
|
||||||
The copyright holders each provide a statement of copyright in each source code file in `rclcpp`.
|
The copyright holders each provide a statement of copyright in each source code file in `rclcpp`.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp/copyright/).
|
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp/copyright/).
|
||||||
|
|
||||||
## Testing [4]
|
## Testing [4]
|
||||||
|
|
||||||
|
@ -97,12 +96,11 @@ There is an automated test which runs a linter that ensures each file has at lea
|
||||||
Each feature in `rclcpp` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp/tree/foxy/test) directory.
|
Each feature in `rclcpp` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp/tree/foxy/test) directory.
|
||||||
New features are required to have tests before being added.
|
New features are required to have tests before being added.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp/)
|
|
||||||
|
|
||||||
### Public API Testing [4.ii]
|
### Public API Testing [4.ii]
|
||||||
|
|
||||||
|
@ -121,23 +119,27 @@ This includes:
|
||||||
|
|
||||||
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.
|
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_rclcpp_rclcpp_src_rclcpp/). 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).
|
Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_foxy_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_src_rclcpp/). 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).
|
||||||
|
|
||||||
`rclcpp` has a line coverage `>= 95%`, which is calculated over all directories within `rclcpp` with the exception of the `experimental` directory.
|
`rclcpp` has a line coverage `>= 95%`, which is calculated over all directories within `rclcpp` with the exception of the `experimental` directory.
|
||||||
|
|
||||||
### Performance [4.iv]
|
### Performance [4.iv]
|
||||||
|
|
||||||
It is not yet defined if this package requires performance testing and how addresses this topic.
|
`rclcpp` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#performance), and opts to do performance analysis on each release rather than each change.
|
||||||
|
|
||||||
|
The performance tests of `rclcpp` are located in the [test/benchmark directory](https://github.com/ros2/rclcpp/tree/foxy/rclcpp/test/benchmark).
|
||||||
|
|
||||||
|
System level performance benchmarks that cover features of `rclcpp` can be found at:
|
||||||
|
* [Benchmarks](http://build.ros2.org/view/Fci/job/Fci__benchmark_ubuntu_focal_amd64/BenchmarkTable/)
|
||||||
|
* [Performance](http://build.ros2.org/view/Fci/job/Fci__nightly-performance_ubuntu_focal_amd64/lastCompletedBuild/)
|
||||||
|
|
||||||
|
Changes that introduce regressions in performance must be adequately justified in order to be accepted and merged.
|
||||||
|
|
||||||
### Linters and Static Analysis [4.v]
|
### Linters and Static Analysis [4.v]
|
||||||
|
|
||||||
`rclcpp` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
`rclcpp` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Currently nightly test results can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp).
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp/)
|
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp/)
|
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp/)
|
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp/)
|
|
||||||
|
|
||||||
## Dependencies [5]
|
## Dependencies [5]
|
||||||
|
|
||||||
|
@ -155,43 +157,43 @@ It also has several test dependencies, which do not affect the resulting quality
|
||||||
|
|
||||||
The `libstatistics_collector` package provides lightweight aggregation utilities to collect statistics and measure message metrics.
|
The `libstatistics_collector` package provides lightweight aggregation utilities to collect statistics and measure message metrics.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros-tooling/libstatistics_collector/tree/foxy/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros-tooling/libstatistics_collector/tree/foxy-devel/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcl`
|
#### `rcl`
|
||||||
|
|
||||||
`rcl` a library to support implementation of language specific ROS 2 Client Libraries.
|
`rcl` a library to support implementation of language specific ROS 2 Client Libraries.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcl_yaml_param_parser`
|
#### `rcl_yaml_param_parser`
|
||||||
|
|
||||||
The `rcl_yaml_param_parser` package provides an API that is used to parse YAML configuration files which may be used to configure ROS and specific nodes.
|
The `rcl_yaml_param_parser` package provides an API that is used to parse YAML configuration files which may be used to configure ROS and specific nodes.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/foxy/rcl_yaml_param_parser/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/foxy/rcl_yaml_param_parser/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcpputils`
|
#### `rcpputils`
|
||||||
|
|
||||||
The `rcpputils` package provides an API which contains common utilities and data structures useful when programming in C++.
|
The `rcpputils` package provides an API which contains common utilities and data structures useful when programming in C++.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcpputils/blob/foxy/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcpputils/blob/foxy/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcutils`
|
#### `rcutils`
|
||||||
|
|
||||||
The `rcutils` package provides an API which contains common utilities and data structures useful when programming in C.
|
The `rcutils` package provides an API which contains common utilities and data structures useful when programming in C.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/foxy/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/foxy/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rmw`
|
#### `rmw`
|
||||||
|
|
||||||
`rmw` is the ROS 2 middleware library.
|
`rmw` is the ROS 2 middleware library.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `statistics_msgs`
|
#### `statistics_msgs`
|
||||||
|
|
||||||
The `statistics_msgs` package contains ROS 2 message definitions for reporting statistics for topics and system resources.
|
The `statistics_msgs` package contains ROS 2 message definitions for reporting statistics for topics and system resources.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/statistics_msgs/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/statistics_msgs/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `tracetools`
|
#### `tracetools`
|
||||||
|
|
||||||
|
@ -207,11 +209,11 @@ It is **Quality Level 1**, see its [Quality Declaration document](https://gitlab
|
||||||
|
|
||||||
`rclcpp` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
`rclcpp` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
||||||
|
|
||||||
Currently nightly build status can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/rclcpp/)
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/rclcpp/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/rclcpp/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/rclcpp/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,4 @@ Visit the [rclcpp API documentation](http://docs.ros2.org/latest/api/rclcpp/) fo
|
||||||
|
|
||||||
## Quality Declaration
|
## Quality Declaration
|
||||||
|
|
||||||
This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
||||||
|
|
|
@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rclcpp_action` packa
|
||||||
|
|
||||||
# rclcpp_action Quality Declaration
|
# rclcpp_action Quality Declaration
|
||||||
|
|
||||||
The package `rclcpp_action` claims to be in the **Quality Level 2** category.
|
The package `rclcpp_action` claims to be in the **Quality Level 1** category when it is used with a **Quality Level 1** middleware.
|
||||||
|
|
||||||
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
||||||
|
|
||||||
|
@ -55,12 +55,11 @@ All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://i
|
||||||
|
|
||||||
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
||||||
|
|
||||||
Currently nightly results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_action/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_action/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_action/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_action/)
|
|
||||||
|
|
||||||
### Documentation Policy [2.v]
|
### Documentation Policy [2.v]
|
||||||
|
|
||||||
|
@ -70,23 +69,23 @@ All pull requests must resolve related documentation changes before merging.
|
||||||
|
|
||||||
### Feature Documentation [3.i]
|
### Feature Documentation [3.i]
|
||||||
|
|
||||||
`rclcpp_action` has a [feature list](http://docs.ros2.org/latest/api/rclcpp_action/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
`rclcpp_action` has a [feature list](http://docs.ros2.org/foxy/api/rclcpp_action/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
||||||
|
|
||||||
### Public API Documentation [3.ii]
|
### Public API Documentation [3.ii]
|
||||||
|
|
||||||
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/latest/api/rclcpp_action/).
|
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/foxy/api/rclcpp_action/).
|
||||||
|
|
||||||
### License [3.iii]
|
### License [3.iii]
|
||||||
|
|
||||||
The license for `rclcpp_action` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
The license for `rclcpp_action` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_action/) can be found a list with the latest results of the various linters being run on the package.
|
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_action/) can be found a list with the latest results of the various linters being run on the package.
|
||||||
|
|
||||||
### Copyright Statements [3.iv]
|
### Copyright Statements [3.iv]
|
||||||
|
|
||||||
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_action`.
|
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_action`.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_action/copyright/).
|
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_action/copyright/).
|
||||||
|
|
||||||
## Testing [4]
|
## Testing [4]
|
||||||
|
|
||||||
|
@ -95,12 +94,11 @@ There is an automated test which runs a linter that ensures each file has at lea
|
||||||
Each feature in `rclcpp_action` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp_action/tree/foxy/test) directory.
|
Each feature in `rclcpp_action` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp_action/tree/foxy/test) directory.
|
||||||
New features are required to have tests before being added.
|
New features are required to have tests before being added.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_action/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_action/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_action/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_action/)
|
|
||||||
|
|
||||||
### Public API Testing [4.ii]
|
### Public API Testing [4.ii]
|
||||||
|
|
||||||
|
@ -119,21 +117,25 @@ This includes:
|
||||||
|
|
||||||
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.
|
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_rclcpp_rclcpp_action_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).
|
Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_foxy_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_action_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]
|
### Performance [4.iv]
|
||||||
|
|
||||||
It is not yet defined if this package requires performance testing and how addresses this topic.
|
`rclcpp_action` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#performance), and opts to do performance analysis on each release rather than each change.
|
||||||
|
|
||||||
|
The performance tests of `rclcpp_action` are located in the [test/benchmark directory](https://github.com/ros2/rclcpp/tree/foxy/rclcpp_action/test/benchmark).
|
||||||
|
|
||||||
|
System level performance benchmarks that cover features of `rclcpp_action` can be found at:
|
||||||
|
* [Benchmarks](http://build.ros2.org/view/Fci/job/Fci__benchmark_ubuntu_focal_amd64/BenchmarkTable/)
|
||||||
|
* [Performance](http://build.ros2.org/view/Fci/job/Fci__nightly-performance_ubuntu_focal_amd64/lastCompletedBuild/)
|
||||||
|
|
||||||
|
Changes that introduce regressions in performance must be adequately justified in order to be accepted and merged.
|
||||||
|
|
||||||
### Linters and Static Analysis [4.v]
|
### Linters and Static Analysis [4.v]
|
||||||
|
|
||||||
`rclcpp_action` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
`rclcpp_action` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Currently nightly test results can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_action).
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_action/)
|
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_action/)
|
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_action/)
|
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_action/)
|
|
||||||
|
|
||||||
## Dependencies [5]
|
## Dependencies [5]
|
||||||
|
|
||||||
|
@ -151,19 +153,19 @@ It also has several test dependencies, which do not affect the resulting quality
|
||||||
|
|
||||||
`action_msgs` provides messages and services for ROS 2 actions.
|
`action_msgs` provides messages and services for ROS 2 actions.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/action_msgs/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/action_msgs/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rclcpp`
|
#### `rclcpp`
|
||||||
|
|
||||||
The `rclcpp` package provides the ROS client library in C++.
|
The `rclcpp` package provides the ROS client library in C++.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcl_action`
|
#### `rcl_action`
|
||||||
|
|
||||||
The `rcl_action` package provides C-based ROS action implementation.
|
The `rcl_action` package provides C-based ROS action implementation.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl_action/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl_action/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
### Direct Runtime non-ROS Dependency [5.iii]
|
### Direct Runtime non-ROS Dependency [5.iii]
|
||||||
|
|
||||||
|
@ -173,11 +175,11 @@ It is **Quality Level 2**, see its [Quality Declaration document](https://github
|
||||||
|
|
||||||
`rclcpp_action` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
`rclcpp_action` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
||||||
|
|
||||||
Currently nightly build status can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/rclcpp_action/)
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/rclcpp_action/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/rclcpp_action/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/rclcpp_action/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,4 @@ Visit the [rclcpp_action API documentation](http://docs.ros2.org/latest/api/rclc
|
||||||
|
|
||||||
## Quality Declaration
|
## Quality Declaration
|
||||||
|
|
||||||
This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
||||||
|
|
|
@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rclcpp_components` p
|
||||||
|
|
||||||
# rclcpp_components Quality Declaration
|
# rclcpp_components Quality Declaration
|
||||||
|
|
||||||
The package `rclcpp_components` claims to be in the **Quality Level 2** category.
|
The package `rclcpp_components` claims to be in the **Quality Level 1** category.
|
||||||
|
|
||||||
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
||||||
|
|
||||||
|
@ -55,12 +55,11 @@ All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://i
|
||||||
|
|
||||||
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
||||||
|
|
||||||
Currently nightly results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_components/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_components/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_components/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_components/)
|
|
||||||
|
|
||||||
### Documentation Policy [2.v]
|
### Documentation Policy [2.v]
|
||||||
|
|
||||||
|
@ -70,37 +69,36 @@ All pull requests must resolve related documentation changes before merging.
|
||||||
|
|
||||||
### Feature Documentation [3.i]
|
### Feature Documentation [3.i]
|
||||||
|
|
||||||
`rclcpp_components` has a [feature list](http://docs.ros2.org/latest/api/rclcpp_components/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
`rclcpp_components` has a [feature list](http://docs.ros2.org/foxy/api/rclcpp_components/) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
||||||
|
|
||||||
### Public API Documentation [3.ii]
|
### Public API Documentation [3.ii]
|
||||||
|
|
||||||
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/latest/api/rclcpp_components/).
|
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/foxy/api/rclcpp_components/).
|
||||||
|
|
||||||
### License [3.iii]
|
### License [3.iii]
|
||||||
|
|
||||||
The license for `rclcpp_components` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
The license for `rclcpp_components` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_components/) can be found a list with the latest results of the various linters being run on the package.
|
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_components/) can be found a list with the latest results of the various linters being run on the package.
|
||||||
|
|
||||||
### Copyright Statements [3.iv]
|
### Copyright Statements [3.iv]
|
||||||
|
|
||||||
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_components`.
|
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_components`.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_components/copyright).
|
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_components/copyright).
|
||||||
|
|
||||||
## Testing [4]
|
## Testing [4]
|
||||||
|
|
||||||
### Feature Testing [4.i]
|
### Feature Testing [4.i]
|
||||||
|
|
||||||
Each feature in `rclcpp_components` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp_components/tree/foxy/test) directory.
|
Each feature in `rclcpp_components` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp/tree/foxy/rclcpp_components/test) directory.
|
||||||
New features are required to have tests before being added.
|
New features are required to have tests before being added.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_components/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_components/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_components/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_components/)
|
|
||||||
|
|
||||||
### Public API Testing [4.ii]
|
### Public API Testing [4.ii]
|
||||||
|
|
||||||
|
@ -119,21 +117,25 @@ This includes:
|
||||||
|
|
||||||
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.
|
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_rclcpp_rclcpp_components_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).
|
Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_foxy_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_components_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]
|
### Performance [4.iv]
|
||||||
|
|
||||||
It is not yet defined if this package requires performance testing and how addresses this topic.
|
`rclcpp_components` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#performance), and opts to do performance analysis on each release rather than each change.
|
||||||
|
|
||||||
|
The performance tests of `rclcpp_components` are located in the [test/benchmark directory](https://github.com/ros2/rclcpp/tree/foxy/rclcpp_components/test/benchmark).
|
||||||
|
|
||||||
|
Package and system level performance benchmarks that cover features of `rclcpp_components` can be found at:
|
||||||
|
* [Benchmarks](http://build.ros2.org/view/Fci/job/Fci__benchmark_ubuntu_focal_amd64/BenchmarkTable/)
|
||||||
|
* [Performance](http://build.ros2.org/view/Fci/job/Fci__nightly-performance_ubuntu_focal_amd64/lastCompletedBuild/)
|
||||||
|
|
||||||
|
Changes that introduce regressions in performance must be adequately justified in order to be accepted and merged.
|
||||||
|
|
||||||
### Linters and Static Analysis [4.v]
|
### Linters and Static Analysis [4.v]
|
||||||
|
|
||||||
`rclcpp_components` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
`rclcpp_components` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Currently nightly test results can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_components).
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_components/)
|
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_components/)
|
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_components/)
|
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_components/)
|
|
||||||
|
|
||||||
## Dependencies [5]
|
## Dependencies [5]
|
||||||
|
|
||||||
|
@ -157,25 +159,25 @@ It is **Quality Level 1**, see its [Quality Declaration document](https://github
|
||||||
|
|
||||||
The `class_loader` package provides a ROS-independent package for loading plugins during runtime
|
The `class_loader` package provides a ROS-independent package for loading plugins during runtime
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros/class_loader/blob/ros2/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros/class_loader/blob/ros2/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `composition_interfaces`
|
#### `composition_interfaces`
|
||||||
|
|
||||||
The `composition_interfaces` package contains message and service definitions for managing composable nodes in a container process.
|
The `composition_interfaces` package contains message and service definitions for managing composable nodes in a container process.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/composition_interfaces/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/composition_interfaces/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rclcpp`
|
#### `rclcpp`
|
||||||
|
|
||||||
The `rclcpp` package provides the ROS client library in C++.
|
The `rclcpp` package provides the ROS client library in C++.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcpputils`
|
#### `rcpputils`
|
||||||
|
|
||||||
The `rcpputils` package provides an API which contains common utilities and data structures useful when programming in C++.
|
The `rcpputils` package provides an API which contains common utilities and data structures useful when programming in C++.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcpputils/blob/foxy/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcpputils/blob/foxy/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
### Direct Runtime non-ROS Dependency [5.iii]
|
### Direct Runtime non-ROS Dependency [5.iii]
|
||||||
|
|
||||||
|
@ -185,11 +187,11 @@ It is **Quality Level 2**, see its [Quality Declaration document](https://github
|
||||||
|
|
||||||
`rclcpp_components` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
`rclcpp_components` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
||||||
|
|
||||||
Currently nightly build status can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/rclcpp_components/)
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/rclcpp_components/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/rclcpp_components/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/rclcpp_components/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,4 @@ Visit the [rclcpp_components API documentation](http://docs.ros2.org/latest/api/
|
||||||
|
|
||||||
## Quality Declaration
|
## Quality Declaration
|
||||||
|
|
||||||
This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
||||||
|
|
|
@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rclcpp_lifecycle` pa
|
||||||
|
|
||||||
# rclcpp_lifecycle Quality Declaration
|
# rclcpp_lifecycle Quality Declaration
|
||||||
|
|
||||||
The package `rclcpp_lifecycle` claims to be in the **Quality Level 2** category.
|
The package `rclcpp_lifecycle` claims to be in the **Quality Level 1** category when used with a **Quality Level 1** middleware.
|
||||||
|
|
||||||
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the [Package Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories) of the ROS2 developer guide.
|
||||||
|
|
||||||
|
@ -55,12 +55,11 @@ All pull requests will be peer-reviewed, check [ROS 2 Developer Guide](https://i
|
||||||
|
|
||||||
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
|
||||||
|
|
||||||
Currently nightly results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
|
|
||||||
### Documentation Policy [2.v]
|
### Documentation Policy [2.v]
|
||||||
|
|
||||||
|
@ -70,23 +69,23 @@ All pull requests must resolve related documentation changes before merging.
|
||||||
|
|
||||||
### Feature Documentation [3.i]
|
### Feature Documentation [3.i]
|
||||||
|
|
||||||
`rclcpp_lifecycle` has a [feature list](http://docs.ros2.org/latest/api/rclcpp_lifecycle/index.html) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
`rclcpp_lifecycle` has a [feature list](http://docs.ros2.org/foxy/api/rclcpp_lifecycle/index.html) and each item in the list links to the corresponding feature documentation. There is documentation for all of the features, and new features require documentation before being added.
|
||||||
|
|
||||||
### Public API Documentation [3.ii]
|
### Public API Documentation [3.ii]
|
||||||
|
|
||||||
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/latest/api/rclcpp_lyfecycle/).
|
The API is publicly available in its [ROS 2 API documentation](http://docs.ros2.org/foxy/api/rclcpp_lifecycle/).
|
||||||
|
|
||||||
### License [3.iii]
|
### License [3.iii]
|
||||||
|
|
||||||
The license for `rclcpp_lifecycle` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
The license for `rclcpp_lifecycle` is Apache 2.0, and a summary is in each source file, the type is declared in the [`package.xml`](./package.xml) manifest file, and a full copy of the license is in the [`LICENSE`](../LICENSE) file.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_lifecycle/) can be found a list with the latest results of the various linters being run on the package.
|
There is an automated test which runs a linter that ensures each file has a license statement. [Here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_lifecycle/) can be found a list with the latest results of the various linters being run on the package.
|
||||||
|
|
||||||
### Copyright Statements [3.iv]
|
### Copyright Statements [3.iv]
|
||||||
|
|
||||||
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_lifecycle`.
|
The copyright holders each provide a statement of copyright in each source code file in `rclcpp_lifecycle`.
|
||||||
|
|
||||||
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastSuccessfulBuild/testReport/rclcpp_lifecycle/copyright/).
|
There is an automated test which runs a linter that ensures each file has at least one copyright statement. Latest linter result report can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_lifecycle/copyright/).
|
||||||
|
|
||||||
## Testing [4]
|
## Testing [4]
|
||||||
|
|
||||||
|
@ -95,12 +94,11 @@ There is an automated test which runs a linter that ensures each file has at lea
|
||||||
Each feature in `rclcpp_lifecycle` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp_lifecycle/tree/foxy/test) directory.
|
Each feature in `rclcpp_lifecycle` has corresponding tests which simulate typical usage, and they are located in the [`test`](https://github.com/ros2/rclcpp_lifecycle/tree/foxy/test) directory.
|
||||||
New features are required to have tests before being added.
|
New features are required to have tests before being added.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_lifecycle/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
|
|
||||||
### Public API Testing [4.ii]
|
### Public API Testing [4.ii]
|
||||||
|
|
||||||
|
@ -119,21 +117,25 @@ This includes:
|
||||||
|
|
||||||
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.
|
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_rclcpp_rclcpp_lifecycle_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).
|
Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_foxy_coverage/lastCompletedBuild/cobertura/src_ros2_rclcpp_rclcpp_lifecycle_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]
|
### Performance [4.iv]
|
||||||
|
|
||||||
It is not yet defined if this package requires performance testing and how addresses this topic.
|
`rclcpp_lifecycle` follows the recommendations for performance testing of C/C++ code in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#performance), and opts to do performance analysis on each release rather than each change.
|
||||||
|
|
||||||
|
The performance tests of `rclcpp_lifecycle` are located in the [test/benchmark directory](https://github.com/ros2/rclcpp/tree/foxy/rclcpp_lifecycle/test/benchmark).
|
||||||
|
|
||||||
|
Package and system level performance benchmarks that cover features of `rclcpp_lifecycle` can be found at:
|
||||||
|
* [Benchmarks](http://build.ros2.org/view/Fci/job/Fci__benchmark_ubuntu_focal_amd64/BenchmarkTable/)
|
||||||
|
* [Performance](http://build.ros2.org/view/Fci/job/Fci__nightly-performance_ubuntu_focal_amd64/lastCompletedBuild/)
|
||||||
|
|
||||||
|
Changes that introduce regressions in performance must be adequately justified in order to be accepted and merged.
|
||||||
|
|
||||||
### Linters and Static Analysis [4.v]
|
### Linters and Static Analysis [4.v]
|
||||||
|
|
||||||
`rclcpp_lifecycle` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
`rclcpp_lifecycle` uses and passes all the ROS2 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-and-static-analysis). Passing implies there are no linter/static errors when testing against CI of supported platforms.
|
||||||
|
|
||||||
Currently nightly test results can be seen here:
|
Currently nightly test results can be seen [here](http://build.ros2.org/view/Fpr/job/Fpr__rclcpp__ubuntu_focal_amd64/lastCompletedBuild/testReport/rclcpp_lifecycle/).
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rclcpp_lifecycle/)
|
|
||||||
|
|
||||||
## Dependencies [5]
|
## Dependencies [5]
|
||||||
|
|
||||||
|
@ -151,31 +153,31 @@ It also has several test dependencies, which do not affect the resulting quality
|
||||||
|
|
||||||
The `lifecycle_msgs` package contains message and service definitions for managing lifecycle nodes.
|
The `lifecycle_msgs` package contains message and service definitions for managing lifecycle nodes.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/lifecycle_msgs/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/lifecycle_msgs/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rclcpp`
|
#### `rclcpp`
|
||||||
|
|
||||||
The `rclcpp` package provides the ROS client library in C++.
|
The `rclcpp` package provides the ROS client library in C++.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rclcpp/blob/foxy/rclcpp/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rcl_lifecycle`
|
#### `rcl_lifecycle`
|
||||||
|
|
||||||
The `rcl_lifecycle` package provides functionality for ROS 2 lifecycle nodes in C.
|
The `rcl_lifecycle` package provides functionality for ROS 2 lifecycle nodes in C.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl_lifecycle/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/foxy/rcl_lifecycle/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rosidl_typesupport_cpp`
|
#### `rosidl_typesupport_cpp`
|
||||||
|
|
||||||
The `rosidl_typesupport_cpp` package generates the type support for C++ messages.
|
The `rosidl_typesupport_cpp` package generates the type support for C++ messages.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rosidl_typesupport/blob/foxy/rosidl_typesupport_cpp/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl_typesupport/blob/foxy/rosidl_typesupport_cpp/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
#### `rmw`
|
#### `rmw`
|
||||||
|
|
||||||
`rmw` is the ROS 2 middleware library.
|
`rmw` is the ROS 2 middleware library.
|
||||||
|
|
||||||
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
|
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
|
||||||
|
|
||||||
### Direct Runtime non-ROS Dependency [5.iii]
|
### Direct Runtime non-ROS Dependency [5.iii]
|
||||||
|
|
||||||
|
@ -185,11 +187,11 @@ It is **Quality Level 2**, see its [Quality Declaration document](https://github
|
||||||
|
|
||||||
`rclcpp_lifecycle` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
`rclcpp_lifecycle` supports all of the tier 1 platforms as described in [REP-2000](https://www.ros.org/reps/rep-2000.html#support-tiers), and tests each change against all of them.
|
||||||
|
|
||||||
Currently nightly build status can be seen here:
|
Though there are no nightly jobs for foxy outside of linux, each change is tested on ci.ros2.org.
|
||||||
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/rclcpp_lifecycle/)
|
* [linux-aarch64](https://ci.ros2.org/job/ci_linux-aarch64)
|
||||||
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/rclcpp_lifecycle/)
|
* [linux](https://ci.ros2.org/job/ci_linux)
|
||||||
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/rclcpp_lifecycle/)
|
* [mac_osx](https://ci.ros2.org/job/ci_osx)
|
||||||
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/rclcpp_lifecycle/)
|
* [windows](https://ci.ros2.org/job/ci_windows)
|
||||||
|
|
||||||
## Security
|
## Security
|
||||||
|
|
||||||
|
|
|
@ -6,4 +6,4 @@ Visit the [rclcpp_lifecycle API documentation](http://docs.ros2.org/latest/api/r
|
||||||
|
|
||||||
## Quality Declaration
|
## Quality Declaration
|
||||||
|
|
||||||
This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
This package claims to be in the **Quality Level 1** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue