RETIRED, OpenStack Release Tools
Go to file
Sergey Lukjanov 90428c5246 Initial setup of python project layout
It's a result of partially applied cookiecutter template for OpenStack
projects. We need it to be able to commit new patches.

Change-Id: Ib980b8924921da3b7e2740ecac05ce8d34c43951
2013-12-10 22:22:50 +04:00
.gitignore Initial setup of python project layout 2013-12-10 22:22:50 +04:00
.gitreview Initial setup of python project layout 2013-12-10 22:22:50 +04:00
LICENSE Initial import, includes upload_release.py 2013-01-28 12:00:02 +01:00
README.rst Adding mpdelivery.sh 2013-05-30 18:12:23 +02:00
consolidate_release_page.py Handle LP errors during conslidate_page.py 2013-04-23 15:35:14 +02:00
create_milestones.py create_milestones.py: support series creation 2013-11-29 15:17:57 +01:00
create_milestones.sample.yaml create_milestones.py: support series creation 2013-11-29 15:17:57 +01:00
mpdelivery.sh mpdelivery.sh: Fix TAGMSG syntax error 2013-11-29 15:16:37 +01:00
process_bugs.py process_bugs.py: handle LP timeouts gracefully 2013-11-29 15:10:16 +01:00
repo_tarball_diff.sh Adding repo_tarball_diff.sh 2013-03-11 15:30:43 +01:00
requirements.txt Initial setup of python project layout 2013-12-10 22:22:50 +04:00
setup.cfg Initial setup of python project layout 2013-12-10 22:22:50 +04:00
setup.py Initial setup of python project layout 2013-12-10 22:22:50 +04:00
similar_tarballs.sh Add similar tarballs script 2013-03-13 17:53:04 +01:00
test-requirements.txt Initial setup of python project layout 2013-12-10 22:22:50 +04:00
tox.ini Initial setup of python project layout 2013-12-10 22:22:50 +04:00
upload_release.py Use .bX suffix for development milestones 2013-05-30 18:07:17 +02:00
wait_for_tarball.py Fix wait_for_tarball.py for multimaster Jenkins 2013-09-26 15:18:30 +02:00

README.rst

openstack-releasing - A set of scripts to handle OpenStack release process

Prerequisites

You'll need the following Python modules installed:
  • launchpadlib

similar_tarballs.sh also requires that you have tardiff installed.

repo_tarball_diff.sh

This script fetches a specific branch from a git repository into a temp directory and compares its content with the content of a tarball produced from it (using "python setup.py sdist"). The difference should only contain additional generated files (Changelog, AUTHORS...) and missing ignored files (.gitignore...).

Example:

./repo_tarball_diff.sh nova master

Check the difference between Nova master branch contant and a tarball that would be generated from it.

similar_tarballs.sh

This script compares the content of two tarballs on tarballs.openstack.org.

Example:

./similar_tarballs.sh nova milestone-proposed 2013.1.rc1

Check content differences between nova-milestone-proposed.tar.gz and nova-2013.1.rc1.tar.gz, as found on http://tarballs.openstack.org.

process_bugs.py

This script fetches bugs for a project (by default all "FixCommitted" bugs) and sets a milestone target for them (--settarget) and/or sets their status to "Fix Released" (--fixrelease).

It ignores bugs that have already a milestone set, if that milestone does not match the one in --settarget.

Examples:

./process_bugs.py nova --settarget=grizzly-3 --fixrelease

Sets the target for all Nova FixCommitted bugs to grizzly-3 and mark them 'Fix Released'.

./process_bugs.py glance --settarget=grizzly-2 --status='Fix Released' --test

Test setting the target for all untargeted Glance FixReleased bugs to grizzly-2 on Launchpad Staging servers.

wait_for_tarball.py

This script queries Jenkins tarball-building jobs to find either a job matching the provided --mpsha SHA building milestone-proposed.tar.gz, or a job matching the provided --tag. It then waits for that job completion and reports the built tarball name.

Examples:

./wait_for_tarball.py cinder --mpsha=59089e56f674f5f94f67c5986e9a616bb669d846

Looks for a cinder-branch-tarball job matching SHA 59089e... which would produce a milestone-proposed.tar.gz tarball, and waits for completion

./wait_for_tarball.py cinder --tag=2013.1.1

Looks for a cinder-tarball job for tag "2013.1.1" and waits for completion.

upload_release.py

This script grabs a tarball from tarballs.openstack.org and uploads it to Launchpad, marking the milestone released and inactive in the process.

The script prompts you to confirm that the tarball looks like the one you intend to release, and to sign the tarball upload.

Examples:

./upload_release.py nova 2013.1 --milestone=grizzly-3

Uploads Nova's nova-2013.1.g3.tar.gz to the grizzly-3 milestone as nova-2013.1.g3.tar.gz

./upload_release.py glance 2013.1 --test

Uploads Glance's glance-2013.1.tar.gz to the final "2013.1" milestone as glance-2013.1.tar.gz, on Launchpad staging server

./upload_release.py cinder 2012.2.3 --tarball=stable-folsom

Uploads Cinder's current cinder-stable-folsom.tar.gz to the 2012.2.3 milestone as cinder-2012.2.3.tar.gz

consolidate_release_page.py

This script moves blueprints and bugs from interim milestones to the final release milestone page, in order to show all bugs and features fixed during the cycle. For Swift, this will only move X-rc* bugs and blueprints to final X release.

The --copytask mode is an experimental variant where a series bugtask is created and the release milestone is set on that bugtask, preserving the information from the "development" bugtask (and the milestone the bug was fixed in).

Examples:

./consolidate_release_page.py cinder grizzly 2013.1

Moves Cinder blueprints and bugs from intermediary grizzly milestones to the final 2013.1 milestone page.

./consolidate_release_page.py --test swift grizzly 1.8.0

Moves Swift 1.8.0-rc* blueprints and bugs to the final 1.8.0 page, on Launchpad staging server

./consolidate_release_page.py --copytask glance grizzly 2013.1

Moves Glance blueprints from intermediary grizzly milestones to the final 2013.1 milestone page. Creates grizzly series task for all grizzly bugs and sets the milestone for those to 2013.1.

create_milestones.py

This script lets you create milestones in Launchpad in bulk. It is given a YAML description of the milestone dates and the projects to add milestones to. The script is idempotent and can safely be run multiple times. See create_milestones.sample.yaml for an example configuration file.

Example:

./create_milestones.py havana.yaml

mpdelivery.sh

Script that does in one shot everything that is needed to deliver a development milestone. It calls other scripts from openstack-releasing to do its task.

Example:

./mpdelivery.sh 2013.2 havana-1 2013.2.b1 horizon