You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: rep-2004.rst
+31-9
Original file line number
Diff line number
Diff line change
@@ -13,18 +13,42 @@ Abstract
13
13
14
14
This REP describes a set of categories meant to convey the quality or maturity of packages in the ROS ecosystem.
15
15
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.
17
17
18
18
Motivation
19
19
==========
20
20
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.
22
22
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
26
51
27
-
By providing these rough goals for package maintainers to strive towards, the categories will also encourage better quality across the ROS ecosystem.
28
52
29
53
Specification
30
54
=============
@@ -756,9 +780,7 @@ Reference Implementation
756
780
757
781
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.
758
782
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.
762
784
763
785
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]).
0 commit comments