Build ROS 2 Lyrical with Bazel: new ROS Central Registry release and a call for a working group

Hi everyone,

@Andrew_Symington shared some exciting news on Zulip that deserves a wider audience: a new release of the ROS Central Registry (RCR), lyrical.2026-10-05.rcr.0, is available at https://bazel.ros.org.

The RCR is a community Bazel build for ROS, from Lyrical onward. It’s designed to complement colcon, pixi and other build tools, not replace them. It’s still a proof of concept, and community adoption and involvement will decide its future.

Why Bazel

As teams and projects grow, there are good reasons to consider Bazel for build orchestration. Andrew covers them in the ROSCon 2026 talk. Several open-source Bazel rule sets for ROS already exist, and some companies maintain their own private ones. The RCR is an effort to consolidate this work.

It uses Bazel modules for federation, and hermetic C++, Python and Rust toolchains for determinism.

What’s in this release

  • Packages: a lot of rosdistro is working, including message pipelines, nodes, components, launch, rviz2, MoveIt, Nav2 and Gazebo
  • Platforms: Linux (aarch64 and x86_64) and macOS (aarch64)
  • GUIs: Qt 6 built from source
  • Build cache: Intrinsic provides a read-only GCS-backed cache, which CI warms on every commit to main, to keep builds fast by default. If you’d rather build everything locally, edit .bazelrc before building.

Try it

Get involved

There are likely still bugs, and patching, rollup and release tooling is in place to fix them. To contribute a fix, read the docs in the ros-central-registry repo, or point your agentic coding tool at AGENTS.md and the .agent/skills folder. They explain how to provision a workspace, vendor a package, fix the source and roll up a patch. CI checks that no breaking changes are introduced.

Andrew intends to start a working group to coordinate developers and maintainers. If you’re interested in joining, send @Andrew_Symington a DM to be added to the list.

This work builds on a lot of previous effort, notably by the Bazel team and by Milan Vukov through rules_ros2. Andrew specifically recognizes Milan’s design for the IDL aspects that traverse message dependency chains to generate language bindings, one of the hardest parts to get right.

Thanks, Andrew, for all this work!

Alejandro