Skip to content

Commit 4f07ae1

Browse files
authored
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>
1 parent 45f1331 commit 4f07ae1

8 files changed

Lines changed: 76 additions & 27 deletions

File tree

rcl/QUALITY_DECLARATION.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ This document is a declaration of software quality for the `rcl` package, based
22

33
# `rcl` Quality Declaration
44

5-
The package `rcl` claims to be in the **Quality Level 4** category.
5+
The package `rcl` claims to be in the **Quality Level 3** category.
66

77
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).
88

@@ -101,7 +101,9 @@ Currently nightly test results can be seen here:
101101

102102
### Public API Testing [4.ii]
103103

104-
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/).
104+
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.
105+
106+
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.
105107

106108
### Coverage [4.iii]
107109

@@ -114,7 +116,7 @@ This includes:
114116

115117
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.
116118

117-
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.
119+
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).
118120

119121
### Performance [4.iv]
120122

@@ -167,7 +169,7 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
167169

168170
The `rcutils` package provides an API which contains common utilities and data structures needed when programming in C.
169171

170-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
172+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
171173

172174
#### `rmw_implementation`
173175

rcl/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ Library to support implementation of language specific ROS Client Libraries.
44

55
Features are described in detail at [http://docs.ros2.org](http://docs.ros2.org/latest/api/rcl/index.html)
66

7-
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.
7+
This package claims to be in the **Quality Level 3** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

rcl_action/QUALITY_DECLARATION.md

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_action` package,
22

33
# `rcl_action` Quality Declaration
44

5-
The package `rcl_action` claims to be in the **Quality Level 4** category.
5+
The package `rcl_action` claims to be in the **Quality Level 3** category.
66

7-
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).
7+
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).
88

99
## Version Policy [1]
1010

@@ -88,15 +88,29 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
8888

8989
`rcl_action` has feature tests, which test for proper node state transitions.
9090
The tests are located in the [test](test) subdirectory.
91+
New features are required to have tests before being added.
92+
Currently nightly test results can be seen here:
93+
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_action/)
94+
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_action/)
95+
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_action/)
96+
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_action/)
9197

9298
### Public API Testing [4.ii]
9399

94-
Much of the API in `rcl_action` is tested.
95-
The tests are located in the [test](test) subdirectory.
100+
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.
96101

97102
### Coverage [4.iii]
98103

99-
`rcl_action` does not currently track test coverage.
104+
`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.
105+
106+
This includes:
107+
108+
- tracking and reporting line coverage statistics
109+
- no lines are manually skipped in coverage calculations
110+
111+
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.
112+
113+
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).
100114

101115
### Performance [4.iv]
102116

@@ -129,13 +143,13 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
129143

130144
`rcl` is the ROS 2 client library in C.
131145

132-
It is **Quality Level 4**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
146+
It is **Quality Level 3**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
133147

134148
#### `rcutils`
135149

136150
`rcutils` provides commonly used functionality in C.
137151

138-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
152+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
139153

140154
#### `rmw`
141155

rcl_action/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ http://design.ros2.org/articles/actions.html
99

1010
## Quality Declaration
1111

12-
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.
12+
This package claims to be in the **Quality Level 3** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

rcl_lifecycle/QUALITY_DECLARATION.md

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_lifecycle` packa
22

33
# `rcl_lifecycle` Quality Declaration
44

5-
The package `rcl_lifecycle` claims to be in the **Quality Level 4** category.
5+
The package `rcl_lifecycle` claims to be in the **Quality Level 3** category.
66

7-
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).
7+
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).
88

99
## Version Policy [1]
1010

@@ -88,14 +88,30 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
8888

8989
`rcl_lifecycle` has feature tests, which test for proper node state transitions.
9090
The tests are located in the [test](test) subdirectory.
91+
New features are required to have tests before being added.
92+
Currently nightly test results can be seen here:
93+
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_lifecycle/)
94+
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_lifecycle/)
95+
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_lifecycle/)
96+
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_lifecycle/)
97+
9198

9299
### Public API Testing [4.ii]
93100

94-
Much of the API in `rcl_lifecycle` is tested in the aforementioned feature tests, but it is not tested explicitly.
101+
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.
95102

96103
### Coverage [4.iii]
97104

98-
`rcl_lifecycle` does not currently track test coverage.
105+
`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.
106+
107+
This includes:
108+
109+
- tracking and reporting line coverage statistics
110+
- no lines are manually skipped in coverage calculations
111+
112+
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.
113+
114+
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).
99115

100116
### Performance [4.iv]
101117

@@ -128,7 +144,7 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
128144

129145
`rcl` is the ROS 2 client library in C.
130146

131-
It is **Quality Level 4**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
147+
It is **Quality Level 3**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
132148

133149
#### `rcutils`
134150

rcl_lifecycle/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ https://design.ros2.org/articles/node_lifecycle.html
99

1010
## Quality Declaration
1111

12-
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.
12+
This package claims to be in the **Quality Level 3** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

rcl_yaml_param_parser/QUALITY_DECLARATION.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ This document is a declaration of software quality for the `rcl_yaml_param_parse
22

33
# `rcl_yaml_param_parser` Quality Declaration
44

5-
The package `rcl_yaml_param_parser` claims to be in the **Quality Level 4** category.
5+
The package `rcl_yaml_param_parser` claims to be in the **Quality Level 3** category.
66

7-
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).
7+
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).
88

99
## Version Policy [1]
1010

@@ -59,10 +59,12 @@ All pull requests must resolve related documentation changes before merging.
5959

6060
### Feature Documentation [3.i]
6161

62-
`rcl_yaml_param_parser` does not have feature documentation.
62+
`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).
6363

6464
### Public API Documentation [3.ii]
6565

66+
`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.
67+
6668
All of `rcl_yaml_param_parser` has embedded API documentation. It is not yet hosted publicly.
6769

6870
### License [3.iii]
@@ -85,15 +87,30 @@ The results of the test can be found [here](https://ci.ros2.org/view/nightly/job
8587

8688
### Feature Testing [4.i]
8789

88-
`rcl_yaml_param_parser` has feature tests, which ensure that a wide variety of yaml files are checked for parsing.
90+
Most features in `rcl_yaml_param_parser` have corresponding tests which simulate typical usage, and they are located in the [`test`](./test) directory.
91+
New features are required to have tests before being added.
92+
Currently nightly test results can be seen here:
93+
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/rcl_yaml_param_parser/)
94+
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/rcl_yaml_param_parser/)
95+
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/rcl_yaml_param_parser/)
96+
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/rcl_yaml_param_parser/)
8997

9098
### Public API Testing [4.ii]
9199

92-
Much of the API in `rcl_yaml_param_parser` is tested in the aforementioned feature tests, but it is not tested explicitly.
100+
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.
93101

94102
### Coverage [4.iii]
95103

96-
`rcl_yaml_param_parser` does not currently track test coverage.
104+
`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.
105+
106+
This includes:
107+
108+
- tracking and reporting line coverage statistics
109+
- no lines are manually skipped in coverage calculations
110+
111+
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.
112+
113+
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).
97114

98115
### Performance [4.iv]
99116

@@ -118,7 +135,7 @@ It also has several test dependencies, which do not affect the resulting quality
118135

119136
`rcutils` provides commonly used functionality in C.
120137

121-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
138+
It is **Quality Level 3**, see its [Quality Declaration document](https://github.com/ros2/rcutils/blob/master/QUALITY_DECLARATION.md).
122139

123140
#### `libyaml_vendor`
124141

rcl_yaml_param_parser/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,4 @@ This package depends on C libyaml.
3030

3131
## Quality Declaration
3232

33-
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.
33+
This package claims to be in the **Quality Level 3** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

0 commit comments

Comments
 (0)