[Backport Foxy] Update QD (#843)

* Update tracetools' QL to 2 in rcl's QD (#690)

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>

* Fix link to latest API docs (#692)

Signed-off-by: Jorge Perez <jjperez@ekumenlabs.com>

* Update quality declaration and coverage (#674)

* Update quality level and coverage

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Added feedback

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Fixed wording and links

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Updated QD

Signed-off-by: ahcorde <ahcorde@gmail.com>

* udpate QD links to foxy

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Update tracetools QL and add to rcl_lifecycle's QD (#845)

List tracetools in rcl_lifecycle's QD

Signed-off-by: Christophe Bedard <bedard.christophe@gmail.com>

* update QL dependencies on rcl_yaml_param_parser

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Updated QD

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Updated QD

Signed-off-by: ahcorde <ahcorde@gmail.com>

Co-authored-by: Christophe Bedard <bedard.christophe@gmail.com>
Co-authored-by: Jorge Perez <jjperez@ekumenlabs.com>
This commit is contained in:
Alejandro Hernández Cordero 2020-11-05 08:10:57 +01:00 committed by GitHub
parent f911664ca5
commit 4376552e7c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 96 additions and 47 deletions

View file

@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl` package, based
# `rcl` Quality Declaration # `rcl` Quality Declaration
The package `rcl` claims to be in the **Quality Level 4** category. The package `rcl` claims to be in the **Quality Level 2** 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). 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).
@ -71,7 +71,7 @@ All pull requests must resolve related documentation changes before merging.
### Public API Documentation [3.ii] ### Public API Documentation [3.ii]
`rcl` has embedded API documentation and it is generated using doxygen. Currently, its eloquent version is hosted [here](http://docs.ros2.org/eloquent/api/rcl/). Latest version has to be generated before considering this item fully resolved. `rcl` has embedded API documentation and it is generated using doxygen. Currently, its latest version is hosted [here](http://docs.ros2.org/latest/api/rcl/).
New additions to the public API require documentation before being added. New additions to the public API require documentation before being added.
@ -101,7 +101,9 @@ Currently nightly test results can be seen here:
### Public API Testing [4.ii] ### Public API Testing [4.ii]
Most of the functionality of the declared API in this package is covered in its unit tests. Currently it has a line coverage of [77%](https://ci.ros2.org/job/ci_linux_coverage/85/cobertura/src_ros2_rcl_rcl_src_rcl/). Each part of the public API has tests, and new additions or changes to the public API require tests before being added. The tests aim to cover both typical usage and corner cases, but are quantified by contributing to code coverage.
The following functions are partially supported: `rcl_take_loaned_message`, `rcl_return_loaned_message_from_subscription`, `rcl_borrow_loaned_message`, `rcl_return_loaned_message_from_publisher` and `rcl_publish_loaned_message` because they are not currently supported on Tier 1 RMW providers.
### Coverage [4.iii] ### Coverage [4.iii]
@ -114,7 +116,7 @@ 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 (77%) [here](https://ci.ros2.org/job/ci_linux_coverage/85/cobertura/src_ros2_rcl_rcl_src_rcl/). Current coverage statistics need to be improved to reach a higher quality level. Current coverage statistics can be viewed [here](https://ci.ros2.org/job/nightly_linux_coverage/lastSuccessfulBuild/cobertura/src_ros2_rcl_rcl_src_rcl/). 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]
@ -149,7 +151,7 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
The `rcl_interfaces` package provides some common ROS Message and ROS Service types which are used to implement certain client library features. 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 4**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/rcl_interfaces/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/rcl_interfaces/QUALITY_DECLARATION.md).
#### `rcl_logging_spdlog` #### `rcl_logging_spdlog`
@ -161,31 +163,31 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
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 4**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser/Quality_Declaration.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/foxy/rcl_yaml_param_parser/Quality_Declaration.md).
#### `rcutils` #### `rcutils`
The `rcutils` package provides an API which contains common utilities and data structures needed when programming in C. The `rcutils` package provides an API which contains common utilities and data structures needed when programming in C.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/foxy/QUALITY_DECLARATION.md).
#### `rmw_implementation` #### `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. 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 4**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/foxy/rmw_implementation/QUALITY_DECLARATION.md).
#### `rosidl_runtime_c` #### `rosidl_runtime_c`
The `rosidl_runtime_c` package provides runtime interfaces in C based on user defined ROS Messages and ROS Services, as well as associated support functions for those types. The `rosidl_runtime_c` package provides runtime interfaces in C based on user defined ROS Messages and ROS Services, as well as associated support functions for those types.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/tree/master/rosidl_runtime_c/Quality_Declaration.md). It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
#### `tracetools` #### `tracetools`
The `tracetools` package provides utilities for instrumenting the code in `rcl` so that it may be traced for debugging and performance analysis. The `tracetools` package provides utilities for instrumenting the code in `rcl` so that it may be traced for debugging and performance analysis.
It is **Quality Level 4**, see its [Quality Declaration document](https://gitlab.com/micro-ROS/ros_tracing/ros2_tracing/-/blob/master/tracetools/QUALITY_DECLARATION.md). It is **Quality Level 1**, see its [Quality Declaration document](https://gitlab.com/ros-tracing/ros2_tracing/-/blob/foxy/tracetools/QUALITY_DECLARATION.md).
### Optional Direct Runtime ROS Dependencies [5.ii] ### Optional Direct Runtime ROS Dependencies [5.ii]
@ -213,7 +215,7 @@ The chart below compares the requirements in the REP-2004 with the current state
|--|--|--| |--|--|--|
|1| **Version policy** |---| |1| **Version policy** |---|
|1.i|Version Policy available | ✓ | |1.i|Version Policy available | ✓ |
|1.ii|Stable version || |1.ii|Stable version ||
|1.iii|Declared public API|✓| |1.iii|Declared public API|✓|
|1.iv|API stability policy|✓| |1.iv|API stability policy|✓|
|1.v|ABI stability policy|✓| |1.v|ABI stability policy|✓|
@ -225,8 +227,8 @@ The chart below compares the requirements in the REP-2004 with the current state
|2.iv| CI policy for change requests | ✓ | |2.iv| CI policy for change requests | ✓ |
|2.v| Documentation policy for change requests | ✓ | |2.v| Documentation policy for change requests | ✓ |
|3| **Documentation** | --- | |3| **Documentation** | --- |
|3.i| Per feature documentation | | |3.i| Per feature documentation | |
|3.ii| Per public API item documentation | * | |3.ii| Per public API item documentation | |
|3.iii| Declared License(s) | ✓ | |3.iii| Declared License(s) | ✓ |
|3.iv| Copyright in source files| ✓ | |3.iv| Copyright in source files| ✓ |
|3.v.a| Quality declaration linked to README | ✓ | |3.v.a| Quality declaration linked to README | ✓ |
@ -234,7 +236,7 @@ The chart below compares the requirements in the REP-2004 with the current state
|4| Testing | --- | |4| Testing | --- |
|4.i| Feature items tests | ✓ | |4.i| Feature items tests | ✓ |
|4.ii| Public API tests | ✓ | |4.ii| Public API tests | ✓ |
|4.iii.a| Using coverage | * | |4.iii.a| Using coverage | |
|4.iii.a| Coverage policy | ✓ | |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.iv.b| Performance tests policy| ✓ |
@ -247,4 +249,4 @@ The chart below compares the requirements in the REP-2004 with the current state
|6| Platform support | --- | |6| Platform support | --- |
|6.i| Support targets Tier1 ROS platforms| ✓ | |6.i| Support targets Tier1 ROS platforms| ✓ |
|7| Security | --- | |7| Security | --- |
|7.i| Vulnerability Disclosure Policy | | |7.i| Vulnerability Disclosure Policy | |

View file

@ -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) 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 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details. This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

View file

@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_action` package,
# `rcl_action` Quality Declaration # `rcl_action` Quality Declaration
The package `rcl_action` claims to be in the **Quality Level 4** category. The package `rcl_action` claims to be in the **Quality Level 2** 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 Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories).
## Version Policy [1] ## Version Policy [1]
@ -88,15 +88,29 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
`rcl_action` has feature tests, which test for proper node state transitions. `rcl_action` has feature tests, which test for proper node state transitions.
The tests are located in the [test](test) subdirectory. The tests are located in the [test](test) subdirectory.
New features are required to have tests before being added.
Currently nightly test results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_action/)
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_action/)
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_action/)
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_action/)
### Public API Testing [4.ii] ### Public API Testing [4.ii]
Much of the API in `rcl_action` is tested. Each part of the public API has tests, and new additions or changes to the public API require tests before being added. The tests aim to cover both typical usage and corner cases, but are quantified by contributing to code coverage.
The tests are located in the [test](test) subdirectory.
### Coverage [4.iii] ### Coverage [4.iii]
`rcl_action` does not currently track test coverage. `rcl_action` 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
- 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_rcl_rcl_action_src_rcl_action/). 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]
@ -123,31 +137,31 @@ 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 4**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/action_msgs/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/action_msgs/QUALITY_DECLARATION.md).
#### `rcl` #### `rcl`
`rcl` is the ROS 2 client library in C. `rcl` is the ROS 2 client library in C.
It is **Quality Level 4**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION). It is **Quality Level 2**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
#### `rcutils` #### `rcutils`
`rcutils` provides commonly used functionality in C. `rcutils` provides commonly used functionality in C.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 2**, 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 4**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
#### `rosidl_runtime_c` #### `rosidl_runtime_c`
`rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces. `rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/master/rosidl_runtime_c/QUALITY_DECLARATION.md). It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
### Direct Runtime Non-ROS Dependencies [5.iii] ### Direct Runtime Non-ROS Dependencies [5.iii]

View file

@ -9,4 +9,4 @@ http://design.ros2.org/articles/actions.html
## Quality Declaration ## Quality Declaration
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details. This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

View file

@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_lifecycle` packa
# `rcl_lifecycle` Quality Declaration # `rcl_lifecycle` Quality Declaration
The package `rcl_lifecycle` claims to be in the **Quality Level 4** category. The package `rcl_lifecycle` claims to be in the **Quality Level 2** 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 Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories).
## Version Policy [1] ## Version Policy [1]
@ -88,14 +88,30 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
`rcl_lifecycle` has feature tests, which test for proper node state transitions. `rcl_lifecycle` has feature tests, which test for proper node state transitions.
The tests are located in the [test](test) subdirectory. The tests are located in the [test](test) subdirectory.
New features are required to have tests before being added.
Currently nightly test results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_lifecycle/)
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_lifecycle/)
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_lifecycle/)
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_lifecycle/)
### Public API Testing [4.ii] ### Public API Testing [4.ii]
Much of the API in `rcl_lifecycle` is tested in the aforementioned feature tests, but it is not tested explicitly. Each part of the public API has tests, and new additions or changes to the public API require tests before being added. The tests aim to cover both typical usage and corner cases, but are quantified by contributing to code coverage.
### Coverage [4.iii] ### Coverage [4.iii]
`rcl_lifecycle` does not currently track test coverage. `rcl_lifecycle` 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
- 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_rcl_rcl_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]
@ -122,31 +138,31 @@ It also has several test dependencies, which do not affect the resulting quality
`lifecycle_msgs` provides message and services for managing lifecycle nodes. `lifecycle_msgs` provides message and services for managing lifecycle nodes.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/lifecycle_msgs/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/lifecycle_msgs/QUALITY_DECLARATION.md).
#### `rcl` #### `rcl`
`rcl` is the ROS 2 client library in C. `rcl` is the ROS 2 client library in C.
It is **Quality Level 4**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION). It is **Quality Level 2**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
#### `rcutils` #### `rcutils`
`rcutils` provides commonly used functionality in C. `rcutils` provides commonly used functionality in C.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 2**, 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 4**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
#### `rosidl_runtime_c` #### `rosidl_runtime_c`
`rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces. `rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/master/rosidl_runtime_c/QUALITY_DECLARATION.md). It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
### Direct Runtime Non-ROS Dependencies [5.iii] ### Direct Runtime Non-ROS Dependencies [5.iii]

View file

@ -9,4 +9,4 @@ https://design.ros2.org/articles/node_lifecycle.html
## Quality Declaration ## Quality Declaration
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details. This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

View file

@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_yaml_param_parse
# `rcl_yaml_param_parser` Quality Declaration # `rcl_yaml_param_parser` Quality Declaration
The package `rcl_yaml_param_parser` claims to be in the **Quality Level 4** category. The package `rcl_yaml_param_parser` claims to be in the **Quality Level 2** 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 Quality Categories in REP-2004](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-quality-categories).
## Version Policy [1] ## Version Policy [1]
@ -59,10 +59,12 @@ All pull requests must resolve related documentation changes before merging.
### Feature Documentation [3.i] ### Feature Documentation [3.i]
`rcl_yaml_param_parser` does not have feature documentation. `rcl_yaml_param_parser` provides the main elements of its API listed using doxygen and is hosted [here](http://docs.ros2.org/latest/api/rcl_yaml_param_parser/index.html).
### Public API Documentation [3.ii] ### Public API Documentation [3.ii]
`rcl_yaml_param_parser` has embedded API documentation and it is generated using doxygen. Currently, its latest version is hosted [here](http://docs.ros2.org/latest/api/rcl_yaml_param_parser/index.html). Latest version has to be generated before considering this item fully resolved.
All of `rcl_yaml_param_parser` has embedded API documentation. It is not yet hosted publicly. All of `rcl_yaml_param_parser` has embedded API documentation. It is not yet hosted publicly.
### License [3.iii] ### License [3.iii]
@ -85,15 +87,30 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
### Feature Testing [4.i] ### Feature Testing [4.i]
`rcl_yaml_param_parser` has feature tests, which ensure that a wide variety of yaml files are checked for parsing. Most features in `rcl_yaml_param_parser` have corresponding tests which simulate typical usage, and they are located in the [`test`](./test) directory.
New features are required to have tests before being added.
Currently nightly test results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_yaml_param_parser/)
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_yaml_param_parser/)
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_yaml_param_parser/)
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_yaml_param_parser/)
### Public API Testing [4.ii] ### Public API Testing [4.ii]
Much of the API in `rcl_yaml_param_parser` is tested in the aforementioned feature tests, but it is not tested explicitly. Each part of the public API has tests, and new additions or changes to the public API require tests before being added. The tests aim to cover both typical usage and corner cases, but are quantified by contributing to code coverage.
### Coverage [4.iii] ### Coverage [4.iii]
`rcl_yaml_param_parser` does not currently track test coverage. `rcl_yaml_param_parser` 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
- 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_rcl_rcl_yaml_param_parser_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]
@ -118,13 +135,13 @@ It also has several test dependencies, which do not affect the resulting quality
`rcutils` provides commonly used functionality in C. `rcutils` provides commonly used functionality in C.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/foxy/QUALITY_DECLARATION.md).
#### `libyaml_vendor` #### `libyaml_vendor`
`libyaml_vendor` is a vendor package for the libyaml C library. `libyaml_vendor` is a vendor package for the libyaml C library.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/libyaml_vendor/blob/master/QUALITY_DECLARATION.md). It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/libyaml_vendor/blob/foxy/QUALITY_DECLARATION.md).
### Direct Runtime Non-ROS Dependencies [5.iii] ### Direct Runtime Non-ROS Dependencies [5.iii]
@ -134,7 +151,7 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
`libyaml` is a YAML parsing library written in C. `libyaml` is a YAML parsing library written in C.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/libyaml_vendor/blob/master/libyaml_q_declaration.md). It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/libyaml_vendor/blob/foxy/libyaml_q_declaration.md).
## Platform Support [6] ## Platform Support [6]

View file

@ -30,4 +30,4 @@ This package depends on C libyaml.
## Quality Declaration ## Quality Declaration
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details. This package claims to be in the **Quality Level 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.