Bloom release from a specific tag in a specific branch

I’m maintaining one branch, for all supported distros, and when I want to make a release, I tag a specific commit as a Release Candidate, send this tag to the validation team to validate it, and continue development on my only branch.
I’m trying to release ROS2 packages for humble and iron, with bloom-release, but I could not find a way to point to some tag or commit…
Is there a overcome this? or the bloom-release always works with the latest commit in the branch ?
and in general, what is the best approach for such scenarios ? to hold two branches ? one as master and one for development ?
Thanks in advance :slight_smile:

Samer

Bloom is very configurable in that sense. When setting things up as described in the tutorial it will take the latest tag (matching the scheme, which I am not completely sure about) on the configured branch. So, after assembling a release and tagging it, you can continue development on your branch without disturbing bloom.

The usual workflow is to use catkin_generate_changelog and catkin_prepare_release. The latter will create a commit bumping your package.xml version and create a tag on that commit. This would be your release tag. Bloom-releasing that version is a separate step that can be done at any later stage, e.g. after doing some tests.

As long as you release the same version to each ROS distribution you should be good to go with that.
When you are using different versions, it is common practice to use different branches for the different distros in order to separate them. This branch then gets configured into the bloom track, so bloom will know where to look for the latest release tag.

I hope that answers the question. For the future, such questions are to my knowledge better asked on robotics.stackexchange.com.

Thanks for the detailed answer.
One last question, when you say “Bloom-releasing that version is a separate step that can be done at any later stage, e.g. after doing some tests.”, do you mean also that new commits are allowed between the catkin_prepare_release and bloom-release ?

Yes, absolutely. As I’ve written the latest release-tag is used for bloom-release.

1 Like