diff --git a/rcl/QUALITY_DECLARATION.md b/rcl/QUALITY_DECLARATION.md index 6e4f02171..4552faefd 100644 --- a/rcl/QUALITY_DECLARATION.md +++ b/rcl/QUALITY_DECLARATION.md @@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl` package, based # `rcl` Quality Declaration -The package `rcl` claims to be in the **Quality Level 2** category. +The package `rcl` 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). @@ -120,7 +120,13 @@ Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly ### Performance [4.iv] -`rcl` does not conduct performance tests. +`rcl` follows the recommendations for performance testing of 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. + +System level performance benchmarks that cover features of `rcl` can be found at: +* [Benchmarks](http://build.ros2.org/view/Rci/job/Rci__benchmark_ubuntu_focal_amd64/BenchmarkTable/) +* [Performance](http://build.ros2.org/view/Rci/job/Rci__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] @@ -145,37 +151,37 @@ It also has several test dependencies, which do not affect the resulting quality The `rmw` package provides the API used by `rcl` to interact with the underlying middleware in an abstract way. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). #### `rcl_interfaces` The `rcl_interfaces` package provides some common ROS Message and ROS Service types which are used to implement certain client library features. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/rcl_interfaces/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/rcl_interfaces/QUALITY_DECLARATION.md). #### `rcl_logging_spdlog` The `rcl_logging_spdlog` package provides the default logging implementation by wrapping the `spdlog` library. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_logging/blob/master/rcl_logging_spdlog/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_logging/blob/master/rcl_logging_spdlog/QUALITY_DECLARATION.md). #### `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. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/master/rcl_yaml_param_parser/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl/blob/master/rcl_yaml_param_parser/QUALITY_DECLARATION.md). #### `rcutils` The `rcutils` package provides an API which contains common utilities and data structures needed when programming in C. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). #### `rmw_implementation` The `rmw_implementation` package provides access to the default rmw implementation, and provides the ability to dynamically switch rmw implementations if more than one is available. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/master/rmw_implementation/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/master/rmw_implementation/QUALITY_DECLARATION.md). #### `rosidl_runtime_c` @@ -238,7 +244,7 @@ The chart below compares the requirements in the REP-2004 with the current state |4.ii| Public API tests | ✓ | |4.iii.a| Using coverage | ✓ | |4.iii.a| Coverage policy | ✓ | -|4.iv.a| Performance tests (if applicable) | ☓ | +|4.iv.a| Performance tests (if applicable) | ✓ | |4.iv.b| Performance tests policy| ✓ | |4.v.a| Code style enforcement (linters)| ✓ | |4.v.b| Use of static analysis tools | ✓ | diff --git a/rcl/README.md b/rcl/README.md index 51cf9c100..75eb94845 100644 --- a/rcl/README.md +++ b/rcl/README.md @@ -4,4 +4,4 @@ Library to support implementation of language specific ROS Client Libraries. Features are described in detail at [http://docs.ros2.org](http://docs.ros2.org/latest/api/rcl/index.html) -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. diff --git a/rcl_action/QUALITY_DECLARATION.md b/rcl_action/QUALITY_DECLARATION.md index 3083ed526..a3a357861 100644 --- a/rcl_action/QUALITY_DECLARATION.md +++ b/rcl_action/QUALITY_DECLARATION.md @@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl_action` package, # `rcl_action` Quality Declaration -The package `rcl_action` claims to be in the **Quality Level 2** category. +The package `rcl_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). @@ -114,7 +114,13 @@ Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly ### Performance [4.iv] -`rcl_action` does not currently have performance tests. +`rcl_action` follows the recommendations for performance testing of 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. + +System level performance benchmarks that cover features of `rcl_action` can be found at: +* [Benchmarks](http://build.ros2.org/view/Rci/job/Rci__benchmark_ubuntu_focal_amd64/BenchmarkTable/) +* [Performance](http://build.ros2.org/view/Rci/job/Rci__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] @@ -137,25 +143,25 @@ It also has several test dependencies, which do not affect the resulting quality `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/master/action_msgs/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/action_msgs/QUALITY_DECLARATION.md). #### `rcl` `rcl` is the ROS 2 client library in C. -It is **Quality Level 2**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION.md). #### `rcutils` `rcutils` provides commonly used functionality in C. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). #### `rmw` `rmw` is the ROS 2 middleware library. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). #### `rosidl_runtime_c` diff --git a/rcl_action/README.md b/rcl_action/README.md index 73843dd40..b3295e1f2 100644 --- a/rcl_action/README.md +++ b/rcl_action/README.md @@ -9,4 +9,4 @@ http://design.ros2.org/articles/actions.html ## 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. diff --git a/rcl_lifecycle/QUALITY_DECLARATION.md b/rcl_lifecycle/QUALITY_DECLARATION.md index c2c7a9060..5716ee204 100644 --- a/rcl_lifecycle/QUALITY_DECLARATION.md +++ b/rcl_lifecycle/QUALITY_DECLARATION.md @@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl_lifecycle` packa # `rcl_lifecycle` Quality Declaration -The package `rcl_lifecycle` claims to be in the **Quality Level 2** category. +The package `rcl_lifecycle` 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). @@ -115,7 +115,13 @@ Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly ### Performance [4.iv] -`rcl_lifecycle` does not currently have performance tests. +`rcl_lifecycle` follows the recommendations for performance testing of 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. + +System level performance benchmarks that cover features of `rcl_lifecycle` can be found at: +* [Benchmarks](http://build.ros2.org/view/Rci/job/Rci__benchmark_ubuntu_focal_amd64/BenchmarkTable/) +* [Performance](http://build.ros2.org/view/Rci/job/Rci__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] @@ -138,25 +144,25 @@ It also has several test dependencies, which do not affect the resulting quality `lifecycle_msgs` provides message and services for managing lifecycle nodes. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/lifecycle_msgs/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/lifecycle_msgs/QUALITY_DECLARATION.md). #### `rcl` `rcl` is the ROS 2 client library in C. -It is **Quality Level 2**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION.md). #### `rcutils` `rcutils` provides commonly used functionality in C. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). #### `rmw` `rmw` is the ROS 2 middleware library. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). #### `rosidl_runtime_c` diff --git a/rcl_lifecycle/README.md b/rcl_lifecycle/README.md index 77aa9e823..c1983d169 100644 --- a/rcl_lifecycle/README.md +++ b/rcl_lifecycle/README.md @@ -9,4 +9,4 @@ https://design.ros2.org/articles/node_lifecycle.html ## 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. diff --git a/rcl_yaml_param_parser/QUALITY_DECLARATION.md b/rcl_yaml_param_parser/QUALITY_DECLARATION.md index c921b3e05..f4fef3e2a 100644 --- a/rcl_yaml_param_parser/QUALITY_DECLARATION.md +++ b/rcl_yaml_param_parser/QUALITY_DECLARATION.md @@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl_yaml_param_parse # `rcl_yaml_param_parser` Quality Declaration -The package `rcl_yaml_param_parser` claims to be in the **Quality Level 2** category. +The package `rcl_yaml_param_parser` 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). @@ -114,7 +114,15 @@ Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly ### Performance [4.iv] -The performance tests of `rcl_yaml_param_parser` are located in the [test/benchmark directory](https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser/test/benchmark). The most recent test results can be found [here](http://build.ros2.org/view/Rci/job/Rci__benchmark_ubuntu_focal_amd64/BenchmarkTable/). +`rcl_yaml_param_parser` 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 `rcl_yaml_param_parser` are located in the [test/benchmark directory](https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser/test/benchmark). + +Package and system level performance benchmarks that cover features of `rcl_yaml_param_parser` can be found at: +* [Benchmarks](http://build.ros2.org/view/Rci/job/Rci__benchmark_ubuntu_focal_amd64/BenchmarkTable/) +* [Performance](http://build.ros2.org/view/Rci/job/Rci__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] @@ -135,7 +143,7 @@ It also has several test dependencies, which do not affect the resulting quality `rcutils` provides commonly used functionality in C. -It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). +It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). #### `libyaml_vendor` diff --git a/rcl_yaml_param_parser/README.md b/rcl_yaml_param_parser/README.md index 7d0c161e3..5cb8382d7 100644 --- a/rcl_yaml_param_parser/README.md +++ b/rcl_yaml_param_parser/README.md @@ -30,4 +30,4 @@ This package depends on C libyaml. ## 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.