This is the old release process, kept for historical reasons.
Raw notes for release managers, or release monkeys if need be.
Contents
Replace where applicable:
- PROJECT ("nova" for example)
- VERSION ("2011.2" for example for Nova/Glance, "1.3" for example for Swift)
- CODENAME ("cactus" for example)
Gamma milestone release
Declare Freeze, then for each PROJECT:
Merge the translations branch:
This requires core team presence at crunch time - Nova: Propose merge of lp:nova/translations into lp:nova
- Glance, Swift: noop
- Note down current bzr revision (BZRREVISION=bzr638 for example)
- Tag release: VERSIONgamma1 (see howto below)
- Release "CODENAME-gamma" with "BZRREVISION" as "VERSION~gamma1" (see howto below)
- Release notes: "CODENAME Gamma milestone release for PROJECT. Only critical bugfixes will get merged from now on, please test and report any bugs."
- Description: CODENAME PROJECT Gamma (capitalized, i.e. 'Cactus Nova Gamma')
RC milestone release
Declare freeze, then for each PROJECT:
Merge the translations branch:
This requires core team presence at crunch time - Nova: Propose merge of lp:nova/translations into lp:nova
- Glance, Swift: noop
- Note down corresponding bzr revision (BZRREVISION=bzr638 for example)
- Tag release: VERSIONrc1 (see howto below)
- Release "CODENAME-rc" with "BZRREVISION" as "VERSION~rc1" (see howto below)
- Description: CODENAME PROJECT RC (capitalized, i.e. 'Cactus Nova RC')
Release
For each PROJECT:
Push final versioning:
This requires core team presence at crunch time - Nova, Glance: edit version.py to set FINAL = True
Swift: edit swift/__init__.py (1.3-dev -> 1.3.0)
- Note down corresponding bzr revision (BZRREVISION=bzr638 for example)
- Tag release: VERSION (see howto below)
- FVERSION="${VERSION}" for Nova/Glance, FVERSION="${VERSION}.0" for Swift
- Release "FVERSION" with "BZRREVISION" as "FVERSION" (see howto below)
Release Notes: "See http://wiki.openstack.org/ReleaseNotes/Bexar"
- Description: PROJECT "CODENAME" release (capitalized, i.e. 'Nova "Bexar" release')
After release
Branch stable release
more details needed Link trunk to next release
more details needed - Push new versioning to trunk:
- Nova, Glance: edit version.py to bump NOVA_VERSION and set FINAL = False
Swift: edit swift/__init__.py (1.3.0 -> 1.4-dev)
Target all bugs FixCommitted bugs to release and mark them FixReleased
- Create milestones for the next release:
- CODENAME-gamma
- CODENAME-rc
- VERSION (codename CODENAME)
Howtos
Tag
- Go to Jenkins, nova job, click on Tags
- Set the checkbox for the first in the list, set tag, click OK
Release MILESTONE with BZRREVISION as MVERSION
Download http://PROJECT.openstack.org/tarballs/PROJECT-VERSION~BZRREVISION.tar.gz
- Sanity-check tarball contents: tar tzf PROJECT-VERSION~BZRREVISION.tar.gz
- Calculate MD5: md5sum PROJECT-VERSION~BZRREVISION.tar.gz
- Rename file: mv PROJECT-VERSION~BZRREVISION.tar.gz PROJECT-MVERSION.tar.gz
- Sign file: gpg --armor --sign --detach-sig PROJECT-MVERSION.tar.gz
- Mark milestone as released in Launchpad
- Click on "Create release"
- Set release notes accordingly
- Add a download file
- Click "Add a download file" on the milestone page
- Set description accordingly
- Point to tarball (PROJECT-MVERSION.tar.gz) and signature (PROJECT-MVERSION.tar.gz.asc)
- File content type: "Code release tarball"
- Doublecheck md5sum
- Click on "md5" at the download level and compare with the one previously generated
Push a release to PyPI
Prerequisites:
Contact one of the existing PyPI maintainers for Glance (JayPipes, EwanMellor or MontyTaylor) and get them to add you to the release admins.
- Create a login/password and set your PGP key on your PyPI account details area
Process:
- Upload PKG-INFO from release tarball to set release details
- In "Files", Upload "source" tarball, any python version, with signature.
Open new branch
- Create stable branch (for the just-released SERIES)
- ssh to jenkins box
- sudo su - jenkins
mkdir tmp && cd tmp
- bzr branch lp:PROJECT
- cd PROJECT
- bzr push lp:~openstack-hudson/PROJECT/SERIES
- Point newly-created series to ~hudson-openstack/PROJECT/trunk
- Point just-released series to newly-created ~openstack-hudson/PROJECT/SERIES
- Switch branches
- "Development focus" on the front page. Change it.
Go to the previous release, e.g. https://launchpad.net/nova/bexar
- Set it to obsolete
Go to the one being released right now, e.g. https://launchpad.net/nova/cactus
- Set it to "Current stable release"