Robotics

ROS 2's ros2-abi-action auto-detects ABI breaks to catch missed backports

New GitHub Action diffs libraries in CI to flag ABI compatibility with released distros

Deep Dive

Tomoya Fujita, a ROS 2 contributor, has released a prototype that automates ABI compatibility checking for ROS 2 core repositories, addressing the common problem of bug fixes merged to rolling never being backported to supported distributions like Humble or Jazzy. The solution consists of two new GitHub Actions: libabigail-action, a generic tool that diffs two shared libraries using libabigail's abidiff, and ros2-abi-action, a ROS-aware layer that builds a package on both the target branch and PR head in matching distro containers, runs the binary ABI diff, and applies REP-0009 policy automatically—strict for released distros, advisory for rolling.

The ros2-abi-action surfaces results directly on each PR as a sticky comment with ABI compatible or ABI break labels, plus a pass/fail check. Per-repo integration is just a ~10-line workflow file, making it easy for rclcpp, rcl, rcutils, rmw, and other core packages to adopt. Fujita notes the label is informational—behavioral changes can still surprise users even with intact ABI—and that header templates/inlines still need human review. He is inviting community feedback on CI cost, the choice of libabigail over abi-compliance-checker, integrating with Mergify's backport flow, and whether this should be a shared reusable workflow for community packages.

Key Points
  • Two GitHub Actions: libabigail-action (repo-agnostic) and ros2-abi-action (ROS-aware)
  • Uses libabigail's abidiff to compare binary ABI between target branch and PR head
  • Applies REP-0009 policy: strict for released distros, advisory for rolling; labels PRs automatically
  • Integration is a ~10-line workflow file for core repos like rclcpp and rcl

Why It Matters

Automating ABI checks eliminates manual backport triage, cutting debugging time for maintainers and preventing duplicate fixes across ROS 2 distros.

📬 Get the top 10 AI stories daily