QAProcess: DevelopersGuide | Review Status | PackageProposalProcess | PackageDocumentation | APIReviewProcess | DocReviewProcess | CodeReviewProcess | StackDocumentation | StackVersionPolicy | AutomatedTesting | WorkOnTrunkStack | StackReleaseProcess | WritingTutorials | Graveyard
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
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
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
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.
Update the change list at
http://wiki/your_stack/ChangeList
See the new release release stack release