ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Version tagging for new releases and distributions

asked 2014-04-11 10:15:46 -0500

Tom Moore gravatar image

updated 2014-04-11 10:17:23 -0500

My upstream repository contains a master branch, as well as branches for Groovy, Hydro, and Indigo. Each distro branch is named <ros_version>-devel. How should I handle release tagging in this case? For example, I already have a "v0.1.0" tag for my last Hydro release. For Indigo, I only modified my package.xml and threw in a #define to silence some warnings, so the software is, for all intents and purposes, identical. I was hoping to create the same version number for Indigo as I have for Hydro, but even if I bumped it to 0.1.1, how should I tag it? Will bloom be able to handle a tag with a name like "v0.1.1-indigo"?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2014-04-11 10:17:59 -0500

Tom Moore gravatar image

Answer provided by @William via an earlier e-mail conversation:

So, anytime you have changes which cannot go into hydro but go into indigo, you should increment at least the minor version number to avoid exactly the problem you described. You should consider package version numbers (x.y.z) global. The idea is that the minor (y) and major (z) version numbers should only change when new features go in, and once a ROS distro like hydro is released only patches for bug fixes should go into it. That way you should never need to change the major or minor version for a released ROS distro and therefore it is sufficient to increment the minor number when branching to a new ROS distro. People do not always follow this pattern, but it what we use for the core packages. Bloom will not further differentiate the versions, such that version 0.1.1 should be the same for hydro and indigo (if it is released for both). Also, usually we make tags simply x.y.z and we do not use prefixes or suffixes like vx.y.z or anything like that. Though we don't require that you do that, and bloom can handle different tagging schemes as long as they are consistent.

You should be aware of the tools we have to automating the process of preparing upstream for release, like catkin_generate_changelog and catkin_prepare_release described here:

These tools make it a little bit faster to prepare for release and also make the preparations more consistent. So, unless you have a specific need to deviate from this workflow I would recommend using these tools.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2014-04-11 10:15:46 -0500

Seen: 391 times

Last updated: Apr 11 '14