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

Patch 8 - check but is redundant? #8

Open
wants to merge 54 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5cc5dad
rmw_fastrtps_cpp report 2021 (#44)
IkerLuengo Oct 5, 2021
ed10fb7
Change ROS2 -> ROS 2 in the eProsima Humble report. (#60)
clalancette Oct 5, 2021
526a461
Remove trailing whitespace from eProsima report. (#61)
clalancette Oct 5, 2021
78a7049
In the eProsima report, change cycloneDDS -> Cyclone DDS (#62)
clalancette Oct 5, 2021
f8a7eef
Fix up image rendering in the eProsima response. (#63)
clalancette Oct 5, 2021
a5ef75d
Fix the links to the eProsima images. (#64)
clalancette Oct 5, 2021
3ecc957
Fix a number of very minor typos in the eProsima part of the report. …
clalancette Oct 5, 2021
4b919f5
The Humble report for Eclipse Cyclone DDS (#66)
clalancette Oct 7, 2021
e2edf23
Remove trailing whitespace from Cyclone DDS report.
clalancette Oct 6, 2021
2f61a6e
Remove width=50% from images in Cyclone DDS report.
clalancette Oct 6, 2021
18e2814
Get the report skeleton in place. (#68)
clalancette Oct 7, 2021
1504969
Fix cyclone typos and fix quality link (#69)
paudrow Oct 7, 2021
4a67e9c
Minor fixes to links in eProsima response. (#70)
clalancette Oct 8, 2021
7cea742
Try to fix the table formatting for REP-2004. (#71)
clalancette Oct 8, 2021
14c8052
Add in a discussion for the REP-2004 table. (#72)
clalancette Oct 8, 2021
57450b4
Rerun the objective measurements for Humble (#73)
clalancette Oct 8, 2021
d09ffe2
change link caption for Fast DDS response (#74)
IkerLuengo Oct 11, 2021
cb5ec42
Write large pieces of the Humble report.
clalancette Oct 8, 2021
b333231
Typos and formatting changes
paudrow Oct 12, 2021
1e7ecee
Exec summary + number sections
paudrow Oct 12, 2021
cd45b25
Add an Appendix and do some editing.
clalancette Oct 12, 2021
a6ec342
Updated dates on data to correct date, made nb easier to change date,…
kscottz Oct 12, 2021
2267687
Merge pull request #76 from osrf/humble-additions
kscottz Oct 12, 2021
39ff434
Early redacted data, will update later.
kscottz Oct 12, 2021
c369466
plots for new data.
kscottz Oct 12, 2021
6290e66
Merge pull request #77 from osrf/humble-additions
kscottz Oct 12, 2021
44fc7f7
A few more minor edits. (#78)
clalancette Oct 13, 2021
301bc85
Final Data
kscottz Oct 13, 2021
7fdb873
Last plot tweaks.
kscottz Oct 13, 2021
2f4c9cf
Rough plots.
kscottz Oct 13, 2021
3ce0db9
Merge pull request #80 from osrf/humble-additions
kscottz Oct 13, 2021
81dcf96
fixed typos and minor omissions (#79)
joespeed Oct 13, 2021
b7cc5d8
Adding the text to go with plots and quotes.
kscottz Oct 13, 2021
5194a66
Merge pull request #81 from osrf/humble-additions
kscottz Oct 13, 2021
bb548d9
Formatting fix.
kscottz Oct 13, 2021
eb8bde2
Merge pull request #82 from osrf/humble-additions
kscottz Oct 13, 2021
94907d9
Formatting test.
kscottz Oct 13, 2021
adcea34
Merge pull request #83 from osrf/humble-additions
kscottz Oct 13, 2021
795ec30
Proof reading, formatting, consistency.
kscottz Oct 13, 2021
9ba7f44
Merge pull request #84 from osrf/humble-additions
kscottz Oct 13, 2021
aba75d2
Uhg, open quote fix.
kscottz Oct 13, 2021
5375d50
Merge pull request #85 from osrf/humble-additions
kscottz Oct 13, 2021
bbc6314
Adding more quotes.
kscottz Oct 13, 2021
1a5e777
Merge pull request #86 from osrf/humble-additions
kscottz Oct 13, 2021
ef6e9d9
Fill in executive summary, Fast DDS to Fast RTPS
kscottz Oct 13, 2021
b73088c
Merge branch 'main' into humble-additions
kscottz Oct 13, 2021
3ca2132
Merge pull request #87 from osrf/humble-additions
kscottz Oct 13, 2021
8cea2dc
"manual and nightly performance testing"
joespeed Oct 14, 2021
f3230bc
Update README.md
joespeed Oct 14, 2021
cad6299
Update README.md
joespeed Oct 14, 2021
97eeaaa
Update README.md
joespeed Oct 14, 2021
2800974
Update README.md
joespeed Oct 14, 2021
d8a9a54
Update README.md
joespeed Oct 14, 2021
d5dd864
OR build farm nightly performance testing
joespeed Oct 14, 2021
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
Prev Previous commit
Next Next commit
Get the report skeleton in place. (osrf#68)
Also do the REP-2004 update.

Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
  • Loading branch information
clalancette authored Oct 7, 2021
commit 18e2814665355b5f2173d4d1504b64375e2edcbf
56 changes: 53 additions & 3 deletions humble/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,64 @@
# 2021 ROS Middleware Evaluation Report

## Default DDS provider template
### October 14, 2021

### Prepared by: Katherine Scott, Chris Lalancette, Audrow Nash

# Index

* [Introduction](#Introduction)
* [Executive Summary](#ExecutiveSummary)
* [Build Farm Performance Metrics](#BuildFarm)
* [REP-2004 Code Quality Metrics](#CodeQuality)
* [GitHub User Statistics](#GitHubStats)
* [User Survey Results](#Survey)
* [Appendix](APPENDIX.md)

# DDS provider template

On August 31, 2021, the providers of DDS implementations considered for the default DDS in ROS 2 Humble Hawksbill were provided with a set of questions to answer about their implementation.
The questionnaire is available [here](dds_provider_question_template.md).

Once responses from that questionnaire are received, a full report will be produced.

## DDS provider responses

- [rmw_fasrtps_cpp](eProsima-response.md)

- [2021 Eclipse Cyclone DDS ROS Middleware Evaluation Report with iceoryx and Zenoh](eclipse-cyclonedds-report.md)

# <a id="Introduction"></a> Introduction

# <a id="ExecutiveSummary"></a> Executive Summary

# <a id="BuildFarm"></a> Build Farm Performance Metrics

# <a id="CodeQuality"></a> REP-2004 Code Quality Metrics

## Overview and Description

Code quality is an important metric for project health.
ROS 2 has defined various levels of package quality in [REP-2004](https://ros.org/reps/rep-2004.html).
Declaring a package to be in one of those quality levels means that it meets all of the requirements for that particular quality level.
The quality level of each of the middlewares and their RMW implementation is summarized below.
For more details, the reader is encouraged to look at the corresponding source repository for each middleware or RMW, where the quality level is declared in a file named QUALITY_DECLARATION.md or similar.

## Results

| Package/Quality Metric | [Cyclone DDS](https://github.com/eclipse-cyclonedds/cyclonedds/blob/96a0374bdbb12a7d535dbc81092c3d87f2490ecb/CYCLONEDDS_QUALITY_DECLARATION.md) | [rmw_cyclonedds](https://github.com/ros2/rmw_cyclonedds/blob/2aa2cf527d079265195b2dca91bb9c82481be0c1/rmw_cyclonedds_cpp/QUALITY_DECLARATION.md) | [Fast RTPS](https://github.com/eProsima/Fast-DDS/blob/4a27fbbbeb08ad83ffa10422eeaa201017382905/QUALITY.md) | [rmw_fastrtps](https://github.com/ros2/rmw_fastrtps/blob/daeeb8c7c57eec3df0a82aaf91a1b4e94aa889e3/rmw_fastrtps_cpp/QUALITY_DECLARATION.md) |
| ---------------------- | ---------- | -------------- | -------- | ------------ |
| Current Quality Level | 2 | 4 | 1 | 2 |
| 1. Version Policy | 1. follows semver but major 0 is stable<br>2. current version is stable<br>3. `dds_` or `DDS_` symbols are public API, others may change<br>4. no major releases in stable allowed<br>5. no major releases in stable allowed<br>6. no major releases in stable allowed | 1. follows semver<br>2. current version < 1.0.0<br>3. 3. public API is in the rmw headers<br>4. no major releases in stable allowed<br>5. no major releases in stable allowed<br>6. no major releases in stable allowed | 1. follows semver<br>2. current version is stable<br>3. API documentation [available](https://fast-dds.docs.eprosima.com/en/latest/fastdds/api_reference/api_reference.html)<br>4. no major releases in stable allowed<br>5. only minor releases break ABI<br>6. N/A | 1. follows semver<br>2. current version is stable<br>3. public API is in the headers<br>4. no major releases in stable allowed<br>5. no major releases in stable allowed<br>6. no major releases in stable allowed |
| 2. Change control | 1. changes must be in PR<br>2. DCO required<br>3. one review for merge (except when no reviewers available)<br>4. CI required to pass<br>5. documentation required | 1. changes must be in PR<br>2. DCO required<br>3. at least one review required for merge<br>4. CI required to pass<br>5. documentation required | 1. changes must be in a PR<br>2. DCO required<br>3. at least one review required for merge<br>4. CI required to pass<br>5. documentation required | 1. changes must be in PR<br>2. DCO required<br>3. at least one review required for merge<br>4. CI required to pass<br>5. documentation required |
| 3. Documentation | 1. no high-level/concept documentation<br>2. API docs are embedded in the code<br>3. Eclipse Public License 2.0/Eclipse Distribution License 1.0<br>4. copyright statement included with the code | 1. features are documented via rmw API<br>2. public API docs in rmw, other API docs embedded in code<br>3. Apache 2.0 license<br>4. copyright statement included with the code | 1. features are documented<br>2. API reference is hosted at [readthedocs](https://fast-dds.docs.eprosima.com/en/latest/fastdds/api_reference/api_reference.html)<br>3. Apache 2.0 license<br>4. copyright statement included with the code | 1. some features are documented<br>2. API docs are embedded in the code<br>3. Apache 2.0 license<br>4. copyright statement included with the code |
| 4. Testing | 1. system tests cover features<br>2. tests cover all of the public API<br>3. line coverage should increase with changes<br>4. no performance tests<br>5. uses coverity for static analysis | 1. system tests cover features<br>2. system tests cover APIs<br>3. line coverage should keep or increase, but decreases are allowed if justified<br>4. No performance tests<br>5. uses standard ROS linters and tests | 1. simulation tests cover features<br>2. tests cover typical usage of public API<br>3. line coverage should keep or increase, but decreases are allowed if justified<br>4. automatic performance test on changes<br>5. uses linters, but only for new code | 1. system tests cover features<br>2. unit and system tests cover the API<br>3. line coverage should increase with changes, but decreases allowed with justification<br>4. no performance tests<br>5. uses standard ROS linters and tests |
| 5. Dependencies | 1. no ROS deps<br>2. no ROS deps<br>3. OpenSSL external dep | 1. all direct deps have Quality Declaration except for rosidl_typesupport_introspection_c{pp}<br>2. no optional direct runtime ROS deps<br>3. Eclipse Cyclone DDS claims to be at QL 2 | 1. no ROS deps<br>2. no ROS deps<br>3. libasio, libtinyxml2, Fast CDR, foonathan_memory, and OpenSSL* external deps | 1. all direct runtime ROS deps declare quality level<br>2. no optional direct runtime ROS deps<br>3. Fast CDR/Fast RTPS claim to be at QL 1 |
| 6. Platform | 1. supports all ROS 2 Tier 1 platforms | 1. supports all ROS 2 Tier 1 platforms | 1. supports all ROS 2 Tier 1 platforms | 1. supports all ROS 2 Tier 1 platforms |
| 7. Security | 1. conforms to [REP-2006](https://ros.org/reps/rep-2006.html) | 1. conforms to [REP-2006](https://ros.org/reps/rep-2006.html) | 1. [Vulnerability disclosure policy](https://github.com/eProsima/policies/blob/main/VULNERABILITY.md) | 1. Conforms to [REP-2006](https://ros.org/reps/rep-2006.html) |


\* OpenSSL dependency for Fast RTPS is optional, but used in ROS 2.

## Discussion

# <a id="GitHubStats"></a> GitHub User Statistics

# <a id="Survey"></a> User Survey Results