Skip to content

Commit

Permalink
Add current-level quality declarations (#109)
Browse files Browse the repository at this point in the history
* 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]>
  • Loading branch information
brawner authored Apr 29, 2020
1 parent 213f5da commit ece65a4
Show file tree
Hide file tree
Showing 27 changed files with 1,409 additions and 7 deletions.
114 changes: 114 additions & 0 deletions diagnostic_msgs/QUALITY_DECLARATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
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).

# `diagnostic_msgs` Quality Declaration

The package `diagnostic_msgs` claims to be in the **Quality Level 4** 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).

## Version Policy [1]

### Version Scheme [1.i]

`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).

### Version Stability [1.ii]

`diagnostic_msgs` is not yet at a stable version, i.e. `>= 1.0.0`.

### Public API Declaration [1.iii]

All message and service definition files located in `msg` and `srv` directories are considered part of the public API.

### API Stability Within a Released ROS Distribution [1.iv]/[1.vi]

`diagnostic_msgs` will not break public API within a released ROS distribution, i.e. no major releases once the ROS distribution is released.

### ABI Stability Within a Released ROS Distribution [1.v]/[1.vi]

`diagnostic_msgs` does not contain any C or C++ code and therefore will not affect ABI stability.

## Change Control Process [2]

`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).

### Change Requests [2.i]

This package requires that all changes occur through a pull request.

### Contributor Origin [2.ii]

This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md).

### Peer Review Policy [2.iii]

Following the recommended guidelines for ROS Core packages, all pull requests must have at least 1 peer review.

### Continuous Integration [2.iv]

All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)

### Documentation Policy [2.v]

All pull requests must resolve related documentation changes before merging.

## Documentation

### Feature Documentation [3.i]

`diagnostic_msgs` has a list of provided [messages and services](README.md).
New messages and services require their own documentation in order to be added.

### Public API Documentation [3.ii]

`diagnostic_msgs` has embedded API documentation, but it is not currently hosted.

### License [3.iii]

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.

There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements.

### Copyright Statements [3.iv]

There are no currently copyrighted source files in this package.

## Testing [4]

`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.

### Linters and Static Analysis [4.v]

`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).

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/).

## Dependencies [5]

### Direct Runtime ROS Dependencies [5.i]/[5.ii]

`diagnostic_msgs` has the following runtime ROS dependencies:
* `builtin_interfaces`
* `geometry_msgs`
* `rosidl_default_runtime`
* `std_msgs`

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.

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

`diagnostic_msgs` does not have any runtime non-ROS dependencies.

## Platform Support [6]

`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.

Currently nightly results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/diagnostic_msgs/)
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/diagnostic_msgs/)
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/diagnostic_msgs/)
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/diagnostic_msgs/)

## Vulnerability Disclosure Policy [7.i]

This package does not yet have a Vulnerability Disclosure Policy
17 changes: 17 additions & 0 deletions diagnostic_msgs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# diagnostic_msgs

This package provides several messages and services for ROS node diagnostics.

For more information about ROS 2 interfaces, see [index.ros2.org](https://index.ros.org/doc/ros2/Concepts/About-ROS-Interfaces/)

## Messages (.msg)
* [DiagnosticArray](msg/DiagnosticArray.msg): Used to send diagnostic information about the state of the robot.
* [DiagnosticStatus](msg/DiagnosticStatus.msg): Holds the status of an individual component of the robot.
* [KeyValue](msg/KeyValue.msg): Associates diagnostic values with their labels.

## Services (.srv)
* [AddDiagnostics](srv/AddDiagnostics.srv): Used as part of the process for loading analyzers at runtime, not for use as a standalone service.
* [SelfTest](srv/SelfTest.srv): Call this service to perform a diagnostic check.

## Quality Declaration
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
1 change: 0 additions & 1 deletion diagnostic_msgs/msg/KeyValue.msg
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# What to label this value when viewing.
string key
# A value to track over time.
Expand Down
112 changes: 112 additions & 0 deletions geometry_msgs/QUALITY_DECLARATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
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).

# `geometry_msgs` Quality Declaration

The package `geometry_msgs` claims to be in the **Quality Level 4** 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).

## Version Policy [1]

### Version Scheme [1.i]

`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).

### Version Stability [1.ii]

`geometry_msgs` is not yet at a stable version, i.e. `>= 1.0.0`.

### Public API Declaration [1.iii]

All message and service definition files located in `msg` and `srv` directories are considered part of the public API.

### API Stability Within a Released ROS Distribution [1.iv]/[1.vi]

`geometry_msgs` will not break public API within a released ROS distribution, i.e. no major releases once the ROS distribution is released.

### ABI Stability Within a Released ROS Distribution [1.v]/[1.vi]

`geometry_msgs` does not contain any C or C++ code and therefore will not affect ABI stability.

## Change Control Process [2]

`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).

### Change Requests [2.i]

This package requires that all changes occur through a pull request.

### Contributor Origin [2.ii]

This package uses DCO as its confirmation of contributor origin policy. More information can be found in [CONTRIBUTING](../CONTRIBUTING.md).

### Peer Review Policy [2.iii]

Following the recommended guidelines for ROS Core packages, all pull requests must have at least 1 peer review.

### Continuous Integration [2.iv]

All pull requests must pass CI on all [tier 1 platforms](https://www.ros.org/reps/rep-2000.html#support-tiers)

### Documentation Policy [2.v]

All pull requests must resolve related documentation changes before merging.

## Documentation

### Feature Documentation [3.i]

`geometry_msgs` has a list of provided [messages and services](README.md).
New messages and services require their own documentation in order to be added.

### Public API Documentation [3.ii]

`geometry_msgs` has embedded API documentation, but it is not currently hosted.

### License [3.iii]

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.

There are no source files that are currently copyrighted in this package so files are not checked for abbreviated license statements.

### Copyright Statements [3.iv]

There are no currently copyrighted source files in this package.

## Testing [4]

`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.

### Linters and Static Analysis [4.v]

`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).

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/).

## Dependencies [5]

### Direct Runtime ROS Dependencies [5.i]/[5.ii]

`geometry_msgs` has the following runtime ROS dependencies:
* `rosidl_default_runtime`
* `std_msgs`

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.

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

`geometry_msgs` does not have any runtime non-ROS dependencies.

## Platform Support [6]

`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.

Currently nightly results can be seen here:
* [linux-aarch64_release](https://ci.ros2.org/view/nightly/job/nightly_linux-aarch64_release/lastBuild/testReport/geometry_msgs/)
* [linux_release](https://ci.ros2.org/view/nightly/job/nightly_linux_release/lastBuild/testReport/geometry_msgs/)
* [mac_osx_release](https://ci.ros2.org/view/nightly/job/nightly_osx_release/lastBuild/testReport/geometry_msgs/)
* [windows_release](https://ci.ros2.org/view/nightly/job/nightly_win_rel/lastBuild/testReport/geometry_msgs/)

## Vulnerability Disclosure Policy [7.i]

This package does not yet have a Vulnerability Disclosure Policy
40 changes: 40 additions & 0 deletions geometry_msgs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# geometry_msgs

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.

For more information about ROS 2 interfaces, see [index.ros2.org](https://index.ros.org/doc/ros2/Concepts/About-ROS-Interfaces/)

## Messages (.msg)
* [Accel](msg/Accel.msg): Expresses acceleration in free space broken into its linear and angular parts.
* [AccelStamped](msg/AccelStamped.msg): An accel with reference coordinate frame and timestamp.
* [AccelWithCovariance](msg/AccelWithCovariance.msg): Acceleration in free space with uncertainty.
* [AccelWithCovarianceStamped](msg/AccelWithCovarianceStamped.msg): An estimated accel with reference coordinate frame and timestamp.
* [Inertia](msg/Inertia.msg): Expresses the inertial properties of a link.
* [InertiaStamped](msg/InertiaStamped.msg): An Inertia with reference coordinate frame and timestamp.
* [Point32](msg/Point32.msg): The position of a 3-dimensional point in free space, with 32-bit fields.
* [Point](msg/Point.msg): The position of a 3-dimensional point in free space.
* [PointStamped](msg/PointStamped.msg): Point with reference coordinate frame and timestamp.
* [Polygon](msg/Polygon.msg): A specification of a polygon where the first and last points are assumed to be connected.
* [PolygonStamped](msg/PolygonStamped.msg): A Polygon with reference coordinate frame and timestamp.
* [Pose2D](msg/Pose2D.msg): **Deprecated as of Foxy and will potentially be removed in any following release.**
* [PoseArray](msg/PoseArray.msg): An array of poses with a header for global reference.
* [Pose](msg/Pose.msg): A representation of pose in free space, composed of position and orientation.
* [PoseStamped](msg/PoseStamped.msg): A Pose with reference coordinate frame and timestamp.
* [PoseWithCovariance](msg/PoseWithCovariance.msg): A pose in free space with uncertainty.
* [PoseWithCovarianceStamped](msg/PoseWithCovarianceStamped.msg): An estimated pose with a reference coordinate frame and timestamp.
* [Quaternion](msg/Quaternion.msg): An orientation in free space in quaternion form.
* [QuaternionStamped](msg/QuaternionStamped.msg): An orientation with reference coordinate frame and timestamp.
* [Transform](msg/Transform.msg): The transform between two coordinate frames in free space.
* [TransformStamped](msg/TransformStamped.msg): A transform from coordinate frame header.frame_id to the coordinate frame child_frame_id.
* [Twist](msg/Twist.msg): Velocity in 3-dimensional free space broken into its linear and angular parts.
* [TwistStamped](msg/TwistStamped.msg): A twist with reference coordinate frame and timestamp.
* [TwistWithCovariance](msg/TwistWithCovariance.msg): Velocity in 3-dimensional free space with uncertainty.
* [TwistWithCovarianceStamped](msg/TwistWithCovarianceStamped.msg): An estimated twist with reference coordinate frame and timestamp.
* [Vector3](msg/Vector3.msg): Represents a vector in 3-dimensional free space.
* [Vector3Stamped](msg/Vector3Stamped.msg): Represents a Vector3 with reference coordinate frame and timestamp.
* [Wrench](msg/Wrench.msg): Represents force in free space, separated into its linear and angular parts.
* [WrenchStamped](msg/WrenchStamped.msg): A wrench with reference coordinate frame and timestamp.


## Quality Declaration
This package claims to be in the **Quality Level 4** category, see the [Quality Declaration](QUALITY_DECLARATION.md) for more details.
1 change: 0 additions & 1 deletion geometry_msgs/msg/Inertia.msg
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# Mass [kg]
float64 m

Expand Down
Loading

0 comments on commit ece65a4

Please sign in to comment.