Skip to content

25.0.18

Choose a tag to compare

@github-actions github-actions released this 30 Apr 05:27

Description

Abstract

Add Jazzy (ROS 2 / Ubuntu 24.04) support to the Dockerfile and the Docker.yaml CI workflow, and silence an overloaded-virtual build error that surfaces only on ARM64 in traffic_simulator.

Background

The Docker image was previously built only for Humble (Ubuntu 22.04, amd64/arm64). Jazzy is the next supported ROS 2 distribution for Autoware, and we need parity in the published images so downstream users can pull jazzy-* tags.

Details

Dockerfile

  • Added ENV PIP_BREAK_SYSTEM_PACKAGES=1 to both stages so pip install works on Ubuntu 24.04's PEP 668-managed Python.
  • Added -DBUILD_TESTING=OFF to the colcon invocation so the development image does not pull/build test-only dependencies.
  • Runtime stage refactor: dropped the hand-maintained apt package list (which hard-coded humble-prefixed package names and Ubuntu 22.04 library) in favor of:
    • copying src/ from the development stage early,
    • running rosdep install --dependency-types=exec against the workspace's package.xml files to resolve runtime deps for whichever ROS_DISTRO is being built,
    • explicitly installing ros-${ROS_DISTRO}-rmw-cyclonedds-cpp and setting RMW_IMPLEMENTATION=rmw_cyclonedds_cpp as the default RMW.
  • Note: vcs import is intentionally pinned to dependency_humble.repos for now — the same external repo set is used for both distros until a Jazzy-specific repos file is needed.

.github/workflows/Docker.yaml

  • Added ubuntu-24.04 (amd64) and ubuntu-24.04-arm (arm64) matrix entries with rosdistro: jazzy and image_tag: jazzy.
  • Added matching jazzy entries (desktop, -devel, -runtime) to the merge job so the multi-arch manifests get pushed under the jazzy-* tags.

simulation/traffic_simulator/CMakeLists.txt

  • Extended the existing ARM64-only compile-options block with -Wno-error=overloaded-virtual so the warning no longer fails the build on aarch64 / arm64. The warning itself is left enabled; only its promotion to an error is suppressed.

Destructive Changes

None.

Known Limitations

  • vcs import still reads dependency_humble.repos even when building Jazzy. If a dependency in that file is incompatible with Jazzy, the development stage will fail to build. A follow-up should introduce dependency_jazzy.repos (or confirm the file is distro-agnostic and rename it).
  • The -Wno-error=overloaded-virtual suppression is a workaround. The underlying overload(s) hidden by a base-class virtual should be audited and either renamed, marked using Base::foo;, or explicitly overridden so the flag can be removed. An issue should be opened to track this.
  • The runtime image's footprint now depends on whatever rosdep resolves for --dependency-types=exec; if a package's package.xml understates its runtime deps, the resulting image may be missing libraries that the previous hand-curated list happened to include.

Related Issues