QUALITY_DECLARATION

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

ament_cmake_catch2 Quality Declaration

The package ament_cmake_catch2 claims to be in the Quality Level 3 category.

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

Version Policy [1]

Version Scheme [1.i]

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

Version Stability [1.ii]

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

Public API Declaration [1.iii]

The CMake macros provided in the cmake directory are considered part of the public API.

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

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

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

Change Control Process [2]

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

Change Requests [2.i]

ament_cmake_catch2 requires that all changes occur through a pull request.

Contributor Origin [2.ii]

ament_cmake_catch2 does not require a confirmation of contributor origin.

Peer Review Policy [2.iii]

All pull requests must have at least 1 peer review.

Continuous Integration [2.iv]

All pull requests must pass CI on all platforms supported by RMF.

Documentation Policy [2.v]

All pull requests must resolve related documentation changes before merging.

Documentation [3]

Feature Documentation [3.i]

ament_cmake_catch2 has documentation for each CMake macro in the macro definition file. A usage guide is provided in the doc directory.

Public API Documentation [3.ii]

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

License [3.iii]

The license for ament_cmake_catch2 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.

The CMake files contain copyright headers, although this is not automatically verified using linters.

Quality declaration document [3.v]

This quality declaration is linked in the README file.

This quality declaration has not been externally peer-reviewed and is not registered on any Level 3 lists.

Testing [4]

Feature Testing [4.i]

ament_cmake_catch2 is a package providing strictly CMake macros and therefore does not require associated tests.

Public API Testing [4.ii]

ament_cmake_catch2 is a package providing strictly CMake macros and therefore does not require associated tests.

Coverage [4.iii]

ament_cmake_catch2 is a package providing strictly CMake macros and therefore has no coverage requirements.

Performance [4.iv]

ament_cmake_catch2 is a package providing strictly CMake macros and therefore has no performance requirements.

Linters and Static Analysis [4.v]

ament_cmake_catch2 does not use the standard linters and static analysis tools for its CMake code to ensure it follows the ROS 2 Developer Guide.

Dependencies [5]

Direct Runtime ROS Dependencies [5.i]

ament_cmake_catch2 has no required runtime dependencies.

Optional Direct Runtime ROS Dependencies [5.ii]

ament_cmake_catch2 has no optional runtime dependencies.

Direct Runtime non-ROS Dependency [5.iii]

ament_cmake_catch2 does not have any runtime non-ROS dependencies.

Platform Support [6]

As a pure CMake package, ament_cmake_catch2 supports all of the tier 1 platforms as described in REP-2000, but does not currently test each change against all of them.

Security [7]

Vulnerability Disclosure Policy [7.i]

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