Skip to content

Commit b725b07

Browse files
Add a Humble release note about the include directory change. (#3703) (#3708)
That is, the fallout from ros2/ros2#1150 should be mentioned for people who are using IDEs with Humble. While we are in here, do some minor fixes to the formatting of the release notes. Signed-off-by: Chris Lalancette <[email protected]> (cherry picked from commit d0120d0) Co-authored-by: Chris Lalancette <[email protected]>
1 parent 5e749e6 commit b725b07

File tree

1 file changed

+39
-7
lines changed

1 file changed

+39
-7
lines changed

source/Releases/Release-Humble-Hawksbill.rst

Lines changed: 39 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,6 @@ Installation
4343

4444
`Install Humble Hawksbill <../../humble/Installation.html>`__
4545

46-
New features in this ROS 2 release
47-
----------------------------------
48-
49-
5046
Changes in Patch Release 1 (2022-11-23)
5147
---------------------------------------
5248

@@ -61,7 +57,7 @@ This behavior matches that of ROS 1's ``rostopic`` (http://wiki.ros.org/ROS/YAML
6157

6258
Related PR: `ros2/ros2cli#751 <https://github.com/ros2/ros2cli/pull/751>`_
6359

64-
Changes since the Galactic release
60+
New features in this ROS 2 release
6561
----------------------------------
6662

6763
ament_cmake_gen_version_h
@@ -316,8 +312,8 @@ New actions
316312

317313
* Related PRs: `ros2/launch_ros#260 <https://github.com/ros2/launch_ros/pull/260>`_ and `ros2/launch_ros#281 <https://github.com/ros2/launch_ros/pull/281>`_
318314

319-
SROS2 Security enclaves now support Certificate Revocation Lists
320-
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
315+
SROS2 Security enclaves support Certificate Revocation Lists
316+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
321317

322318
Certificate Revocation Lists (CRLs) are a concept where particular certificates can be revoked before their expiration.
323319
As of Humble, it is now possible to put a CRL in an SROS2 security enclave and have it be honored.
@@ -446,6 +442,42 @@ See `ros2/rviz#849 <https://github.com/ros2/rviz/pull/849>`__ for more informati
446442
Changes since the Galactic release
447443
----------------------------------
448444

445+
C++ headers are installed in a subdirectory
446+
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
447+
448+
In ROS 2 releases prior to Humble, C++ headers for all packages were installed into a single include directory.
449+
For instance, in Galactic, the directory structure looks like this (reduced for brevity):
450+
451+
.. code::
452+
453+
/opt/ros/galactic/include/
454+
├── rcl
455+
│   ├── node.h
456+
├── rclcpp
457+
│   ├── node.hpp
458+
459+
460+
This structure can cause serious problems when trying to use overlays.
461+
That is, it is very possible to get the wrong set of header files due to include directory order.
462+
See https://colcon.readthedocs.io/en/released/user/overriding-packages.html for a detailed explanation of the problems.
463+
464+
To help combat this, in Humble (and in all ROS 2 releases going forward), the directory structure has changed:
465+
466+
.. code::
467+
468+
/opt/ros/humble/include
469+
├── rcl
470+
│   └── rcl
471+
│   ├── node.h
472+
├── rclcpp
473+
│   └── rclcpp
474+
│   ├── node.hpp
475+
476+
Note that downstream packages that use these headers do *not* have to change; using ``#include <rclcpp/node.hpp>`` works as it always did before.
477+
However, when using IDEs that are looking for include directories, it may be necessary to add the individual include directories to the search path.
478+
479+
See https://github.com/ros2/ros2/issues/1150 for more information, including the reasoning behind this change.
480+
449481
common_interfaces
450482
^^^^^^^^^^^^^^^^^
451483

0 commit comments

Comments
 (0)