Skip to content

Commit ece65a4

Browse files
authored
Add current-level quality declarations (#109)
* Touchup some message documentation and add READMEs with feature documentation Signed-off-by: Stephen Brawner <[email protected]> * PR Fixup Signed-off-by: Stephen Brawner <[email protected]> * Add quality declarations for the current QL (4) Signed-off-by: Stephen Brawner <[email protected]> * PR Fixup Signed-off-by: Stephen Brawner <[email protected]> * Fixup Signed-off-by: Stephen Brawner <[email protected]>
1 parent 213f5da commit ece65a4

27 files changed

+1409
-7
lines changed
+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
This document is a declaration of software quality for the `diagnostic_msgs` package, based on the guidelines in [REP-2004](https://www.ros.org/reps/rep-2004.html).
2+
3+
# `diagnostic_msgs` Quality Declaration
4+
5+
The package `diagnostic_msgs` claims to be in the **Quality Level 4** category.
6+
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).
8+
9+
## Version Policy [1]
10+
11+
### Version Scheme [1.i]
12+
13+
`diagnostic_msgs` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#versioning).
14+
15+
### Version Stability [1.ii]
16+
17+
`diagnostic_msgs` is not yet at a stable version, i.e. `>= 1.0.0`.
18+
19+
### Public API Declaration [1.iii]
20+
21+
All message and service definition files located in `msg` and `srv` directories are considered part of the public API.
22+
23+
### API Stability Within a Released ROS Distribution [1.iv]/[1.vi]
24+
25+
`diagnostic_msgs` will not break public API within a released ROS distribution, i.e. no major releases once the ROS distribution is released.
26+
27+
### ABI Stability Within a Released ROS Distribution [1.v]/[1.vi]
28+
29+
`diagnostic_msgs` does not contain any C or C++ code and therefore will not affect ABI stability.
30+
31+
## Change Control Process [2]
32+
33+
`diagnostic_msgs` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-requirements).
34+
35+
### Change Requests [2.i]
36+
37+
This package requires that all changes occur through a pull request.
38+
39+
### Contributor Origin [2.ii]
40+
41+
This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md).
42+
43+
### Peer Review Policy [2.iii]
44+
45+
Following the recommended guidelines for ROS Core packages, all pull requests must have at least 1 peer review.
46+
47+
### Continuous Integration [2.iv]
48+
49+
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
50+
51+
### Documentation Policy [2.v]
52+
53+
All pull requests must resolve related documentation changes before merging.
54+
55+
## Documentation
56+
57+
### Feature Documentation [3.i]
58+
59+
`diagnostic_msgs` has a list of provided [messages and services](README.md).
60+
New messages and services require their own documentation in order to be added.
61+
62+
### Public API Documentation [3.ii]
63+
64+
`diagnostic_msgs` has embedded API documentation, but it is not currently hosted.
65+
66+
### License [3.iii]
67+
68+
The license for `diagnostic_msgs` is Apache 2.0, the type is declared in the [package.xml](package.xml) manifest file, and a full copy of the license is in the repository level [LICENSE](../LICENSE) file.
69+
70+
There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements.
71+
72+
### Copyright Statements [3.iv]
73+
74+
There are no currently copyrighted source files in this package.
75+
76+
## Testing [4]
77+
78+
`diagnostic_msgs` is a package providing strictly message and service definitions and therefore does not require associated tests and has no coverage or performance requirements.
79+
80+
### Linters and Static Analysis [4.v]
81+
82+
`diagnostic_msgs` uses and passes all the standard linters and static analysis tools for its generated C++ and Python code to ensure it follows the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters).
83+
84+
Results of the nightly linter tests can be found [here](http://build.ros2.org/view/Epr/job/Epr__common_interfaces__ubuntu_bionic_amd64/lastBuild/testReport/diagnostic_msgs/).
85+
86+
## Dependencies [5]
87+
88+
### Direct Runtime ROS Dependencies [5.i]/[5.ii]
89+
90+
`diagnostic_msgs` has the following runtime ROS dependencies:
91+
* `builtin_interfaces`
92+
* `geometry_msgs`
93+
* `rosidl_default_runtime`
94+
* `std_msgs`
95+
96+
It has several "buildtool" dependencies, which do not affect the resulting quality of the package, because they do not contribute to the public library API.
97+
98+
### Direct Runtime Non-ROS Dependencies [5.iii]
99+
100+
`diagnostic_msgs` does not have any runtime non-ROS dependencies.
101+
102+
## Platform Support [6]
103+
104+
`diagnostic_msgs` 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.
105+
106+
Currently nightly results can be seen here:
107+
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/diagnostic_msgs/)
108+
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/diagnostic_msgs/)
109+
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/diagnostic_msgs/)
110+
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/diagnostic_msgs/)
111+
112+
## Vulnerability Disclosure Policy [7.i]
113+
114+
This package does not yet have a Vulnerability Disclosure Policy

diagnostic_msgs/README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# diagnostic_msgs
2+
3+
This package provides several messages and services for ROS node diagnostics.
4+
5+
For more information about ROS 2 interfaces, see [index.ros2.org](https://index.ros.org/doc/ros2/Concepts/About-ROS-Interfaces/)
6+
7+
## Messages (.msg)
8+
* [DiagnosticArray](msg/DiagnosticArray.msg): Used to send diagnostic information about the state of the robot.
9+
* [DiagnosticStatus](msg/DiagnosticStatus.msg): Holds the status of an individual component of the robot.
10+
* [KeyValue](msg/KeyValue.msg): Associates diagnostic values with their labels.
11+
12+
## Services (.srv)
13+
* [AddDiagnostics](srv/AddDiagnostics.srv): Used as part of the process for loading analyzers at runtime, not for use as a standalone service.
14+
* [SelfTest](srv/SelfTest.srv): Call this service to perform a diagnostic check.
15+
16+
## Quality Declaration
17+
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.

diagnostic_msgs/msg/KeyValue.msg

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# What to label this value when viewing.
32
string key
43
# A value to track over time.

geometry_msgs/QUALITY_DECLARATION.md

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
This document is a declaration of software quality for the `geometry_msgs` package, based on the guidelines in [REP-2004](https://www.ros.org/reps/rep-2004.html).
2+
3+
# `geometry_msgs` Quality Declaration
4+
5+
The package `geometry_msgs` claims to be in the **Quality Level 4** category.
6+
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).
8+
9+
## Version Policy [1]
10+
11+
### Version Scheme [1.i]
12+
13+
`geometry_msgs` uses `semver` according to the recommendation for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#versioning).
14+
15+
### Version Stability [1.ii]
16+
17+
`geometry_msgs` is not yet at a stable version, i.e. `>= 1.0.0`.
18+
19+
### Public API Declaration [1.iii]
20+
21+
All message and service definition files located in `msg` and `srv` directories are considered part of the public API.
22+
23+
### API Stability Within a Released ROS Distribution [1.iv]/[1.vi]
24+
25+
`geometry_msgs` will not break public API within a released ROS distribution, i.e. no major releases once the ROS distribution is released.
26+
27+
### ABI Stability Within a Released ROS Distribution [1.v]/[1.vi]
28+
29+
`geometry_msgs` does not contain any C or C++ code and therefore will not affect ABI stability.
30+
31+
## Change Control Process [2]
32+
33+
`geometry_msgs` follows the recommended guidelines for ROS Core packages in the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#package-requirements).
34+
35+
### Change Requests [2.i]
36+
37+
This package requires that all changes occur through a pull request.
38+
39+
### Contributor Origin [2.ii]
40+
41+
This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md).
42+
43+
### Peer Review Policy [2.iii]
44+
45+
Following the recommended guidelines for ROS Core packages, all pull requests must have at least 1 peer review.
46+
47+
### Continuous Integration [2.iv]
48+
49+
All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)
50+
51+
### Documentation Policy [2.v]
52+
53+
All pull requests must resolve related documentation changes before merging.
54+
55+
## Documentation
56+
57+
### Feature Documentation [3.i]
58+
59+
`geometry_msgs` has a list of provided [messages and services](README.md).
60+
New messages and services require their own documentation in order to be added.
61+
62+
### Public API Documentation [3.ii]
63+
64+
`geometry_msgs` has embedded API documentation, but it is not currently hosted.
65+
66+
### License [3.iii]
67+
68+
The license for `geometry_msgs` is Apache 2.0, the type is declared in the [package.xml](package.xml) manifest file, and a full copy of the license is in the repository level [LICENSE](../LICENSE) file.
69+
70+
There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements.
71+
72+
### Copyright Statements [3.iv]
73+
74+
There are no currently copyrighted source files in this package.
75+
76+
## Testing [4]
77+
78+
`geometry_msgs` is a package providing strictly message and service definitions and therefore does not require associated tests and has no coverage or performance requirements.
79+
80+
### Linters and Static Analysis [4.v]
81+
82+
`geometry_msgs` uses and passes all the standard linters and static analysis tools for its generated C++ and Python code to ensure it follows the [ROS 2 Developer Guide](https://index.ros.org/doc/ros2/Contributing/Developer-Guide/#linters).
83+
84+
Results of the nightly linter tests can be found [here](http://build.ros2.org/view/Epr/job/Epr__common_interfaces__ubuntu_bionic_amd64/lastBuild/testReport/geometry_msgs/).
85+
86+
## Dependencies [5]
87+
88+
### Direct Runtime ROS Dependencies [5.i]/[5.ii]
89+
90+
`geometry_msgs` has the following runtime ROS dependencies:
91+
* `rosidl_default_runtime`
92+
* `std_msgs`
93+
94+
It has several "buildtool" dependencies, which do not affect the resulting quality of the package, because they do not contribute to the public library API.
95+
96+
### Direct Runtime Non-ROS Dependencies [5.iii]
97+
98+
`geometry_msgs` does not have any runtime non-ROS dependencies.
99+
100+
## Platform Support [6]
101+
102+
`geometry_msgs` 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.
103+
104+
Currently nightly results can be seen here:
105+
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/geometry_msgs/)
106+
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/geometry_msgs/)
107+
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/geometry_msgs/)
108+
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/geometry_msgs/)
109+
110+
## Vulnerability Disclosure Policy [7.i]
111+
112+
This package does not yet have a Vulnerability Disclosure Policy

geometry_msgs/README.md

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# geometry_msgs
2+
3+
This package provides messages for common geometric primitives such as points, vectors, and poses. These primitives are designed to provide a common data type and facilitate interoperability throughout the system.
4+
5+
For more information about ROS 2 interfaces, see [index.ros2.org](https://index.ros.org/doc/ros2/Concepts/About-ROS-Interfaces/)
6+
7+
## Messages (.msg)
8+
* [Accel](msg/Accel.msg): Expresses acceleration in free space broken into its linear and angular parts.
9+
* [AccelStamped](msg/AccelStamped.msg): An accel with reference coordinate frame and timestamp.
10+
* [AccelWithCovariance](msg/AccelWithCovariance.msg): Acceleration in free space with uncertainty.
11+
* [AccelWithCovarianceStamped](msg/AccelWithCovarianceStamped.msg): An estimated accel with reference coordinate frame and timestamp.
12+
* [Inertia](msg/Inertia.msg): Expresses the inertial properties of a link.
13+
* [InertiaStamped](msg/InertiaStamped.msg): An Inertia with reference coordinate frame and timestamp.
14+
* [Point32](msg/Point32.msg): The position of a 3-dimensional point in free space, with 32-bit fields.
15+
* [Point](msg/Point.msg): The position of a 3-dimensional point in free space.
16+
* [PointStamped](msg/PointStamped.msg): Point with reference coordinate frame and timestamp.
17+
* [Polygon](msg/Polygon.msg): A specification of a polygon where the first and last points are assumed to be connected.
18+
* [PolygonStamped](msg/PolygonStamped.msg): A Polygon with reference coordinate frame and timestamp.
19+
* [Pose2D](msg/Pose2D.msg): **Deprecated as of Foxy and will potentially be removed in any following release.**
20+
* [PoseArray](msg/PoseArray.msg): An array of poses with a header for global reference.
21+
* [Pose](msg/Pose.msg): A representation of pose in free space, composed of position and orientation.
22+
* [PoseStamped](msg/PoseStamped.msg): A Pose with reference coordinate frame and timestamp.
23+
* [PoseWithCovariance](msg/PoseWithCovariance.msg): A pose in free space with uncertainty.
24+
* [PoseWithCovarianceStamped](msg/PoseWithCovarianceStamped.msg): An estimated pose with a reference coordinate frame and timestamp.
25+
* [Quaternion](msg/Quaternion.msg): An orientation in free space in quaternion form.
26+
* [QuaternionStamped](msg/QuaternionStamped.msg): An orientation with reference coordinate frame and timestamp.
27+
* [Transform](msg/Transform.msg): The transform between two coordinate frames in free space.
28+
* [TransformStamped](msg/TransformStamped.msg): A transform from coordinate frame header.frame_id to the coordinate frame child_frame_id.
29+
* [Twist](msg/Twist.msg): Velocity in 3-dimensional free space broken into its linear and angular parts.
30+
* [TwistStamped](msg/TwistStamped.msg): A twist with reference coordinate frame and timestamp.
31+
* [TwistWithCovariance](msg/TwistWithCovariance.msg): Velocity in 3-dimensional free space with uncertainty.
32+
* [TwistWithCovarianceStamped](msg/TwistWithCovarianceStamped.msg): An estimated twist with reference coordinate frame and timestamp.
33+
* [Vector3](msg/Vector3.msg): Represents a vector in 3-dimensional free space.
34+
* [Vector3Stamped](msg/Vector3Stamped.msg): Represents a Vector3 with reference coordinate frame and timestamp.
35+
* [Wrench](msg/Wrench.msg): Represents force in free space, separated into its linear and angular parts.
36+
* [WrenchStamped](msg/WrenchStamped.msg): A wrench with reference coordinate frame and timestamp.
37+
38+
39+
## Quality Declaration
40+
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.

geometry_msgs/msg/Inertia.msg

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# Mass [kg]
32
float64 m
43

0 commit comments

Comments
 (0)