-
Notifications
You must be signed in to change notification settings - Fork 49
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Quality declaration #483
base: rolling
Are you sure you want to change the base?
Quality declaration #483
Conversation
Signed-off-by: Alejandro Hernandez Cordero <[email protected]>
@@ -0,0 +1,153 @@ | |||
# External Dependency Quality declaration zenoh-c |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rmw_zenoh_cpp
no longer directly depends on zenoh-c
but on zenoh-cpp
, which itself depends on zenoh-c
.
Therefore I think the Quality declaration should be for zenoh-cpp
.
|
||
The `zenoh-c` meets the basic requirements for a software platform in terms of testing its basic functionality, providing a [valid license](https://github.com/eclipse-zenoh/zenoh-c/blob/main/LICENSE) for the code used and a public GitHub repository with the changes made to the code over time. | ||
|
||
TODO(zettascale): Include paragraph How are we going to asure API/ABI policy ? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Isn't this already covered in section [1] below ?
There is no explicit support for any OS platform, however their [GitHub repository](https://github.com/eclipse-zenoh/zenoh-c) installation appears to be targeting Linux. | ||
The first version of this library was developed in 2020, and it is used widely. | ||
|
||
TODO(zettascale): Some generic statidistics about how many people use this package and if there is any other open source |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't have such statistic or usage examples for zenoh-cpp
nor zenoh-c
.
For zenoh
(Rust) there are some downloads stats on crates.io and the list of dependents Rust project here. I'm not sure how those is relevant.
Also, other RMW external dependencies don't have such statements in their Quality Declaration (see CycloneDDS and FastDDS)
|
||
### Version Scheme [1.i] | ||
|
||
TODO(zettascale): Explain version scheme |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion:
All Zenoh projects (including
zenoh-cpp, zenoh-c
andzenoh
) adhere to semver 2.0.0:
The version numbers are organised as MAJOR.MINOR.PATCH where all three components are non-negative decimal numbers. Version number policy follows the following rules:
- MAJOR version is incremented when an incompatible API or protocol change is made;
- MINOR version when functionality is added in a backwards compatible. MINOR is source compatible. The project strives to also maintain binary compatibility and protocol interoperability. Any breaking change on those aspects will be documented in the Zenoh CHANGELOG.;
- PATCH version when backwards compatible bug fixes are made. PATCH is binary compatible and has interoperable protocol.
See also the Releases section of the Eclipse project handbook which discusses Major, Minor, and Service release criteria (where Service corresponds to PATCH in the above description).
|
||
### Version Stability [1.ii] | ||
|
||
TODO(zettascale): Explain version Stability |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
### Linters and Static Analysis [4.v] | ||
|
||
Not available publicly, if any. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zenoh
uses on rust-clippy for linting and static analysis.
|
||
### Vulnerability Disclosure Policy [7.i] | ||
|
||
TODO(zettascale): Vulnerability Disclosure Policy |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion of change:
All Zenoh projects conform to the Vulnerability Disclosure Policy in REP-2006. The Eclipse Project Handbook states the project's vulnerability disclosure policy in detail.
|
||
### Direct Runtime ROS Dependencies [5.i] | ||
|
||
The `zenoh-c` library does not add additional dependencies, it only requires C++ standard libraries to be built and used. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion of change:
As an external dependency, there are no ROS dependencies in
zenoh-cpp
.
|
||
### Optional Direct Runtime ROS Dependencies [5.ii] | ||
|
||
Does not apply for external dependencies. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Suggestion of change:
As an external dependency, there are no ROS dependencies in
zenoh-cpp
.
|
||
### Direct Runtime non-ROS Dependency [5.iii] | ||
|
||
The `zenoh-c` library require RUST and cargo to be able to compile it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
zenoh-cpp
doesn't require any dependency at runtime.
This pull request has been mentioned on ROS Discourse. There might be relevant details there: https://discourse.ros.org/t/ros-pmc-minutes-for-2025-03-12/42493/1 |
Draft Quality declaration
There are still some thing to define to set the real quality level. Important ones:
I added some TODOs that we review. Open as a draft