You're reading the documentation for a version of ROS 2 that has reached its EOL (end-of-life), and is no longer officially supported. If you want up-to-date information, please have a look at Iron.
This guide explains how to release new versions of ROS packages that have already been released before.
If you are not part of the release team that has write access to the release repository, follow Join a release team.
Install tools that you will use in the upcoming steps according to your platform:
sudo apt install python3-bloom python3-catkin-pkg
sudo dnf install python3-bloom python3-catkin_pkg
pip3 install -U bloom catkin_pkg
If the file
~/.config/bloom exists on your computer, it is likely that you have done this before so you should skip this section.
During the release process, multiple HTTPS Git operations will be performed that require password authentication. To avoid being repeatedly asked for a password, a Personal Access Token (PAT) will be set up. If you have multi-factor authentication setup on your GitHub account, you must setup a Personal Access Token.
Create a Personal Access Token by:
Log in to GitHub and go to Personal access tokens.
Click the Generate new token button.
Set Note to something like
Set Expiration to No expiration.
Click the Generate token button.
After you have created the token, you will end up back at the Personal access tokens page. Copy the alphanumeric token that is highlighted in green.
Save your GitHub username and PAT to a new file called
~/.config/bloom, with the format below:
Make sure that:
Your repository is hosted on a remote such as GitHub.
You have a clone of the repository on your computer and are on the right branch.
Both the remote repository and your clone are up-to-date.
For your users and for the developers, keep the changelog concise and up to date.
CHANGELOG.rst files in an editor.
You will see that
catkin_generate_changelog has auto-generated a forthcoming section with notes from commit messages:
Changelog for package your_package
* you can modify this commit message
* and this
Clean up the list of commit messages to concisely convey the notable changes that have been made to the packages since the last release, and commit all the CHANGELOG.rst files.
Do not modify the
Every release of the package must have a unique version number higher than the previous release. Run:
which performs the following:
increases the package version in
replaces the heading
0.0.1 (2022-01-08)) in
commits those changes
creates a tag (eg.
pushes the changes and the tag to your remote repository
By default the patch version of the package is incremented, such as from
To increment the minor or major version instead, run
catkin_prepare_release --bump minor or
catkin_prepare_release --bump major.
For more details, see
Run the following command, replacing
my_repo with the name of your repository with the packages:
bloom-release --rosdistro galactic my_repo
Bloom will automatically create a pull request for you against rosdistro.
Once your pull request has been submitted, usually within one or two days, one of the maintainers of rosdistro will review and merge your Pull Request. If your package build is successful, in 24-48 hours your packages will become available in the ros-testing repository, where you can test your pre-release binaries.
Approximately every two to four weeks, the distribution’s release manager manually synchronizes the contents of ros-testing into the main ROS repository. This is when your packages actually become available to the rest of the ROS community. To get updates on when the next synchronization (sync) is coming, subscribe to the Packaging and Release Management Category on ROS Discourse.