Publishing the Bundle
In order to publish our bundle, sharing it with e.g. our coworkers, we actually have to do a few things:
manifest.xmlwith the following contents:
<package> <description brief="Syskit Tutorial Bundle from 'Rock and Syskit'"> </description> <depend package="bundles/common_models" /> <depend package="simulation/rock_gazebo" /> <depend package="control/orogen/cart_ctrl_wdls" /> <depend package="control/orogen/robot_frames" /> </package>
You will obviously need to put the code somewhere. Let's assume it will end up on GitHub. The repository naming convention is to separate the folder names with dashes, so in this case, the repo would be named
bundles-syskit_basics. Let's use the
rock-coreorganization as an example.
Turn first the
bundles/syskit_basicsfolder into a
gitrepository, and add the files we have created with:
git init git add . git commit -m "Initial commit - Finished the Basics tutorial"
Then create the repository and push to it (replacing the URL with your repository URL):
git push firstname.lastname@example.org:rock-core/bundles-syskit_basics master
Create your own Autoproj project, on top of which you will be able to expand your developments. This is described in the Starting A New Project section in the Workspace and Packages chapter. Read this chapter, and apply it here.
Make sure you added the newly created package set to both the
layout, as the "Starting a new project' section instructed you to.
Finally, add the bundle to your newly create package set. Edit the
packages.autobuildfile and add
And add a corresponding entry in the package set's
source.yml, which would look like
- bundles/syskit_basics: github: rock-core/bundles-syskit_basics
Check that things resolve properly with
autoproj show syskit_basicsand do a
aup -n syskit_basicsto verify that the repository is properly setup.
Because the bundle is part of the package set, and because the bundle depends on the
control/orogen/robot_framespackages, they should not be listed anymore within the workspace manifest. Removes them from
The general best practice is to basically ensure that your projects packages depend on what they need, and then either depend on the whole package set (common on developer machines), or on specific packages. The latter is usually the bundle, which happens on the robot machines themselves.
Publish the changes from your package set and main build configuration.
Let's finally go to the section's recap