Ask Your Question
0

How should I use branches and tags in my mercurial ROS repository?

asked 2011-08-04 06:24:40 -0500

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?

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2011-08-04 19:18:21 -0500

kwc gravatar image

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

https://code.ros.org/svn/ros/stacks/rosorg/trunk/rosdoc_rosorg/repos.rosinstall

edit flag offensive delete link more

Comments

Thanks Ken. On the persistency of named branches in hg: isn't "closing" a branch the solution to this?
Patrick Bouffard gravatar image Patrick Bouffard  ( 2011-08-05 04:07:12 -0500 )edit
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.
kwc gravatar image kwc  ( 2011-08-05 04:24:32 -0500 )edit
oh yeah, sites like Google Code still show closed branches in the browse menu. Not the biggest issue, but I have found it annoying.
kwc gravatar image kwc  ( 2011-08-05 04:26:52 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2011-08-04 06:24:40 -0500

Seen: 677 times

Last updated: Aug 04 '11