Files
xen/docs/process/release-technician-checklist.txt
Jan Beulich 63ebd0e964 releases: use newer compression methods for tarballs
Other projects have long switched to xz and/or lzip.

Tidy things some as well: With the removal of qemu from the tarball,
intermediately extracting the tarball again has become wasteful. Drop
that. Invoke compressors using asynchronous lists, to reduce overall
latency. Drop the -v option from the (previously implicit) gzip
invocation.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Julien Grall <jgrall@amazon.com>
Tested-by: Julien Grall <jgrall@amazon.com>
2025-09-25 10:22:55 +02:00

175 lines
5.6 KiB
Plaintext

s=master
#b=unstable
v=$v-rc1
OR
x=4.1
m=1
rc=-rc2
r=$x.$m
s=$x-testing
#b=$x-testing
v=$r$rc
t=$r$rc
OR
t=RELEASE-$r
# FIRSTLY
# - check (for point releases, but not RCs) all XSAs have been applied (Lars)
#
* check, even for point releases
* http://logs.test-lab.xenproject.org/osstest/results/all-branch-statuses.txt
# QEMU
git checkout $s
git show # should show appropriate intended commit
git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v
# consider making tag in minios, and updating xen.git Config.mk
git checkout SOMETHING
git show # should show appropriate intended commit
git-tag -u 'xen tree' -s -m "Xen $r$rc" xen-$t
git push xen@xenbits.xen.org:/home/xen/git/mini-os.git xen-$t
* Also tag upstream qemu tree (Stefano)
git checkout SOMETHING
git show # should show appropriate intended commit
git tag -u 'xen tree' -s -m "Xen $r$rc" qemu-xen-$v
git push osstest@xenbits.xen.org:/home/xen/git/qemu-xen.git qemu-xen-$v
* consider bumping sonames of shlibs
* change xen-unstable README. The banner (generated using figlet) should say:
- "Xen 4.5" in releases and on stable branches
- "Xen 4.5-unstable" on unstable
- "Xen 4.5-rc" for release candidate
* for major releases, drop staging-only text from MAINTAINERS and add stable
maintainer(s) there
* change xen-unstable Config.mk
# QEMU_UPSTREAM_REVISION,
# MINIOS_UPSTREAM_REVISION
# (drop any references to the specific commits, e.g. date or title)
* change SUPPORT.md heading version number; -unstable or -rc tag
* (empty in stable branches after .0 release).
* SUPPORT.md: insert correct version number in release-notes link
* CHANGELOG.md: set section heading to delete UNRELEASED and add date;
# in unstable branches set to X.Y.0 and RELEASE-X.YY.0
* change xen-unstable xen/Makefile XEN_EXTRAVERSION
# if main version number has changed (eg 4.7 -> 4.8) rerun ./autogen.sh
* rerun ./autogen.sh to update version number in configure
# - XEN_EXTRAVERSION should be as follows
# `.0-rc$(XEN_VENDORVERSION)' during freeze, first rc onwards (including staging, before branching)
# `-unstable$(XEN_VENDORVERSION)' unstable aka unfrozen staging (or unstable branch, after branching)
# `.0$(XEN_VENDORVERSION)' actual release of Xen X.Y.0 (aka first actual release of Xen X.Y)
# `.Z$(XEN_VENDORVERSION)' actual release of Xen X.Y.Z (stable point realase)
# `.Z-pre$(XEN_VENDORVERSION)' stable branch, after release of Z-1
#
# - turn off debug on stable branches, if not already done
# - tools/Rules.mk
# debug ?= n
# - xen/Kconfig.debug
# config DEBUG
# default n
* tag xen-unstable
# In xen.git
git-fetch origin
git-checkout staging-$x
git-pull
git-show # should show commit updating version to right version
git-tag -u 'xen tree' -s -m "Xen $r$rc" $t
git-push origin $t
git-push origin staging-$x
## hg tag <tag_name> ; hg sign -k "Xen tree" <tag_name>
HANDLING TAG GENERATED BY RELEASE MANAGER
fetch the tag into my tree
make the tarball (RELEASE TARBALL, below)
test build (see below)
website (see below)
merge tag into staging and push to staging
maybe force push into master
definitely push tag to xenbits
git-push origin $t
RELEASE TARBALL
for 4.5 and later, use tarball target
git checkout $t
git clean -xdff
# export http_proxy=http://localhost:3128/
./configure
make src-tarball-release # must be used for actual releases
make src-tarball # uses git-describe (best for RCs)
# ^find some way to add git-cache-proxy to this (done in ~iwj/.gitconfig)
mkdir /volatile/iwj/website-thing/xen.org/oss-xen/release/$v
mv dist/xen-$v.tar.[glx]z /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/.
# website-thing/xen.org is cvs -d mail.xenproject.org:/home/downloads-cvs/cvs-repos co xen.org
cd /volatile/iwj/website-thing/xen.org
# test build
cd /volatile/iwj/d
mkdir build
cd build
tar zxf /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/xen-$v.tar.gz
# rsync -a --delete xen-$v build/
cd xen-$v
export http_proxy=http://localhost:3128/
(./configure && make -j4 KERNELS='' && echo ok.) 2>&1 | tee ../log.$v # post 4.2
# [[ test build amd64 ]]
cvs add -kb oss-xen/release/$v/
cd oss-xen/release/$v
for t in xen-$v.tar.[glx]z
do
gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' $t
cvs add -kb $t
cvs add -kb $t.sig
done
cd ../../..
cvs ci -m $v
ssh downloads-cvs@mail.xenproject.org
cd /data/downloads.xenproject.org/xen.org
cvs -q up -d
# should show something like
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz.sig
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.lz.sig
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz
# U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.xz.sig
After a .0 release, update XEN_EXTRAVERSION again (to .1-pre, see above).
After a .0 release,
Update new stable tree's MAINTAINERS to contain correct info for this
stable branch: usually, copy text from previous
staging-$ov:MAINTAINERS section "Stable Release Maintenance"
into new staging-$v, deleting what's there.
git cat-file blob origin/staging-$ov:MAINTAINERS >MAINTAINERS
and review the changes, commiting ONLY THE RELEVANT ONES
Notify release manager of completion