Open mikaelarguedas opened 4 years ago
This is a visual aid to see where we stand compared to quality levels. This is just to visually represent the list in the first comment. List in first comment is the source of truth
SROS2 | Level 1 | Level 2 | Level 3 | Level 4 | |
---|---|---|---|---|---|
1.i | :heavy_check_mark: | x | x | x | o |
1.ii | x | x | x | ||
1.iii | :heavy_check_mark: | x | x | o | |
1.iv | :heavy_check_mark: | x | x | x | |
1.v | :heavy_check_mark: | x | x | x | |
1.vi | :heavy_check_mark: | x | x | o | |
2.i | :heavy_check_mark: | x | x | x | o |
2.ii | :heavy_check_mark: | x | x | ||
2.iii | :heavy_check_mark: | x | |||
2.iv | :heavy_check_mark: | x | x | x | |
2.v | x | ||||
3.i | x | x | |||
3.ii | x | ||||
3.iii | :heavy_check_mark: | x | x | x | x |
3.iv | :heavy_check_mark: | x | x | x | x |
3.v | x | x | |||
3.v.a | x | x | x | ||
3.v.b | :heavy_check_mark: | o | o | ||
3.v.c | x | x | x | ||
4.i | x | x | o | o | |
4.ii | x | ||||
4.iii.a | :heavy_check_mark: | x | x | ||
4.iii.b | :heavy_check_mark: | x | |||
4.iv.a | x | ||||
4.iv.b | x | ||||
4.v.a | :heavy_check_mark: | x | x | ||
4.v.b | :heavy_check_mark: | x | x | ||
5.i | x | x | |||
5.ii | |||||
5.iii | x | x | |||
6.i | :heavy_check_mark: | x | x | x | o |
7.i | :heavy_check_mark: | x | x | o |
This issue has been mentioned on ROS Discourse. There might be relevant details there:
https://discourse.ros.org/t/ros-2-package-documentation/14569/1
This issue has been mentioned on ROS Discourse. There might be relevant details there:
https://discourse.ros.org/t/quality-levels-for-ros2cli-and-rclpy/14573/1
There are currently no plans for either ros2cli or rclpy to implement REP 2004. As a result, while this list gives us insight into areas we can and should definitely improve, I don't think we'll be able to claim quality level 2.
This is unfortunate, while we could have made a case that rclpy should not be a hard dependency for sros2, ros2cli definitely is a core foundation for this package. As you saids this will prevent from claiming quality level 2 or lower.
We could start by making sure we fulfill all level 3 requirements and move on to have all the boxes ticks for level 2 but the dependencies. We can then see what the situation is for the dependencies at that time. WDYT?
while we could have made a case that rclpy should not be a hard dependency for sros2, ros2cli definitely is a core foundation for this package.
rclpy
is a dependency of ros2cli
so you will recursively anyway depend on both.
This issue has been mentioned on ROS Discourse. There might be relevant details there:
https://discourse.ros.org/t/ros-2-tsc-meeting-minutes-2020-11-19/17570/1
Discussed in the working group meeting, this is for tracking the state of sros2 with respect to Quality Levels defined in REP-2004
An example of quality declaration document for a Python package https://github.com/ament/ament_index/blob/master/ament_index_python/QUALITY_DECLARATION.md
We will likely need to do a second pass taking into account what is in the Developer Guide as it states more precisely what policies are applied for some of these items
1 Version Policy:
[x] 1.i Must have a version policy (e.g. semver)
[ ] 1.ii Must be at a stable version (e.g. for semver that means version >= 1.0.0)
[x] 1.iii Must have a strictly declared public API
__init__.py
[x] 1.iv Must have a policy for API stability
[x] 1.v Must have a policy for ABI stability
[x] 1.vi Must have a policy that keeps API and ABI stability within a released ROS distribution
2 Change Control Process:
3 Documentation:
[ ] 3.i Must have documentation for each "feature" (e.g. for rclcpp: create a node, publish a message, spin, etc.)
[ ] 3.ii Must have documentation for each item in the public API (e.g. functions, classes, etc.)
[x] 3.iii Must have a declared license or set of licenses
[x] 3.iv Must state copyrights within the project and attribute all authors
[ ] 3.v Must have a "quality declaration" document, which declares the quality level and justifies how the package meets each of the requirements
README
which contains the "quality declaration" or links to it4 Testing:
[x] 4.iii Code Coverage:
[ ] 4.iv Performance:
[x] 4.v Linters and Static Analysis:
5 Dependencies:
6 Platform Support:
7 Security