Skip to content
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

Draft
wants to merge 2 commits into
base: rolling
Choose a base branch
from
Draft

Quality declaration #483

wants to merge 2 commits into from

Conversation

ahcorde
Copy link
Contributor

@ahcorde ahcorde commented Feb 27, 2025

Draft Quality declaration

There are still some thing to define to set the real quality level. Important ones:

  • version is still under 1.0.0. Can we consider this stable
  • No CI (yet)
  • no unit test in rmw_zenoh_cpp

I added some TODOs that we review. Open as a draft

Signed-off-by: Alejandro Hernandez Cordero <[email protected]>
@ahcorde ahcorde self-assigned this Feb 27, 2025
@@ -0,0 +1,153 @@
# External Dependency Quality declaration zenoh-c
Copy link
Contributor

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 ?
Copy link
Contributor

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
Copy link
Contributor

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
Copy link
Contributor

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 and zenoh) 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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggestion:

All Zenoh projects are stable since 1.0.0. The latest releases and all history of changes can be found here:


### Linters and Static Analysis [4.v]

Not available publicly, if any.
Copy link
Contributor

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
Copy link
Contributor

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.
Copy link
Contributor

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.
Copy link
Contributor

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.
Copy link
Contributor

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.

@ros-discourse
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants