[ros-users] handling multiple package and stack versions?

Jack O'Quin jack.oquin at gmail.com
Fri May 28 13:24:50 UTC 2010

I've been wondering about the ROS process for handling version
dependencies between stacks. Each stack seems to be released with a
specific version number, using rosbuild_make_distribution().

Is there a way to specify a minimum version number in the <depend>
statement of another stack.xml?

Is there a way to code a package so it works with multiple versions of
some package it depends on?

These questions have become more immediate as I try to update the
simulator_art package, which depends on stage. For latest, stage has
been upgraded to 3.2.2, and I need to test with that version. But, I
also want to continue support for Box Turtle, which includes an
intermediate stage 3.0 revision. Those versions of stage are quite
different, and I need to detect the version and conditionally compile
several interface types. Otherwise, if I commit my changes, I will
break support for Box Turtle.

One solution would be to fork a different branch for each ROS release.
But, the combinatorics can get out of hand with significant time spent
back-porting and merging fixes to multiple branches. I would prefer
conditional compilation with automatic build-time detection of the
version I am using.

What is the "official" ROS approach to supporting multiple package or
stack versions?

More information about the ros-users mailing list