Hello ROS community,
As anyone who has worked in the ROS 2 core knows, we have a myriad of different names for the default branches in the core. These range from ‘master’, to ‘main’, to ‘rolling’, to ‘rolling-devel’, to even ‘crystal-devel’.
In an effort to make this easier to script and explain, we are going to change the default branch on most repositories listed in ros2/ros2.repos at master · ros2/ros2 · GitHub to ‘rolling’. Note that certain repositories will be exempt from this renaming:
- GitHub - eProsima/Fast-CDR: eProsima FastCDR library provides two serialization mechanisms. One is the standard CDR serialization mechanism, while the other is a faster implementation of it.
- GitHub - eProsima/Fast-DDS: The most complete DDS - Proven: Plenty of success cases.
- GitHub - eProsima/foonathan_memory_vendor: foonathan/memory vendor package for Fast DDS.
- GitHub - eclipse-cyclonedds/cyclonedds: Eclipse Cyclone DDS project
- GitHub - eclipse-iceoryx/iceoryx: Eclipse iceoryx™ - true zero-copy inter-process-communication
- GitHub - osrf/osrf_pycommon: Commonly needed Python modules, used by Python software developed at OSRF
- GitHub - osrf/osrf_testing_tools_cpp: Common testing tools for C++ which are used for testing in various OSRF projects.
- ros-tracing / ros2_tracing · GitLab
- GitHub - ros/urdfdom: URDF parser
- GitHub - ros/urdfdom_headers: Headers for URDF parsers
In order to not break any downstream scripts, we’ll also be installing a bot that automatically syncs commits from the new ‘rolling’ branch to whatever the old default branch was.
Roughly what we are going to do on every repository is:
- Create a ‘rolling’ branch.
- Add the GitHub action to automatically sync between the new ‘rolling’ branch and the old default branch.
- Change the default to the ‘rolling’ branch.
- Retarget existing PRs that target the default branch to target the ‘rolling’ branch.
We’ll also be updating ros2/ros2.repos at master · ros2/ros2 · GitHub to point the repositories at the ‘rolling’ branch, as well as updating the documentation at GitHub - ros2/ros2_documentation: ROS 2 docs repository to do the same.
Assuming all goes to plan, downstream consumers won’t really notice the change, except for the fact that new PRs will start targeting the ‘rolling’ branch instead of the old default. That said, once the transition is complete we will encourage all downstream consumers to use the ‘rolling’ branch.
Please let us know any feedback you have about this change, and if you think we’ve missed any major steps that need to be completed for this to work smoothly. If there are no major obstacles or objections, we’ll start doing this transition the week of June 27th, 2022.