Planning/ReleaseProcess: Difference between revisions
(Change "titles" to bold text) |
|||
Line 5: | Line 5: | ||
This page documents the steps that should be taken to produce these releases. | 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> | 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>] | v<major_version>.<minor_version>.<revision>[-rc<release_candidate_number>] | ||
Line 22: | Line 22: | ||
We will use v1.7.1 as an example for the following steps: | 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 add VERSION | ||
git commit -s -m "Update VERSION for v1.7.1" | 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 | 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> | git push origin HEAD:<upstream_branch> | ||
Line 39: | Line 39: | ||
git push origin HEAD:master | 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 | 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 | make qemu-1.7.0.tar.bz2 | ||
Line 49: | Line 49: | ||
This should work for any version string that matches the forms noted earlier (with the leading "v" omitted) | 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 | gpg -b qemu-1.7.0.tar.bz2 | ||
Line 57: | Line 57: | ||
This will generate a signature file named qemu-1.7.0.tar.bz2.sig | This will generate a signature file named qemu-1.7.0.tar.bz2.sig | ||
'''Upload the tarball and signature file to shell.qemu.org''' | |||
Files should be uploaded to /var/www/download. | Files should be uploaded to /var/www/download. | ||
'''Update/add a link to the file in git://git.qemu.org/qemu-web.git (file _data/releases.yml)''' | |||
For example: | For example: | ||
Line 69: | Line 69: | ||
date: "Apr 1 2017" | date: "Apr 1 2017" | ||
'''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: | v1.7.0-rc2: | ||
Line 81: | Line 81: | ||
<!-- | <!-- | ||
'''The announcement should also be posted to the QEMU Google+ page (ask Anthony/Stefan for access details):''' | |||
v1.6.0: | v1.6.0: | ||
https://plus.google.com/101344524535025574253/posts/9wQkMb22n6B | https://plus.google.com/101344524535025574253/posts/9wQkMb22n6B | ||
Line 88: | Line 88: | ||
--> | --> | ||
'''Major releases should be submitted to lwn.net for reporting:''' | |||
v1.6.0: | v1.6.0: | ||
http://lwn.net/Articles/563702/ | http://lwn.net/Articles/563702/ |
Latest revision as of 18:57, 2 July 2025
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 shell.qemu.org
Files should be uploaded to /var/www/download.
Update/add a link to the file in git://git.qemu.org/qemu-web.git (file _data/releases.yml)
For example:
- branch: 2.9 patch: 0-rc1 date: "Apr 1 2017"
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
Major releases should be submitted to lwn.net for reporting:
v1.6.0: http://lwn.net/Articles/563702/