ROS 2 Lyrical vs Jazzy: Which Distribution?
ROS 2 Lyrical vs Jazzy is a support, operating system and dependency decision. Compare EOL dates, Tier 1 platforms, Gazebo pairings and migration costs.
ROS 2 Lyrical vs Jazzy comes down to the operating system, dependency set and support window you can validate. Start a new robot on Lyrical when Ubuntu 26.04 is acceptable and every required package has passed your tests. Stay with or choose Jazzy when the robot must run Ubuntu 24.04 or Gazebo Harmonic, or when a required driver has no tested Lyrical release.
Both are long term support releases. Lyrical reached general availability on May 22, 2026, and its support runs until May 2031. Jazzy arrived on May 23, 2024, and its support runs until May 2029.[1]
Which ROS 2 distribution should a new robot use?
Use Lyrical for a greenfield robot if the team can standardize on Ubuntu 26.04 and has verified its complete dependency set. It offers the later support date, May 2031, and makes Ubuntu 26.04 on amd64 and arm64 a Tier 1 target.[1]
Jazzy remains the better choice when the robot must run Ubuntu 24.04 as a Tier 1 platform. Jazzy provides Tier 1 support for Ubuntu 24.04 on amd64 and arm64. Lyrical lists Ubuntu 24.04 as Tier 3, requires a source build there and gives that platform an earlier support end date of June 1, 2029.[3]
That operating system split matters more than feature shopping. ROS defines a platform by its operating system, architecture and middleware layer. The project runs frequent unit tests, CI jobs, nightly jobs, package builds and speed tests on Tier 1. Tier 3 rests on community reports, and the core team does not run its test suite there.[1]
Our default is therefore conditional: new product, new base image and clean dependency results favor Lyrical. An established Ubuntu 24.04 fleet favors Jazzy until a planned operating system move makes sense.
| Decision factor | ROS 2 Lyrical Luth | ROS 2 Jazzy Jalisco | Buying or engineering consequence |
|---|---|---|---|
| Release and support | General availability May 22, 2026; support ends May 2031. | General availability May 23, 2024; support ends May 2029. | Lyrical has the later upstream support date. Your own product support can still end earlier. |
| Tier 1 Ubuntu | Ubuntu 26.04 on amd64 and arm64. | Ubuntu 24.04 on amd64 and arm64. | Match the distribution to the robot image instead of forcing a lower support tier. |
| Ubuntu 24.04 under this distribution | Tier 3, source build required, supported until June 1, 2029. | Tier 1 with distribution packages and archives. | Jazzy is the documented fit when 24.04 must stay Tier 1. |
| Windows target | Windows 11 with Visual Studio 2022, amd64, Tier 1. | Windows 10 with Visual Studio 2019, amd64, Tier 1. | Budget for the toolchain change before moving a Windows control or test station. |
| Minimum C++ standard | C++20. | C++17. | Build the complete workspace with the target compiler and fix warnings or removed APIs before migration. |
| Default Gazebo pairing | Gazebo Jetty. | Gazebo Harmonic. | Moving distributions can also move the simulator and its vendor packages. |
When should an existing Jazzy robot stay on Jazzy?
Keep a working Jazzy robot on Jazzy when its May 2029 support window covers the planned service period and Lyrical supplies no feature the product needs. Moving releases can touch the operating system, compiler, Python environment, middleware and simulator. Moving only for a newer label creates work without helping the product.
Jazzy is also the direct choice for Gazebo Harmonic. Gazebo's compatibility table marks Jazzy with Harmonic as the recommended combination. It marks Lyrical with Jetty as recommended and Lyrical with Harmonic as possible but requiring caution.[5]
Do not turn that caution symbol into a blanket claim that the combination will fail. Gazebo says non-default pairings may require unofficial binary packages or a source build of `ros_gz`, and may require source changes. The exact burden depends on the packages in your workspace.[5]
What does Lyrical add that may justify a move?
Lyrical changes the base platform and raises the minimum C++ standard to C++20. Its release notes also describe a Callback Group Events executor for `rclcpp` that supports multiple ROS time sources and multiple threads. The project reports 10% to 15% lower CPU use than its single and multithreaded executors.[2]
Treat that figure as a reason to benchmark, not a promise for your robot. The release note does not establish how the executor will perform with your callbacks, sensors, middleware settings or hardware. Record CPU use, callback latency and missed deadlines on a representative workload before using it to argue for a move.
Lyrical also changes the preferred Gazebo release to Jetty. If the release test uses a simulator, move its world, system plugins and bridge packages inside the same test plan. Gazebo warns that non-default ROS and Gazebo pairs can require extra packaging or source work.[3] Teams standing up simulation-based policy evaluation alongside that move can see our Isaac Lab Arena 0.3 adoption guide for a related tooling pilot.
A newer ROS 2 release earns its place only when the complete robot image passes the same workload and recovery tests as the version it replaces.
How should a team test package readiness?
Create one manifest for the robot, simulator and developer tools. List each ROS package, apt or RPM package, Python dependency, middleware layer, compiler and vendor SDK. Then build that manifest from an empty image for both candidates.
Run the same test suite on both images. At minimum, exercise startup, shutdown, loss and return of a sensor, network interruption, bag recording and playback, and any timing target that can stop the task. We recommend these tests; neither ROS release promises the result.
Check architecture as well as operating system. Lyrical lists Ubuntu 26.04 on amd64 and arm64 as Tier 1. Jazzy gives that status to Ubuntu 24.04 on the same two architectures. Both list arm32 at Tier 3.[3] Arm64 is the common target for on-robot compute such as NVIDIA Jetson; our Jetson Thor vs AGX Orin guide covers choosing that hardware.
Do not infer package support from core platform support. A Tier 1 operating system does not prove that a camera driver, navigation plugin or proprietary SDK has a branch for that ROS release. Obtain a versioned answer from the maintainer or supplier, then reproduce it in your build.
What should go into the migration decision record?
Keep the decision small enough to audit. Record the host operating system and architecture, ROS release, RMW layer, Gazebo release, compiler, Python version, package manifest and image digest. Add the upstream EOL date and your own service end date. They are different commitments.
For an existing Jazzy robot, capture what requires Lyrical. A required Lyrical feature, Ubuntu 26.04 hardware enablement or a service horizon beyond May 2029 can open the case. A passing build is not enough. The candidate image should also pass the robot's task, timing, update and recovery tests.
For a new robot, reverse the burden. Start with Lyrical. Choose Jazzy instead when the robot needs Ubuntu 24.04 Tier 1 support, Gazebo Harmonic or a package available only in the older release. Preserve the package evidence that caused the choice.
The result is less glamorous than a feature checklist, which is useful. Control the ROS 2 release beside the operating system and hardware image. Do not leave it to a last-minute install command.
ROS 2 Lyrical vs Jazzy questions
Is ROS 2 Lyrical an LTS release?
Yes. The ROS 2 project calls Lyrical Luth a long term support release and states that support runs until May 2031.
Is ROS 2 Jazzy still supported?
Yes. The ROS 2 release table lists Jazzy support through May 2029.
Can ROS 2 Lyrical run on Ubuntu 24.04?
The Lyrical platform page lists Ubuntu 24.04 as Tier 3, says Tier 3 users must build from source and gives the platform an early EOL date of June 1, 2029. Ubuntu 26.04 is Lyrical's Tier 1 Ubuntu target.
Which Gazebo release goes with each ROS 2 release?
The recommended pairings are Gazebo Jetty for Lyrical and Gazebo Harmonic for Jazzy.
Can Jazzy and Lyrical nodes share one ROS 2 graph?
ROS 2 does not promise that nodes from different releases can communicate correctly. Treat a mixed graph as a separate engineering problem, not as a supported way to move versions.
Sources
- https://docs.ros.org/en/rolling/Releases.html
- https://raw.githubusercontent.com/ros2/ros2_documentation/lyrical/source/Releases/Release-Lyrical-Luth.rst
- https://raw.githubusercontent.com/ros2/ros2_documentation/lyrical/source/Releases/lyrical/supported-platforms.rst
- https://raw.githubusercontent.com/ros2/ros2_documentation/jazzy/source/Releases/Release-Jazzy-Jalisco.rst
- https://gazebosim.org/docs/latest/ros_installation/