Skip to content

ci: swap Rolling for Lyrical Luth (Ubuntu 26.04) across matrix and docs#405

Open
bburda wants to merge 3 commits into
mainfrom
feat/ros2-lyrical-luth
Open

ci: swap Rolling for Lyrical Luth (Ubuntu 26.04) across matrix and docs#405
bburda wants to merge 3 commits into
mainfrom
feat/ros2-lyrical-luth

Conversation

@bburda
Copy link
Copy Markdown
Collaborator

@bburda bburda commented May 26, 2026

Pull Request

Summary

Swap our Rolling CI matrix entry for the freshly-released Lyrical Luth LTS (May 2026, Ubuntu 26.04 Resolute Raccoon, supported until May 2031). Test against a stable LTS instead of a moving target. Jazzy and Humble entries unchanged.

The change spans CI workflows, the multi-distro CMake compat module, all user-facing docs, and source comments that name a specific distro for historical bug context.


Issue


Type

  • Bug fix
  • New feature or tests
  • Breaking change
  • Documentation only

Testing

  • CI matrix (this PR) - Jazzy/Humble keep passing as before; Lyrical entry runs end-to-end on ubuntu:resolute + ros-tooling/setup-ros@v0.7 (the floating tag resolves to v0.7.18 which added Lyrical in v0.7.16). Watch the new build-and-test (lyrical, ubuntu:resolute) and Docker Publish (lyrical) jobs.
  • External dependencies verified before commit:
    • ubuntu:resolute Docker tag exists on Docker Hub
    • ros:lyrical-ros-base Docker tag exists
    • packages.ros.org/ros2/ubuntu/dists/resolute/ exists
    • ros-lyrical-rclcpp = 32.0.0 (compat module's >= 21 check still passes)
    • ros-lyrical-rosbag2-storage = 0.33.3 (>= 0.22, no old-timestamp shim)
    • libcpp-httplib-dev on Resolute = 0.26 (pkg-config branch succeeds)
    • ament_target_dependencies removed in ament_cmake 2.8.5+ (Lyrical ships 2.8.7) - runtime fallback in medkit_target_dependencies takes the explicit-targets path
  • Local build not possible - the worktree is on Ubuntu Noble (Jazzy host); the Lyrical apt repo isn't configured locally. CI is the verification surface for this change.

Checklist

  • Breaking changes are clearly described (Rolling is removed from CI - users who depended on the ros2_medkit-rolling:latest Docker tag should switch to ros2_medkit-lyrical:latest; the old tag stops receiving updates after this lands)
  • Tests were added or updated if needed (no test changes - comment-only edits and CI matrix swap)
  • Docs were updated if needed (README, CONTRIBUTING, QUALITY_DECLARATION, installation, troubleshooting, tutorials, copilot-instructions, cmake/gateway design docs all updated for the new distro + correct Ubuntu codename pairings)

Notes for reviewers

  • C++ comments that originally said "on Rolling" are now phrased "on Lyrical (originally observed on Rolling)" or "Rolling/Lyrical" - preserves the historical attribution from issue Rewrite NativeTopicSampler to subscription-pool design #375 without erasing it.
  • The --skip-keys ament_cmake_clang_format ament_cmake_clang_tidy rationale was reworded across ci.yml + opcua-plugin.yml + 8 CMakeLists.txt files: the previous comments claimed the keys "were not registered" on certain distros, but verification against rosdistro shows both keys are registered on Humble + Lyrical. Honest rationale is now "linters only run in the Jazzy quality job, defensive against transient binary-deb gaps on newly-released distros".
  • QUALITY_DECLARATION.md no longer claims Lyrical is Tier 1 per REP-2000 - REP-2000 hasn't been updated to list Lyrical yet.

ROS 2 Lyrical Luth is the new LTS released May 2026, supported until May
2031, targeting Ubuntu 26.04 Resolute Raccoon (Python 3.14, gcc 15,
rclcpp 32). Drop the Rolling matrix entry in favour of Lyrical so all
three tested distros are LTS.

CI matrix: rolling/noble -> lyrical/resolute in ci.yml, docker-publish.yml,
opcua-plugin.yml. Jazzy/noble and Humble/jammy entries unchanged.

ROS2MedkitCompat.cmake docstrings extended to cover Lyrical (rclcpp 32+,
yaml_cpp_vendor target export, ament_target_dependencies removal in
ament_cmake 2.8.5+). Runtime detection already handles the new distro;
no logic change needed.

Docs (README, CONTRIBUTING, QUALITY_DECLARATION, installation,
troubleshooting, tutorials, copilot-instructions, cmake/gateway design
docs) updated with correct Ubuntu codename pairings (Resolute=26.04,
Noble=24.04, Jammy=22.04).

C++ comments and source comments swapped Rolling -> Lyrical where the
behaviour carries forward; historical attribution preserved as
"on Lyrical (originally observed on Rolling)" or "Rolling/Lyrical"
where the bug was first reproduced on Rolling. snapshot_capture.cpp
C++20 aggregate-init comment updated for gcc 15 (Lyrical).

closes #404
Copilot AI review requested due to automatic review settings May 26, 2026 11:47
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@bburda bburda self-assigned this May 26, 2026
@bburda bburda requested a review from mfaferek93 May 26, 2026 14:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add ROS 2 Lyrical Luth (Ubuntu 26.04) support and remove Rolling

2 participants