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

Add Humble to REP 2000 #326

Merged
merged 7 commits into from
Nov 18, 2021
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
118 changes: 116 additions & 2 deletions rep-2000.rst
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
REP: 2000
Title: ROS 2 Releases and Target Platforms
Author: Mikael Arguedas <mikael@openrobotics.org>, Steven! Ragnarok <steven@openrobotics.org>, Dirk Thomas <dthomas@openrobotics.org>
Author: Mikael Arguedas <mikael@openrobotics.org>, Steven! Ragnarok <steven@openrobotics.org>, Dirk Thomas <dthomas@openrobotics.org>, Audrow Nash <audrow@openrobotics.org>
Status: Active
Type: Informational
Content-Type: text/x-rst
Created: 10-Apr-2018, 24-Apr-2018, 21-May-2018, 10-Dec-2018, 20-May-2019, 21-May-2019, 29-Aug-2019, 25-Feb-2020
Created: 10-Apr-2018, 24-Apr-2018, 21-May-2018, 10-Dec-2018, 20-May-2019, 21-May-2019, 29-Aug-2019, 25-Feb-2020, 18-Nov-2021


Abstract
Expand Down Expand Up @@ -823,6 +823,120 @@ Package manager use for dependencies:
- OpenEmbedded: opkg


Build System Support:

- ament_cmake
- cmake
- setuptools

Humble Hawksbill (May 2022 - May 2027)
--------------------------------------

.. note::

This section is subject to change until the `Humble freeze on April 4, 2022 <https://docs.ros.org/en/rolling/Releases/Release-Humble-Hawksbill.html#release-timeline>`_.

Targeted platforms:

+--------------+------------------+---------------+------------------+------------+-----------------+----------------+
| Architecture | Ubuntu Jammy | Windows 10 | RHEL 8 | macOS | Debian Bullseye | OpenEmbedded / |
| | (22.04) | (VS2019) | | | (11) | webOS OSE |
+==============+==================+===============+==================+============+=================+================+
| amd64 | Tier 1 [d][a][s] | Tier 1 [a][s] | Tier 2 [d][a][s] | Tier 3 [s] | Tier 3 [s] | |
+--------------+------------------+---------------+------------------+------------+-----------------+----------------+
| arm64 | Tier 1 [d][a][s] | | | | Tier 3 [s] | Tier 3 [s] |
+--------------+------------------+---------------+------------------+------------+-----------------+----------------+
| arm32 | Tier 3 [s] | | | | Tier 3 [s] | Tier 3 [s] |
+--------------+------------------+---------------+------------------+------------+-----------------+----------------+

The following indicators show what delivery mechanisms are available for each platform.

" [d] " Distribution-specific (Debian, RPM, etc.) packages will be provided for this platform for packages submitted to the rosdistro.

" [a] " Binary releases are provided as a single archive per platform containing all packages in the Galactic ROS 2 repos file [10]_.

" [s] " Compilation from source.

Middleware Implementation Support:

+--------------------------+---------------------+---------------+----------------------------+--------------------------------+
| Middleware Library | Middleware Provider | Support Level | Platforms | Architectures |
+==========================+=====================+===============+============================+================================+
| rmw_cyclonedds_cpp | Eclipse Cyclone DDS | Tier 1 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+----------------------------+--------------------------------+
| rmw_fastrtps_cpp | eProsima Fast-DDS | Tier 1 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+----------------------------+--------------------------------+
| rmw_connextdds | RTI Connext | Tier 1 | Ubuntu, Windows, and macOS | All Architectures except arm64 |
+--------------------------+---------------------+---------------+----------------------------+--------------------------------+
| rmw_fastrtps_dynamic_cpp | eProsima Fast-DDS | Tier 2 | All Platforms | All Architectures |
+--------------------------+---------------------+---------------+----------------------------+--------------------------------+

Middleware implementation support is dependent upon the platform support tier.
For example a Tier 1 middleware implementation on a Tier 2 platform can only receive Tier 2 support.

Minimum language requirements:

- C++17
Copy link
Contributor

Choose a reason for hiding this comment

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

Is there any reason not to target c++20?

Copy link
Contributor

Choose a reason for hiding this comment

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

Is there any reason not to target c++20?

There are a few reasons we don't think we are going to do this for Humble:

  1. Every time we've switched C++ versions, it has taken some non-trivial amount of work to keep things working without warnings. Someone would have to step up to do that work.
  2. All of our Tier 1 platforms probably support C++20 well, but not all of the Tier 2 and Tier 3 ones do.
  3. Part of the ROS 2 community deals with safety certification, things like MISRA. Since those standards tend to lag behind the relevant standards, switching to a new C++ version too early can leave those users behind.

- Python 3.8


Dependency Requirements:

+-------------+---------------------------------+-------------------------------------------------------------------+
| | Required Support | Recommended Support |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Package | Ubuntu Jammy | Windows 10** | RHEL 8 | macOS** | Debian Bullseye | OpenEmbedded** |
+=============+================+================+==========+===============+==================+=====================+
| CMake | 3.21.3 | 3.22.0 | 3.18.2 | 3.14.4 | 3.18.4 | 3.16.1 / 3.12.2*** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| EmPY | 3.3.4 | 3.3.2 |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Gazebo | 11.x.x* | N/A | N/A | 11.x.x | 11.x.x* | N/A |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Ignition | Fortress* | N/A | N/A | Fortress* | Fortress* | N/A |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Ogre | 1.10* | N/A |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| OpenCV | 4.5.4 | 4.5.4 | 3.4.6 | 4.2.0 | 4.5.1 | 4.1.0 / 3.2.0*** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| OpenSSL | 1.1.1l | 1.1.1l | 1.1.1g | 1.1.1f | 1.1.1i | 1.1.1d / 1.1.1b*** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Python | 3.10.0 | 3.8.3 | 3.6.8 | 3.8.2 | 3.9.1 | 3.8.2 / 3.7.5*** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Qt | 5.15.2 | 5.12.10 | 5.12.5 | 5.12.3 | 5.15.2 | 5.14.1 / 5.12.5*** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| | **Linux only** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| PCL | 1.12.0 | N/A | 1.12.0 | N/A | 1.11.1 | 1.10.0 |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| **RMW DDS Middleware Providers** |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Cyclone DDS | 0.8.x (Réplique) |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Fast-DDS | 2.4.x |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+
| Connext DDS | 5.3.1 | N/A | 5.3.1 | N/A |
+-------------+----------------+----------------+----------+---------------+------------------+---------------------+

" * " means that this is not the upstream version (available on the official Operating System repositories) but a package distributed by OSRF or the community (package built and distributed on custom repositories).

" ** " means that the dependency may see multiple version changes, because the dependency uses a package manager that continually updates the dependency without a stable API.

" *** " webOS OSE provides this different version.

This document only captures the version at the first release of a ROS distribution and will not be updated as the dependencies move forward.
These versions are thus a low watermark.


Package manager use for dependencies:

- Ubuntu, Debian: apt
- Windows: Chocolatey, pip
- macOS: Homebrew, pip
- RHEL: dnf
- OpenEmbedded: opkg


Build System Support:

- ament_cmake
Expand Down