|Deletions are marked like this.||Additions are marked like this.|
|Line 58:||Line 58:|
|== Preparing release-candidate packages ==||== Preparing a release-candidate package ==|
|Line 61:||Line 61:|
| before publishing them. Use the `--no-merge` option to build test
packages: `autoppa build --no-merge storm 0.18-1~rc1`
| before publishing them in the official Storm PPA:
`autoppa build storm 0.18-1~rc1`
|Line 69:||Line 69:|
|issues (run in the `packaging` branch): ` fakeroot debian/rules binary`||issues (run in the `packaging` branch): `fakeroot debian/rules binary`|
|Line 71:||Line 71:|
| 1. Commit any changes needed to make the package work to the
|Any changes made for the build will have been committed to the
|Line 80:||Line 80:|
|1. This will create `dist/storm-0.16.tar.bz2`. Unpack it and make||1. This will create `dist/storm-0.17.tar.bz2`. Unpack it and make|
|Line 87:||Line 87:|
|== Decide whether to move on ==
If everything looks good move onto the next step. Otherwise, fix
the problems and build a new version of the package. Bump the
`stormN` part of the version string to `stormN+1`.
|Line 89:||Line 96:|
|If the tarball and package are in order you can prepare the final
|If the tarball and package are in order you can copy the package to
the official Storm PPA and upload the tarball to Launchpad.
|Line 92:||Line 99:|
| 1. Use your PPA to rebuild the package, using trunk as the source
branch, with the new release version: `autoppa build storm 0.16-1~storm1`
This will upload sources, like before, but it will also create a
branch with a revision storing the changes made for the release
being built. This changes will be merged to the `packaging` branch
and a tag based on the new version will be added to the new revision
to track the release.
1. When the new packages have finished building find them in your
PPA and copy them to the Storm Team PPA to publish them.
| 1. Find the new packages in your PPA and copy them to the Storm
Team PPA to publish them.
Preparing a release is a fairly straight-forward process despite appearances to the contrary.
Setting up the tools
The python-storm package is made to be built with AutoPPA. AutoPPA eases the process of building packages for all supported releases of Ubuntu. You need to create a ~/.autoppa.conf file with contents similar to:
[storm] email = Username <email@example.com> ppa = username branch = /home/username/src/projects/storm/packaging repository = /home/username/src/autoppa-builds releases = dapper hardy karmic lucid maverick
The branch above should be a branch of lp:~storm/storm/packaging. It's best to bzr checkout the branch, to ensure that changes are uploaded back to the master copy. You'll also need something similar to this in your ~/.dput.cf:
[username] fqdn = ppa.launchpad.net method = ftp incoming = ~username/ppa/ubuntu/ login = anonymous allow_unsigned_uploads = 0
AutoPPA is available from Launchpad.
Are you ready?
- Make sure all bugs in the current active milestone on Launchpad
are in the Fix Committed state.
- Review the Bazaar log and make sure the NEWS file contains information about all the changes made since the last release.
When all the bug fixes and new features are ready in trunk it's time to create the release.
Edit storm/__init__.py and set version to the new version.
Merge the changes from trunk into the packaging branch.
Preparing a release-candidate package
- Build the package in your own PPA so that you can test them before publishing them in the official Storm PPA:
autoppa build storm 0.18-1~rc1
This will upload sources to your PPA for the Ubuntu releases specified in ~/.autoppa.conf. When the python-storm packages build you should test them in pristine environments, to make sure they work properly. Amazon's EC2 is good for this kind of testing. If you run into problems you can build the package locally to debug issues (run in the packaging branch): fakeroot debian/rules binary
Any changes made for the build will have been committed to the packaging branch.
Preparing a release-candidate tarball
Run make release to prepare a tarball (created in the dist directory).
This will create dist/storm-0.17.tar.bz2. Unpack it and make sure everything is in place: the README, NEWS, TODO and LICENSE files, the PKG-INFO and other distutils setup files, the debian directory with package source, the storm and tests directories with Python code, the Makefile and the storm.egg-info directory.
Decide whether to move on
If everything looks good move onto the next step. Otherwise, fix the problems and build a new version of the package. Bump the stormN part of the version string to stormN+1.
Creating and publishing the new tarball and packages
If the tarball and package are in order you can copy the package to the official Storm PPA and upload the tarball to Launchpad.
- Find the new packages in your PPA and copy them to the Storm Team PPA to publish them.
- Upload the tarball to Launchpad using the 'Create a release' function from the milestone page. Let Launchpad close the milestone as part of creating the release.
- After the release is created use the 'Add file' function to upload the tarball. Be sure to also upload a valid GPG signature for it.
- Write a nice release announcement for the Launchpad page and send a copy of it to the Storm mailing list to announce the release. See the Storm mailing list archive for examples of the announcement.
Prepare to develop the next version
- If it hasn't already been done, create a milestone for the next version and target bugs that needs to be delivered with it.
Bump the version value in the storm/__init__.py.