Skip to content

Commit 4376552

Browse files
ahcordechristophebedardBlast545
authored
[Backport Foxy] Update QD (#843)
* Update tracetools' QL to 2 in rcl's QD (#690) Signed-off-by: Christophe Bedard <[email protected]> * Fix link to latest API docs (#692) Signed-off-by: Jorge Perez <[email protected]> * Update quality declaration and coverage (#674) * Update quality level and coverage Signed-off-by: ahcorde <[email protected]> * Added feedback Signed-off-by: ahcorde <[email protected]> * Fixed wording and links Signed-off-by: ahcorde <[email protected]> * Updated QD Signed-off-by: ahcorde <[email protected]> * udpate QD links to foxy Signed-off-by: ahcorde <[email protected]> * Update tracetools QL and add to rcl_lifecycle's QD (#845) List tracetools in rcl_lifecycle's QD Signed-off-by: Christophe Bedard <[email protected]> * update QL dependencies on rcl_yaml_param_parser Signed-off-by: ahcorde <[email protected]> * Updated QD Signed-off-by: ahcorde <[email protected]> * Updated QD Signed-off-by: ahcorde <[email protected]> Co-authored-by: Christophe Bedard <[email protected]> Co-authored-by: Jorge Perez <[email protected]>
1 parent f911664 commit 4376552

File tree

8 files changed

+96
-47
lines changed

8 files changed

+96
-47
lines changed

rcl/QUALITY_DECLARATION.md

Lines changed: 17 additions & 15 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 2** 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

@@ -71,7 +71,7 @@ All pull requests must resolve related documentation changes before merging.
7171

7272
### Public API Documentation [3.ii]
7373

74-
`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.
74+
`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/).
7575

7676
New additions to the public API require documentation before being added.
7777

@@ -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

@@ -149,7 +151,7 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
149151

150152
The `rcl_interfaces` package provides some common ROS Message and ROS Service types which are used to implement certain client library features.
151153

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

154156
#### `rcl_logging_spdlog`
155157

@@ -161,31 +163,31 @@ It is **Quality Level 4**, see its [Quality Declaration document](https://github
161163

162164
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.
163165

164-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/master/rcl_yaml_param_parser/Quality_Declaration.md).
166+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl/tree/foxy/rcl_yaml_param_parser/Quality_Declaration.md).
165167

166168
#### `rcutils`
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/foxy/QUALITY_DECLARATION.md).
171173

172174
#### `rmw_implementation`
173175

174176
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.
175177

176-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/master/QUALITY_DECLARATION.md).
178+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw_implementation/blob/foxy/rmw_implementation/QUALITY_DECLARATION.md).
177179

178180
#### `rosidl_runtime_c`
179181

180182
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.
181183

182-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/tree/master/rosidl_runtime_c/Quality_Declaration.md).
184+
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
183185

184186
#### `tracetools`
185187

186188
The `tracetools` package provides utilities for instrumenting the code in `rcl` so that it may be traced for debugging and performance analysis.
187189

188-
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).
190+
It is **Quality Level 1**, see its [Quality Declaration document](https://gitlab.com/ros-tracing/ros2_tracing/-/blob/foxy/tracetools/QUALITY_DECLARATION.md).
189191

190192
### Optional Direct Runtime ROS Dependencies [5.ii]
191193

@@ -213,7 +215,7 @@ The chart below compares the requirements in the REP-2004 with the current state
213215
|--|--|--|
214216
|1| **Version policy** |---|
215217
|1.i|Version Policy available ||
216-
|1.ii|Stable version ||
218+
|1.ii|Stable version ||
217219
|1.iii|Declared public API||
218220
|1.iv|API stability policy||
219221
|1.v|ABI stability policy||
@@ -225,16 +227,16 @@ The chart below compares the requirements in the REP-2004 with the current state
225227
|2.iv| CI policy for change requests ||
226228
|2.v| Documentation policy for change requests ||
227229
|3| **Documentation** | --- |
228-
|3.i| Per feature documentation | |
229-
|3.ii| Per public API item documentation | * |
230+
|3.i| Per feature documentation | |
231+
|3.ii| Per public API item documentation | |
230232
|3.iii| Declared License(s) ||
231233
|3.iv| Copyright in source files||
232234
|3.v.a| Quality declaration linked to README ||
233235
|3.v.b| Centralized declaration available for peer review ||
234236
|4| Testing | --- |
235237
|4.i| Feature items tests ||
236238
|4.ii| Public API tests ||
237-
|4.iii.a| Using coverage | * |
239+
|4.iii.a| Using coverage | |
238240
|4.iii.a| Coverage policy ||
239241
|4.iv.a| Performance tests (if applicable) ||
240242
|4.iv.b| Performance tests policy||
@@ -247,4 +249,4 @@ The chart below compares the requirements in the REP-2004 with the current state
247249
|6| Platform support | --- |
248250
|6.i| Support targets Tier1 ROS platforms||
249251
|7| Security | --- |
250-
|7.i| Vulnerability Disclosure Policy | |
252+
|7.i| Vulnerability Disclosure Policy | |

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 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

rcl_action/QUALITY_DECLARATION.md

Lines changed: 24 additions & 10 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 2** 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

@@ -123,31 +137,31 @@ It also has several test dependencies, which do not affect the resulting quality
123137

124138
`action_msgs` provides messages and services for ROS 2 actions.
125139

126-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/action_msgs/QUALITY_DECLARATION.md).
140+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/action_msgs/QUALITY_DECLARATION.md).
127141

128142
#### `rcl`
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 2**, 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/foxy/QUALITY_DECLARATION.md).
139153

140154
#### `rmw`
141155

142156
`rmw` is the ROS 2 middleware library.
143157

144-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md).
158+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
145159

146160
#### `rosidl_runtime_c`
147161

148162
`rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces.
149163

150-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/master/rosidl_runtime_c/QUALITY_DECLARATION.md).
164+
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
151165

152166
### Direct Runtime Non-ROS Dependencies [5.iii]
153167

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 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

rcl_lifecycle/QUALITY_DECLARATION.md

Lines changed: 25 additions & 9 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 2** 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

@@ -122,31 +138,31 @@ It also has several test dependencies, which do not affect the resulting quality
122138

123139
`lifecycle_msgs` provides message and services for managing lifecycle nodes.
124140

125-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/master/lifecycle_msgs/QUALITY_DECLARATION.md).
141+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rcl_interfaces/blob/foxy/lifecycle_msgs/QUALITY_DECLARATION.md).
126142

127143
#### `rcl`
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 2**, see its [Quality Declaration document](../rcl/QUALITY_DECLARATION).
132148

133149
#### `rcutils`
134150

135151
`rcutils` provides commonly used functionality in C.
136152

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

139155
#### `rmw`
140156

141157
`rmw` is the ROS 2 middleware library.
142158

143-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/master/rmw/QUALITY_DECLARATION.md).
159+
It is **Quality Level 2**, see its [Quality Declaration document](https://github.com/ros2/rmw/blob/foxy/rmw/QUALITY_DECLARATION.md).
144160

145161
#### `rosidl_runtime_c`
146162

147163
`rosidl_runtime_c` provides runtime functionality for rosidl message and service interfaces.
148164

149-
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/master/rosidl_runtime_c/QUALITY_DECLARATION.md).
165+
It is **Quality Level 1**, see its [Quality Declaration document](https://github.com/ros2/rosidl/blob/foxy/rosidl_runtime_c/QUALITY_DECLARATION.md).
150166

151167
### Direct Runtime Non-ROS Dependencies [5.iii]
152168

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 2** category, see the [Quality Declaration](./QUALITY_DECLARATION.md) for more details.

0 commit comments

Comments
 (0)