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

Stack release version number restrictions

asked 2013-02-07 00:22:54 -0500

toniOliver gravatar image

When reading about the release process I've found the following note:

Note: You can release the same version into two different distros, but it must be exactly the same. If you need to have minor differences please use different numbered series. Something like 1.2.x vs 1.3.x for electric and fuerte.

I'd like to know if this is mandatory, and what is the reason if it is.

We have slightly different versions of our stack for fuerte and groovy, but we'd like to stick with what we think is a more reasonable versioning scheme (major.minor.revision) and we'd like to release with the same version number for both ROS distros, as the debian packages generated contain the distro name, so they won't collide (ros-fuerte-our-stack, ros-groovy-our-stack).

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-02-07 00:51:20 -0500

AHornung gravatar image

The reason is that the release script tags the versions within the VCS (see octomap_mapping for example). With a subsequent release of different code for the same version, the previous one will be overwritten, causing future builds of the previously tagged version to fail. The debian packages themselves will be fine, but there will be all kinds of nasty surprises in the build process (I've been there...).

If your code is built with "rosmake" (=rosrelease-legacy), you can actually use four digits. I have used that in the past to differentiate between identical version which only differed in the release distro (e.g. depending on different stacks). So there was e.g. 1.2.0 for electric and for fuerte.

When releasing with catkin and bloom, there is a debian-increment number that could be used for that, so the version is 1.2.0 while the released debian package has version 1.2.0-1 and 1.2.0-2.

edit flag offensive delete link more


Could this be solved by using release-tag: $RELEASE_NAME-$STACK_NAME-$STACK_VERSION instead of release-tag: $STACK_NAME-$STACK_VERSION in the .rosdistro files?

toniOliver gravatar image toniOliver  ( 2013-02-07 01:17:32 -0500 )edit

Should definitely be worth a try!

AHornung gravatar image AHornung  ( 2013-02-07 01:33:44 -0500 )edit

The release_tag trick doesn't solve everything. The branch is correctly tagged in our git repo, but when running the release script for fuerte I get a "svn: warning: 'sr_ronex-0.9.0.yaml' is already under version control". So there is a collision with a file generated when releasing for groovy.

toniOliver gravatar image toniOliver  ( 2013-02-07 06:04:16 -0500 )edit

That's just a warning. It's just letting you know that there's already a release with that number. It's fine if you're intending to release the same version into both distros. It's not ok if you forgot to increment the version or something like that.

tfoote gravatar image tfoote  ( 2013-02-11 19:09:24 -0500 )edit

Question Tools


Asked: 2013-02-07 00:22:54 -0500

Seen: 128 times

Last updated: Feb 07 '13