Planning/ReleaseProcess: Difference between revisions
(Created page with '== QEMU Release Process == QEMU releases are periodically made from a particular branch of git://git.qemu.org/qemu.git, generally either for a new major release (e.g. QEMU v1.7.…') |
m (moved ReleaseProcess to Planning/ReleaseProcess) |
(No difference)
|
Revision as of 08:54, 12 October 2016
QEMU Release Process
QEMU releases are periodically made from a particular branch of git://git.qemu.org/qemu.git, generally either for a new major release (e.g. QEMU v1.7.0), a release candidate for an upcoming major release (e.g. QEMU v1.7.0-rc0), or a stable/bugfix update to a previous major release (e.q. QEMU 1.7.1).
This page documents the steps that should be taken to produce these releases.
Locally check out the branch you intend to generate a release for:
git checkout <my_branch>
Update qemu.git/VERSION to reflect the version being released. This should have a single line of the following form:
v<major_version>.<minor_version>.<revision>[-rc<release_candidate_number>]
For example:
v1.7.0-rc0 v1.7.0-rc1 v1.7.0 v1.7.1
We will use v1.7.1 as an example for the following steps:
Commit this change to qemu.git/VERSION with a commit of the form:
git add VERSION git commit -s -m "Update VERSION for v1.7.1"
Tag this commit with a tag of the following form:
git tag v1.7.0
Push your branch to git://git.qemu.org/qemu.git (contact stefanha@redhat.com for commit access). Alternatively, have someone with commit access pull these changes from staging branch hosted elsewhere. This should take the following form:
git push origin HEAD:<upstream_branch>
where <upsteam_branch> should be "master" for major releases or release candidates thereof, and "stable-<major>.<minor>" for a stable revision of a previous major release (note: both v1.7.1 and v1.7.2 release branches would get push to "stable-1.7" branch, for instance). In this case, since we're doing a major release in this example (v1.7.0), we'd update the upstream master branch:
git push origin HEAD:master
Push your tag to git://git.qemu.org/qemu.git (see above for notes regarding commit access)
git push origin v1.7.0
With the code/changes committed/tagged in the official repository, we can now generate the release. A script is provided to handle generating the tarball, simply run:
make qemu-1.7.0.tar.bz2
This should work for any version string that matches the forms noted earlier (with the leading "v" omitted)
Some sanity-checking should be performed on the tarball in case there is an issue with the tarball script
Sign the resulting tarball with GPG:
gpg -b qemu-1.7.0.tar.bz2
This will generate a signature file named qemu-1.7.0.tar.bz2.sig
Upload the tarball and signature file to wiki.qemu.org, then update/add a link to the files and corresponding changelog by editing http://wiki.qemu.org/Download (contact stefanha@redhat.com for access/details). Only entries for the current release (or release candidate thereof) and the prior major release should be listed. Stable releases should replace the links to the previous stable/initial revision of that particular major version, RCs/major releases should replace the links to any previous RC of that particular major version.
Create an announcement email and submit to qemu-devel@nongnu.org. Cc: qemu-stable@nongnu.org if it is a stable revision/release. See the following for an example of what this should look like:
v1.7.0-rc2: http://lists.gnu.org/archive/html/qemu-devel/2013-11/msg03419.html v1.7.0: http://lists.gnu.org/archive/html/qemu-devel/2013-12/msg01770.html v1.7.1 (note that this gentleman forgot to include the changelog in the initial announcement): https://lists.gnu.org/archive/html/qemu-devel/2014-03/msg04767.html v1.6.2 (which includes a proper changelog): http://lists.gnu.org/archive/html/qemu-stable/2013-12/msg00148.html
The announcement should also be posted to the QEMU Google+ page (ask Anthony/Stefan for access details):
v1.6.0: https://plus.google.com/101344524535025574253/posts/9wQkMb22n6B v1.6.2: https://plus.google.com/101344524535025574253/posts/59VJbTd7vEb
Major releases should be submitted to lwn.net for reporting:
v1.6.0: http://lwn.net/Articles/563702/