From 68c5c42ccc35032bdc943564c9d59dcfe4bdf689 Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Sun, 17 May 2026 15:41:41 +0200 Subject: [PATCH 1/4] add lyrical to CI jobs and rcl_bindings.rs --- .github/workflows/generate-bindings.yml | 5 +++++ .github/workflows/rust-minimal.yml | 4 ++++ .github/workflows/rust-stable.yml | 4 ++++ rclrs/src/rcl_bindings.rs | 7 +++++++ 4 files changed, 20 insertions(+) diff --git a/.github/workflows/generate-bindings.yml b/.github/workflows/generate-bindings.yml index 2969244a..7e37a49f 100644 --- a/.github/workflows/generate-bindings.yml +++ b/.github/workflows/generate-bindings.yml @@ -19,6 +19,7 @@ jobs: - humble - jazzy - kilted + - lyrical - rolling include: # Humble Hawksbill (May 2022 - May 2027) @@ -33,6 +34,10 @@ jobs: - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-kilted-ros-base-latest ros_distribution: kilted ros_version: 2 + # Lyrical Luth (May 2026 - May 2031) + - docker_image: rostooling/setup-ros-docker:ubuntu-resolute-ros-lyrical-ros-base-latest + ros_distribution: lyrical + ros_version: 2 # Rolling Ridley (June 2020 - Present) - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-rolling-ros-base-latest ros_distribution: rolling diff --git a/.github/workflows/rust-minimal.yml b/.github/workflows/rust-minimal.yml index 0caf6d1f..b3dc5135 100644 --- a/.github/workflows/rust-minimal.yml +++ b/.github/workflows/rust-minimal.yml @@ -36,6 +36,10 @@ jobs: - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-kilted-ros-base-latest ros_distribution: kilted ros_version: 2 + # Lyrical Luth (May 2026 - May 2031) + - docker_image: rostooling/setup-ros-docker:ubuntu-resolute-ros-lyrical-ros-base-latest + ros_distribution: lyrical + ros_version: 2 # Rolling Ridley (June 2020 - Present) - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-rolling-ros-base-latest ros_distribution: rolling diff --git a/.github/workflows/rust-stable.yml b/.github/workflows/rust-stable.yml index 981183a7..b864c8d4 100644 --- a/.github/workflows/rust-stable.yml +++ b/.github/workflows/rust-stable.yml @@ -36,6 +36,10 @@ jobs: - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-kilted-ros-base-latest ros_distribution: kilted ros_version: 2 + # Lyrical Luth (May 2026 - May 2031) + - docker_image: rostooling/setup-ros-docker:ubuntu-resolute-ros-lyrical-ros-base-latest + ros_distribution: lyrical + ros_version: 2 # Rolling Ridley (June 2020 - Present) - docker_image: rostooling/setup-ros-docker:ubuntu-noble-ros-rolling-ros-base-latest ros_distribution: rolling diff --git a/rclrs/src/rcl_bindings.rs b/rclrs/src/rcl_bindings.rs index cf1743c0..8d557d81 100644 --- a/rclrs/src/rcl_bindings.rs +++ b/rclrs/src/rcl_bindings.rs @@ -33,6 +33,13 @@ cfg_if::cfg_if! { "/src/rcl_bindings_generated_kilted.rs", ) ); + } else if #[cfg(ros_distro="lyrical")] { + include!( + concat!( + env!("CARGO_MANIFEST_DIR"), + "/src/rcl_bindings_generated_lyrical.rs", + ) + ); } else if #[cfg(ros_distro="rolling")] { include!( concat!( From e86c3e7ac2037ff61f232fe7ae58cbd39bb9294e Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Sun, 17 May 2026 15:49:28 +0200 Subject: [PATCH 2/4] ci: remove EXTERNALLY-MANAGED file for python3.14 used by lyrical/resolute --- .github/workflows/rust-minimal.yml | 1 + .github/workflows/rust-stable.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/rust-minimal.yml b/.github/workflows/rust-minimal.yml index b3dc5135..8081015b 100644 --- a/.github/workflows/rust-minimal.yml +++ b/.github/workflows/rust-minimal.yml @@ -76,6 +76,7 @@ jobs: - name: Install colcon-cargo and colcon-ros-cargo run: | sudo rm -f /usr/lib/python3.12/EXTERNALLY-MANAGED + sudo rm -f /usr/lib/python3.14/EXTERNALLY-MANAGED sudo pip3 install git+https://github.com/colcon/colcon-cargo.git sudo pip3 install git+https://github.com/colcon/colcon-ros-cargo.git diff --git a/.github/workflows/rust-stable.yml b/.github/workflows/rust-stable.yml index b864c8d4..908e8ffe 100644 --- a/.github/workflows/rust-stable.yml +++ b/.github/workflows/rust-stable.yml @@ -76,6 +76,7 @@ jobs: - name: Install colcon-cargo and colcon-ros-cargo run: | sudo rm -f /usr/lib/python3.12/EXTERNALLY-MANAGED + sudo rm -f /usr/lib/python3.14/EXTERNALLY-MANAGED sudo pip3 install git+https://github.com/colcon/colcon-cargo.git sudo pip3 install git+https://github.com/colcon/colcon-ros-cargo.git From 89f6ae3f31fc90a61478f8e542218d8586d1eab9 Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Sun, 17 May 2026 16:00:32 +0200 Subject: [PATCH 3/4] add ros2_rust_lyrical.repos from current rolling.repos --- ros2_rust_lyrical.repos | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 ros2_rust_lyrical.repos diff --git a/ros2_rust_lyrical.repos b/ros2_rust_lyrical.repos new file mode 100644 index 00000000..bb78d5ec --- /dev/null +++ b/ros2_rust_lyrical.repos @@ -0,0 +1,37 @@ +repositories: + ros2/common_interfaces: + type: git + url: https://github.com/ros2/common_interfaces.git + version: lyrical + ros2/example_interfaces: + type: git + url: https://github.com/ros2/example_interfaces.git + version: lyrical + ros2/rcl_interfaces: + type: git + url: https://github.com/ros2/rcl_interfaces.git + version: lyrical + ros2/test_interface_files: + type: git + url: https://github.com/ros2/test_interface_files.git + version: lyrical + ros2/rosidl_core: + type: git + url: https://github.com/ros2/rosidl_core.git + version: lyrical + ros2/rosidl_defaults: + type: git + url: https://github.com/ros2/rosidl_defaults.git + version: lyrical + ros2/unique_identifier_msgs: + type: git + url: https://github.com/ros2/unique_identifier_msgs.git + version: lyrical + ros2-rust/rosidl_rust: + type: git + url: https://github.com/ros2-rust/rosidl_rust.git + version: main + ros2-rust/rosidl_runtime_rs: + type: git + url: https://github.com/ros2-rust/rosidl_runtime_rs.git + version: main From f4e32864e4acc15397f0479a055b339839ddc957 Mon Sep 17 00:00:00 2001 From: Jonas Otto Date: Sun, 17 May 2026 16:14:15 +0200 Subject: [PATCH 4/4] add lyrical to build.rs KNOWN_DISTROS --- rclrs/build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rclrs/build.rs b/rclrs/build.rs index ff084941..7dcf489b 100644 --- a/rclrs/build.rs +++ b/rclrs/build.rs @@ -2,7 +2,7 @@ use ament_rs::search_paths::get_search_paths; use std::{env, path::PathBuf}; const ROS_DISTRO: &str = "ROS_DISTRO"; -const KNOWN_DISTROS: &[&str] = &["humble", "jazzy", "kilted", "rolling"]; +const KNOWN_DISTROS: &[&str] = &["humble", "jazzy", "kilted", "lyrical", "rolling"]; fn get_ros_distro() -> String { env::var(ROS_DISTRO)