Skip to content

Commit 7334e0f

Browse files
wjwwoodmaryaB-osrgbiggs
authored
[REP-2004] add to the motivation to address common questions (ros-infrastructure#269)
* add to the motivation to address common questions * Update rep-2004.rst Co-authored-by: Marya Belanger <[email protected]> * Adding Marya's suggested changes * Apply suggestions from code review Co-authored-by: Marya Belanger <[email protected]> * Update rep-2004.rst Co-authored-by: Geoffrey Biggs <[email protected]> Co-authored-by: Marya Belanger <[email protected]> Co-authored-by: Geoffrey Biggs <[email protected]>
1 parent d4f023c commit 7334e0f

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

rep-2004.rst

+31-9
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,42 @@ Abstract
1313

1414
This REP describes a set of categories meant to convey the quality or maturity of packages in the ROS ecosystem.
1515
Inclusion in a category, or quality level, is based on the policies to which a package adheres.
16-
The categories address version, change control, documentation, testing, dependency and platform support policies.
16+
The categories address policies about versioning, change control, documentation, testing, dependencies, platform support and security.
1717

1818
Motivation
1919
==========
2020

21-
The purpose of this REP is to provide standard guidelines regarding package quality, for both maintainers and consumers.
21+
The purpose of this REP is to provide standard guidelines for evaluating package quality, for both maintainers and consumers.
2222

23-
The categories are meant to set quality expectations for package consumers, not to enforce quality rules on maintainers.
24-
Package maintainers are responsible for establishing processes and documenting how their package's policies achieve a certain quality level.
25-
With the help of documented policies, package consumers can better evaluate whether a package or its dependencies meet the standards for use in their projects.
23+
Package maintainers can use these guidelines to establish and document their own specific policies addressing how their packages achieve certain quality levels.
24+
25+
Consumers can use the guidelines in the REP, as well as the corresponding policies defined by maintainers, to set expectations on package quality and better evaluate whether a package or its dependencies meet the standards of use in their projects.
26+
27+
The outcome of this REP should be that maintainers who want to evaluate their packages' quality have looked at each guideline, thought about how their policies address each, adjusted their policies if needed, and then documented their policies and justifications.
28+
29+
In turn, the documentation of policies and communication of quality characteristics between maintainers and consumers will improve.
30+
By setting these goals and expectations for maintainers and consumers, respectively, the guidelines will also encourage better quality across the ROS ecosystem.
31+
32+
Antigoals
33+
^^^^^^^^^
34+
35+
The motivation behind this REP does not include:
36+
37+
* Enforcing quality levels on maintainers
38+
39+
* No maintainer is required to abide by any of the guidelines in this REP
40+
41+
* Dictating policy implementation specifics necessary to achieve a quality level
42+
43+
* Maintainers can come up with their own policies or follow an existing set of guidelines for achieving these quality levels; see `Reference Implementation`_ for examples of existing guidelines
44+
* Policy requirements (which tools to use, specific thresholds, etc.) are *intentionally generic*
45+
46+
* Enforcing the community to approve of policies documented by package maintainers
47+
48+
* Policies that are skipped or altered with justifications require evaluation by the consumer to see if that reasoning is acceptable for their standards of use
49+
* Enforcement cannot, therefore, be done in an automated fashion in all cases
50+
* Instead, peer reviewed lists of packages, where maintainers can take their `quality declaration <#reference-implementation>`_ and have their peers verify that their claims/justifications are truthful/reasonable, respectively, can be created
2651

27-
By providing these rough goals for package maintainers to strive towards, the categories will also encourage better quality across the ROS ecosystem.
2852

2953
Specification
3054
=============
@@ -756,9 +780,7 @@ Reference Implementation
756780

757781
The `ROS 2 Developer Guide <https://index.ros.org/doc/ros2/Contributing/Developer-Guide/>`_ describes the policies we implement to achieve Quality Level 1 for ROS Core packages.
758782

759-
The `rcutils package's quality declaration <https://github.com/ros2/rcutils/pull/202/files>`_ is one example of the conditions of this REP in practice on a non-trivial package.
760-
761-
.. update link when that draft is merged
783+
The `rcutils package's quality declaration <https://github.com/ros2/rcutils/blob/4157542d6320091cef715115d587625fd926500b/QUALITY_DECLARATION.md>`_ is one example of the conditions of this REP in practice on a non-trivial package.
762784

763785
The following template is a suggestion; packages can choose to combine sub-items into one heading if applicable (e.g. [3.i]-[3.iv] combined into [3]).
764786

0 commit comments

Comments
 (0)