ROS Infrastructure updates from January 2024

It’s been quite a while since I’ve put hands to keyboard in order to write an update. Of course, I’d love to fill everyone in on the last months of effort from the Infrastructure team but if I did so it might take me another month just to finish writing! So in the interest of getting back into the habit, I’m going to start out writing January’s update and I may digress and backfill earlier efforts as they come up.

The highlight and focus of January for the infrastructure project has been the steady rollout of support for the upcoming Ubuntu 24.04 “noble numbat” release of Ubuntu. In even years, both Ubuntu and ROS put out new long-term support (LTS) releases and while these releases are scheduled for April and May respectively, the preparations start much earlier for both teams. Prep for the upcoming LTS infrastructure usually starts around the time of ROScon six months before the April release. This year at ROScon we were lucky enough to sit down with Canonical to kick off our planning cycle. In order to build ROS on a new platform, our repository, CI, and build farm servers and the supporting software needs to be updated. These efforts involved myself, @Crola1702, @claraberendsen, @marcoag, @clalancette, and @cottsay. Over the course of the month we brought up noble (with Debian’s current testing distribution trixie on its heels) on the ROS bootstrap repository, which is where our infrastructure packages that are required to build ROS but are not built on the build farm themselves, are hosted before being imported into the ROS repositories and the ROS 2 repositories on packages.ros.org which ultimately unblocked running builds on ci.ros2.org with noble as a supported target platform. There are still updates coming to make sure that all of ROS 2’s dependencies and the ROS infrastructure packages are tested and working on the new distribution, but this is a major milestone nonetheless.


In addition to the changes required to support ROS on 24.04, we’re also going to be migrating our infrastructure hosts from 20.04 to 24.04 over the course of the next year. Along the way we’re making some much needed improvements to the configuration management tooling for maintaining our machines. One very high priority improvement is encrypting our secrets at rest. Toward the end of last year, @Crola1702 was investigating the use of sops which seemed like exactly the tool we needed. However, as we started putting the implementation together, sops didn’t quite meet our needs… forcing us to either compromise on either readability or complexity in our solution or need an extreme amount of configuration to work as we intended. In the end, we decided to build our own wrapper around the age utility and protocol which we were using via sops directly. We’ll have more to write about this once its usage has settled and we’re ready to recommend it for use in the chef-ros-buildfarm template repository.


That’s all that’s coming to me right now, there’s doubtless things that I’ve forgotten but hopefully this puts me back in the rhythm of writing a monthly update. Happy Friday!

6 Likes

Awesome thanks for the effort!