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
Copyright Statements [3.iv]
The copyright holders each provide a statement of copyright in each source code file in rcl_interfaces
.
There is an automated test which runs a linter that ensures each file has at least one copyright 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:
builtin_interfaces
: QUALITY DECLARATIONrosidl_default_runtime
: QUALITY DECLARATION
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.