How to release a stack

Let's assume that you've created a stack that's organized like so:

make_breakfast/
  stack.xml
  make_coffee/
   manifest.xml
   ....
  make_toast/
   manifest.xml
   ....
  make_bacon/
   manifest.xml
   ....

And now you're ready to share it with the world.

Setting up for distribution

Your Stack needs three files to be a proper Stack:

  • stack.xml
  • CMakeLists.txt
  • Makefile

The easiest way to create this is to run:

roscd mystack
roscreate-stack .

This will generate all three files. If you already had a stack.xml file, it will copy it to stack.xml.bak. You should check that the depends in the newly generated stack.xml file are what you expect, and you should also make sure that your Stack has a proper description.

In general, it is a good idea to run these commands not only the first time you release a stack, but before every subsequent releases as well. They make sure that your stack dependencies stay in sync with your package dependencies, and allow you to catch any dependency problems.

Making a source distribution

  1. Get the release script

    wget https://code.ros.org/svn/ros/stacks/ros/trunk/core/rosbuild/bin/create_release.py -O $ROS_ROOT/create_release.py
    chmod +x $ROS_ROOT/create_release.py
  2. Prepare your release: You should first do an svn up against all your dependencies, and then make sure that all the packages in your stack build. Ideally, you could be even more careful and get a clean checkout of your stack and its dependencies, and do the appropriate rosmakes there. Once your stack builds properly, you're ready to release

    roscd mystackname
     -- edit CMakeLists.txt to have correct version --
    svn ci -m "updating to release x.y.z" CMakeLists.txt
  3. Make the release

    $ROS_ROOT/create_release.py mystackname x.y.z your_rosdistro.yaml

    If the SVN commands look correct to you, say yes to them. These commands are based on the URLs specified in your rosdistro.yaml file. Running this command will modify the rosdistro.yaml file.

  4. Update the change list at

    http://www.ros.org/wiki/your_stack/ChangeList

See the new release release stack release

Wiki: StackReleaseProcess (last edited 2010-10-29 17:59:53 by TullyFoote)