QUALITY_DECLARATION

This document is a declaration of software quality for the rcl_interfaces package, based on the guidelines in REP-2004.

rcl_interfaces Quality Declaration

The package rcl_interfaces claims to be in the Quality Level 1 category as long as it is used with a Quality Level 1 middleware.

Below are the rationales, notes, and caveats for this claim, organized by each requirement listed in the Package Requirements for Quality Level 1 in REP-2004.

Version Policy [1]

Version Scheme [1.i]

rcl_interfaces uses semver according to the recommendation for ROS Core packages in the ROS 2 Developer Guide.

Version Stability [1.ii]

rcl_interfaces is at a stable version, i.e. >= 1.0.0. Its version can be found in its package.xml and its change history can be found in its CHANGELOG.

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]

rcl_interfaces 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]

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

Change Control Process [2]

rcl_interfaces follows the recommended guidelines for ROS Core packages in the ROS 2 Developer Guide.

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.

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 request must pass CI on all tier 1 platforms

Documentation Policy [2.v]

All pull requests must resolve related documentation changes before merging.

Documentation

Feature Documentation [3.i]

rcl_interfaces has a list of provided messages and services. New messages and services require their own documentation in order to be added.

Public API Documentation [3.ii]

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

License [3.iii]

The license for rcl_interfaces is Apache 2.0, the type is declared in the package.xml manifest file, and a full copy of the license is in the repository level LICENSE file.

There is an automated test which runs a linter that ensures each file has a license statement.

The nightly test can be found at here

Testing [4]

rcl_interfaces is a package providing strictly message and service definitions and therefore does not require associated tests and has no coverage or performance requirements.

Dependencies [5]

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

rcl_interfaces has the following ROS dependencies, which are at Quality Level 1:

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]

rcl_interfaces does not have any runtime non-ROS dependencies.

Platform Support [6]

rcl_interfaces supports all of the tier 1 platforms as described in REP-2000, and tests each change against all of them.

Currently nightly results can be seen here:

Vulnerability Disclosure Policy [7.i]

This package conforms to the Vulnerability Disclosure Policy in REP-2006.