Ask Your Question
2

How to release for multiple ROS versions when version dependent patches are needed?

asked 2011-12-04 19:45:31 -0500

Thomas gravatar image

updated 2011-12-06 19:03:31 -0500

Hello,

due to the recent change in Bullet[1], I have to patch my stack when releasing for unstable but not when releasing for Electric. The SCM I use for this stack is Git.

Then problem is that even if create.py maintains different branches for each ROS version (unstable and electric in my case), it always update them using the current state of the master branch.

What I would like to do in this case is comitting myself on unstable to handle [1]. Then I would like create.py to use the current state of the unstable branch to create the release.

Is it possible to do so? Is there something I am missing?

Thanks!

[1] [ros-users Bullet change in unstable for Fuerte](http://ros-users.122217.n3.nabble.com/Bullet-change-in-unstable-for-Fuerte-EFFECTS-ALL-PACAKGES-USING-Bullet-and-tf-td3544196.html)

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2012-04-09 17:01:18 -0500

tfoote gravatar image

The create.py updates the branch defined in the rosdistro file. If you change the definition in the rosdistro file for each release it will pull from a different branch for the specified release.

For example in electric.rosdistro define the dev-branch to be electric-devel and the unstable.rosdistro file define the dev-branch to be master, etc.

edit flag offensive delete link more

Comments

While releasing from a different branch for each distro is the "standard" ROS solution, that is not what external groups like ours want. We need our development trunk to work with two successive distros. Generally, tick-tock makes that possible, though it often means slower adoption of new features.

joq gravatar image joq  ( 2012-04-10 05:12:31 -0500 )edit
1

answered 2011-12-05 13:24:20 -0500

joq gravatar image

updated 2011-12-06 09:53:23 -0500

Partial answer:

I had a similar problem for geographic_info. While I strongly prefer to maintain support for both distributions in a single source tree, ROS does not make that easy.

In my case, the cleanest solution was to drop the direct dependency on bullet, and use the equivalent tf types instead. That may not work for everyone.

If the tf types do not meet your needs, it might help for your C++ code to query the ROS version using pre-processor tests. Unfortunately, I know of no way to hide the bullet dependency differences in manifest.xml. As a tick-tock measure, maybe we should keep an empty bullet package around for Fuerte with just a rosdep for the system library.

edit flag offensive delete link more

Comments

Thanks, this is an interesting workaround, I will try that :)
Thomas gravatar image Thomas  ( 2011-12-05 22:46:03 -0500 )edit
I just noticed that unfortunately this version number is currently broken in unstable, see https://code.ros.org/trac/ros/ticket/3782
Thomas gravatar image Thomas  ( 2011-12-06 19:19:19 -0500 )edit
Well, I guess that's why we call it "unstable". :-)
joq gravatar image joq  ( 2011-12-07 01:32:04 -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

1 follower

Stats

Asked: 2011-12-04 19:45:31 -0500

Seen: 335 times

Last updated: Apr 09 '12