Rosanswers logo

I haven't released anything yet or even really settled on version numbering schemes etc. But I'd like to at least start some version numbering. Should I be using branches, tags, or both? Are there (de facto or otherwise) any rules on naming of branches/tags?

It looks like there is some related information on the rosdistro/rules page but I wonder whether that's the whole story.

Although I don't have a timeline for using the full-blown ROS release process, I want to avoid having difficulties if/when it does come to doing a release.

One thing that might help is to look at well-maintained repositories that have releases, and use Mercurial. Ideally they also are hosted on bitbucket like my repo but that's less important. I thought I once saw a breakdown of ROS repositories by VCS type, am I recalling correctly?

Originally posted by Patrick Bouffard on ROS Answers with karma: 2264 on 2011-08-04

Post score: 0


1 Answer 1


Rosanswers logo

Basically: if you plan to release different versions of the same code into different ROS distributions, have different branches. The main input into our release and other scripts is "what branch do I get the code from?"

As for tags, our release scripts will automatically produce release version tags automatically (i.e. common_msgs-1.4.0).

In our own development, branching policy depends on whether or not a stack has a stable API. If it has a stable API, then there is a branch per ROS distribution so that new features are not accidentally added to older releases. Our tools generally don't care what the branch is called. For SVN, we generally name this branch on the minor release series number, e.g. common_msgs-1.4

If it doesn't have a stable API, then branches are generally only used as convenient, and it doesn't really make sense to have branch names correspond to version numbers as things are not settled down.

Caveat: Hg is a bit annoying in that "named branches" are persistent. In general, this means I see practices like making clones of repos, mqs, bookmarks, anonymous branches, etc...

There is no breakdown of ROS repositories by VCS type that I am aware of. You could produce this easily by parsing


Originally posted by kwc with karma: 12244 on 2011-08-04

This answer was ACCEPTED on the original site

Post score: 1

Original comments

Comment by kwc on 2011-08-05:
oh yeah, sites like Google Code still show closed branches in the browse menu. Not the biggest issue, but I have found it annoying.

Comment by kwc on 2011-08-05:
hmm, I remember there being an issue, but I can't seem to reproduce it from my command-line right now, so you're probably right.

Comment by Patrick Bouffard on 2011-08-05:
Thanks Ken. On the persistency of named branches in hg: isn't "closing" a branch the solution to this?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.