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

Updated class_loader QD #152

Merged
merged 2 commits into from
May 21, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 25 additions & 10 deletions QUALITY_DECLARATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ Below are the rationales, notes, and caveats for this claim, organized by each r

### Version Stability [1.ii]

`class_loader` has a stable version.
`class_loader` is at a stable version, i.e. `>= 1.0.0`.
The current version can be found in its [package.xml](package.xml), and its change history can be found in its [CHANGELOG](CHANGELOG.rst).

### Public API Declaration [1.iii]

Expand Down Expand Up @@ -125,19 +126,33 @@ Current coverage statistics can be viewed [here](https://ci.ros2.org/job/ci_linu

## Dependencies [5]

`class_loader` has run-time and build-time dependencies that need to be considered for this declaration.
Below are evaluations of each of `class_loader`'s run-time and build-time dependencies that have been determined to influence the quality.

It has one "buildtool" dependency, which does not affect the resulting quality of the package because it does not contribute to the public library API.

It also has several test dependencies, which do not affect the resulting quality of the package because these are only used to build and run test code.

### Direct Runtime ROS Dependencies [5.i]/[5.ii]

- console_bridge_vendor
- rcpputils
#### `console_bridge_vendor`
Copy link

Choose a reason for hiding this comment

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

@ahcorde meta: I'm a bit confused here, why do we depend on both the vendored package and the system dependency?

Copy link
Author

Choose a reason for hiding this comment

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

These are the run dependencies that are in the package.xml. yo system may work with the vendored or the system dependency. The QD need to include both

Copy link

Choose a reason for hiding this comment

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

Right, the point being that the vendored package will (should?) take care of that fallback behavior, no?

Copy link
Author

Choose a reason for hiding this comment

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

In other packages such as for example rcl_yaml_param_parser we also define both dependencies

Copy link
Author

Choose a reason for hiding this comment

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

You need to depend on both, if console_bridge doesn't exist then the vendor package will build it. I think this vendor package is only used for this. Then you need to depend on console_bridge to use the dependency.


The `console_bridge_vendor` package provides a wrapper around `console_bridge`, providing nothing but a dependency on `console_bridge` on some systems. On others, it provides an [ExternalProject](https://cmake.org/cmake/help/latest/module/ExternalProject.html) build of `console_bridge`.

It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/console_bridge_vendor/blob/master/QUALITY_DECLARATION.md).
ahcorde marked this conversation as resolved.
Show resolved Hide resolved

#### `rcpputils`

The `rcpputils` package provides an API which contains common utilities and data structures needed when programming in C++.

It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros2/rcpputils/blob/master/QUALITY_DECLARATION.md).

### Direct Runtime non-ROS Dependency [5.iii]

- libconsole-bridge-dev
#### `libconsole-bridge-dev`

The [libconsole-bridge-dev](https://github.com/ros/console_bridge/) is a ROS-independent, pure CMake (i.e. non-catkin and non-rosbuild package) that provides logging calls that mirror those found in rosconsole, but for applications that are not necessarily using ROS.

It has one "buildtool" dependency, which do not affect the resulting quality of the package, because they do not contribute to the public library API.
It also has several test dependencies, which do not affect the resulting quality of the package, because they are only used to build and run the test code.
It is **Quality Level 4**, see its [Quality Declaration document](https://github.com/ros/console_bridge/blob/master/QUALITY_DECLARATION.md).

## Platform Support [6]

Expand Down Expand Up @@ -171,10 +186,10 @@ The chart below compares the requirements in the REP-2004 with the current state
|2.ii| Contributor origin (DCO, CLA, etc) | ✓|
|2.iii| Peer review policy | ✓ |
|2.iv| CI policy for change requests | ✓ |
|2.v| Documentation policy for change requests | |
|2.v| Documentation policy for change requests | |
|3| **Documentation** | --- |
|3.i| Per feature documentation | ✓ |
|3.ii| Per public API item documentation | |
|3.ii| Per public API item documentation | x |
|3.iii| Declared License(s) | ✓ |
|3.iv| Copyright in source files| ✓ |
|3.v.a| Quality declaration linked to README | ✓ |
Expand All @@ -195,4 +210,4 @@ The chart below compares the requirements in the REP-2004 with the current state
|6| Platform support | --- |
|6.i| Support targets Tier1 ROS platforms| ✓ |
|7| Security | --- |
|7.i| Vulnerability Disclosure Policy | ? |
|7.i| Vulnerability Disclosure Policy | x |