[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] misc/release-checklist: Import from xenbits:~xen/release-checklist
This checklist is what we use when releasing, branching, and making tarballs. Right I want to commit an exact copy of the live copy kept on xenbits outside version control. I am fed up of maintaining this outside version control, and probably xen.git is the best place to put it. I have reviewed the contents and while it contains much that might be considered embarrassing, it doesn't contain any secrets :-). I suggest that: * This file should live in misc/ rather than docs/ on the grounds that no-one else is likely to ever want it. * We maintain the copy in xen.git#staging as the master copy for all branches. When things change they are more often changes to infrastructure organisation and so on. So the file will continue to contain explicit treatment for old Xen branches. * We will not retain information about branches which are out of security support. (So some of what is there can be deleted at our leisure.) * This file will be maintained by the release technicians (currently mostly that means me, although others have done some parts of the task) and commits will be made by release technicians without further review or acks. Please argue about the filename :-). Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> CC: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CC: George Dunlap <George.Dunlap@xxxxxxxxxxxxx> CC: Jan Beulich <jbeulich@xxxxxxxx> CC: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Tim Deegan <tim@xxxxxxx> CC: Wei Liu <wei.liu2@xxxxxxxxxx> --- misc/release-checklist.txt | 331 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 331 insertions(+) create mode 100644 misc/release-checklist.txt diff --git a/misc/release-checklist.txt b/misc/release-checklist.txt new file mode 100644 index 0000000..51f9508 --- /dev/null +++ b/misc/release-checklist.txt @@ -0,0 +1,331 @@ +DO NOT EDIT + +BEING INCORPORATED INTO GIT + + + +v=4.1 +ov=4.0 + +##* tag branchpoint +## hg tag $v.0-branched +## hg sign -k 'Xen tree' 4.1.0-branched + +* make branch in qemu-iwj.git + git-branch $v-testing master + +#* make branches in /usr/groups/xencore/HG (xen.hg and qemu.git) +# cd /usr/groups/xencore/HG +# really rsync -aH xen-unstable.hg/. xen-$v-testing.hg & +# really rsync -aH qemu-xen-unstable.git/. qemu-xen-$v-testing.git & +# +# ed xen-$v-testing.hg/.hg/hgrc +# /unsta +# s/unstable/###4.1###-testing +# w +# q + +# make branches in xenbits.xen.org qemus + ssh xen@xxxxxxxxxxxxxxx + cd ~/git/qemu-xen.git + git branch staging-$v staging + git branch stable-$v master + cd ~/git/qemu-xen-traditional.git + git branch stable-$v master +# cd ~/git +# rsync -aH qemu-xen-unstable.git/. qemu-xen-$v-testing.git & +# rsync -aH qemu-upstream-unstable.git/. qemu-upstream-$v-testing.git & +# cd staging +# rsync -aH qemu-xen-unstable.git/. qemu-xen-$v-testing.git & +# rsync -aH qemu-upstream-unstable.git/. qemu-upstream-$v-testing.git & +# cd /var/xenbits-www/html/git-http +# ln -sf /home/xen/git/qemu-xen-$v-testing.git . +# ln -sf /home/xen/git/staging/qemu-xen-$v-testing.git staging/. +# ln -sf /home/xen/git/qemu-upstream-$v-testing.git . +# ln -sf /home/xen/git/staging/qemu-upstream-$v-testing.git staging/. + +# make branch in libvirt + ssh xen@xxxxxxxxxxxxxxx + cd ~/git/libvirt.git/ + git branch osstest/frozen/xen-$v-testing xen-tested-master + +# make branches in xenbits.xen.org xen.git + ssh xen@xxxxxxxxxxxxxxx + cd ~/git/xen.git + git branch staging-$v staging + git branch stable-$v master + +## make hg mirror branch(es) +# ssh root@xxxxxxxxxxxxxxx +# cd ~xen/HG +# mkdir {staging/,}xen-$v-testing.hg +# chown git2hg:git2hg {staging/,}xen-$v-testing.hg +# # edit list of repos to mirror - Anthony Perard, or: +# ed ~git2hg/update-hg-mirror.sh +# /all_xen_version + +# update xendocs@xenbits docs generator to generate new stable branch +# docs too. commit to git. +* make 13:37 <ijc> http://xenbits.xen.org/docs/4.2-testing/ is now live true +#14:17 <ijc> HOWTO: login to xenbits. become "xendocs" . cd cronjobs . edit +# xenbits-docs-all.sh in the obvious way. git commit + ssh root@xxxxxxxxxxxxxxx + su - xendocs + cd cronjobs + ed xenbits-docs-all.sh + /for branch + s/$/ 4.6-testing + # ^ OR SIMILAR + w + q + git add -p + git commit -m "Branch for $v" + +### * make symlink on mariner for qemu +### cd /var/www/git/ +### ln -s /usr/groups/xencore/HG/qemu-xen-$v-testing.git . + +* make branches etc. in osstest + ssh osstest@xxxxxxxxxxxx-lab + cd testing.git + OSSTEST_CONFIG=production-config ./mg-branch-setup xen-$v-testing bisect + OSSTEST_CONFIG=production-config ./mg-branch-setup qemu-upstream-$v-testing bisect + +* add branch to osstest + ie add both eg qemu-upstream-4.2-testing and xen-4.2-testing to BRANCHES in cr-for-branches + +* add to patchbot + on xenbits + cd ~/HG/patchbot/ + + cp xen--master.patchbot-reported-heads xen--stable-$v.patchbot-reported-heads + cp xen--staging.patchbot-reported-heads xen--staging-$v.patchbot-reported-heads + cp qemu-xen--master.patchbot-reported-heads qemu-xen--stable-$v.patchbot-reported-heads + cp qemu-xen--staging.patchbot-reported-heads qemu-xen--staging-$v.patchbot-reported-heads + cp qemu-xen-traditional--master.patchbot-reported-heads qemu-xen-traditional--stable-$v.patchbot-reported-heads +# cd staging/ +## cp xen-unstable.last xen-$v-testing.last +## cp xen-unstable.last xen-$v-testing.last +# cd .. + + #emacs versions + perl -i~ -pe 'next unless m/\b\Q'$ov'\E\b/; $x=$_; $x=~ s/\b\Q'$ov'\E\b/'$v'/g; print $x;' versions + git diff + git add versions + git commit -m "Branch for $v" + +#* update xenbits web page + ssh root@xxxxxxxxxxxxxxx + cd /var/xenbits-www/html + emacs index.html + # - search for previous version number, and update in each place found + # - in general, drop one old release in favour of the new one + +Ensure references to qemu trees in xen.git's Config.mk are updated. +Check this with + grep unstable Config.mk +which should produce no output. Replace as necessary. + +Update new stable tree's MAINTAINERS to contain correct info for this stable branch + +##* update wiki page +## http://wiki.xen.org/xenwiki/XenRepositories + +###* fix new trees' vcs descriptions +#* make old trees' descriptions "historical" +# cd ~/git +# perl -i~ -pe "s/unstable/4.6-testing/" qemu-upstream-$v-testing.git/description + +---- + +* check, even for point releases +* http://logs.test-lab.xenproject.org/osstest/results/all-branch-statuses.txt + +* check, even for point releases, advisory patch application status (Lars) + +* make tag in qemu-iwj.git + +##* push qemu tag in /usr/groups/xencore/HG git-update-server-info +##* push qemu tag in /usr/groups/xencore/patchman git-update-server-info +* push qemu tag in xenbits.xen.org git-update-server-info +* push qemu tag in xenbits.xen.org staging git-update-server-info + +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 all XSAs have been applied + +# QEMU + + git-checkout $s + git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v $s + +# git-push ianj@docr-01:/usr/groups/xencore/HG/qemu-xen-$b.git $s:master xen-$v # 4.1 and earlier only +# git-push latara:/usr/groups/xencore/patchman/qemu-xen-$b.git $s:master xen-$v + git-push xenbits.xen.org:/home/xen/git/qemu-xen-traditional.git $s:stable-$x xen-$v +# git-push xen@xxxxxxxxxxxxxxx:/home/xen/git/qemu-xen-$b.git $s:master xen-$v +# git-push xen@xxxxxxxxxxxxxxx:/home/xen/git/staging/qemu-xen-$b.git $s:master xen-$v +# ssh xen@xxxxxxxxxxxxxxx cd /home/xen/git/qemu-xen-$b.git '&&' git update-server-info +# ssh xen@xxxxxxxxxxxxxxx cd /home/xen/git/staging/qemu-xen-$b.git '&&' git update-server-info + +# consider making tag in minios, and updating xen.git Config.mk + git-tag -u 'xen tree' -s -m "Xen $r$rc" xen-$t + git push xen@xxxxxxxxxxxxxxx:/home/xen/git/mini-os.git xen-$t + +* Also tag upstream qemu tree (Stefano) + git tag -u 'xen tree' -s -m "Xen $r$rc" qemu-xen-$r SOMETHING + git push osstest@xxxxxxxxxxxxxxx:/home/xen/git/qemu-xen.git qemu-xen-$r +# git push xen@xxxxxxxxxxxxxxx:/home/xen/git/qemu-upstream-$b.git qemu-xen-$r +# git push xen@xxxxxxxxxxxxxxx:/home/xen/git/staging/qemu-upstream-$b.git qemu-xen-$r + +* consider bumping sonames of shlibs + +* change xen-unstable README (should say "Xen 4.5" in releases and on stable branches, "Xen 4.5-unstable" on unstable) +* change xen-unstable Config.mk (QEMU_UPSTREAM_REVISION, QEMU_TRADITIONAL_REVISION, MINIOS_UPSTREAM_REVISION) +* 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 `.0-rc$(XEN_VENDORVERSION)' +# - debug ?= n on stable branches +# - Kconfig.debug default n on stable branches +* 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 +## 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.gz /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/. + +#hg archive -t files /volatile/iwj/d/xen-$v + +cd /u/iwj/work/xen.git +mkdir /volatile/iwj/d/xen-$v +git archive --format=tar RELEASE-$v |tar Cxf /volatile/iwj/d/xen-$v - +[OR FOR RCs +git archive --format=tar $v |tar Cxf /volatile/iwj/d/xen-$v - +] + +cd /volatile/iwj/d/xen-$v/tools/ +mkdir ioemu-qemu-xen # 4.0, 4.1 +mkdir qemu-xen qemu-xen-traditional # 4.2+ + + cd /u/iwj/work/1/qemu-iwj.git + git-archive --format=tar xen-$v |tar Cxf /volatile/iwj/d/xen-$v/tools/ioemu-qemu-xen - # 4.0, 4.1 + git-archive --format=tar xen-$v |tar Cxf /volatile/iwj/d/xen-$v/tools/qemu-xen-traditional - # 4.2+ + +# cd /u/iwj/work/1/qemu-upstream-4.2-testing.git # perhaps +# cd /u/iwj/work/1/qemu-upstream-4.3-testing.git # perhaps +# cd /u/iwj/work/1/qemu-upstream-4.4-testing.git # perhaps +# cd /u/iwj/work/1/qemu-upstream-unstable.git # alternatively + cd /u/iwj/work/1/qemu-upstream.git # now we have a merged tree + git-pull + git-archive --format=tar qemu-xen-$v |tar Cxf /volatile/iwj/d/xen-$v/tools/qemu-xen - # 4.2+ + +cd .. +# ONE OF: +ssh xenbits.xen.org cat /home/xen/release-checklist.patch-4.2 | patch Config.mk +ssh xenbits.xen.org cat /home/xen/release-checklist.patch-4.1 | patch -p1 Config.mk +ssh xenbits.xen.org cat /home/xen/release-checklist.patch-4.0 | patch -p1 Config.mk + + # website-thing is cvs -d hg.uk.xensource.com:/usr/groups/sources/cvs/akamai co xen.org + cd /volatile/iwj/website-thing/xen.org + mkdir oss-xen/release/$v + +cd .. +GZIP=-9v tar zcf /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/xen-$v.tar.gz xen-$v + +# 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/ + (make -j4 KERNELS='' && echo ok.) 2>&1 | tee ../log.$v # pre 4.2 + (./configure && make -j4 KERNELS='' && echo ok.) 2>&1 | tee ../log.$v # post 4.2 + +# [[ test build amd64 ]] + +### check that tarball's .hgtags has the release tag put there by Keir +##tar zvvxOf /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/xen-$v.tar.gz xen-$v/.hgtags |less + + cvs add -kb oss-xen/release/$v/ + + cd oss-xen/release/$v + gpg --detach-sign -u 'xen tree' xen-$v.tar.gz + cvs add -kb xen-$v.tar.gz + cvs add -kb xen-$v.tar.gz.sig + cd ../../.. + + cvs ci -m $v + ./upload.sh + + AND (can be done in parallel with ./upload.sh) + ssh downloads-cvs@xxxxxxxxxxxxxxxxxxx + 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 + +# cd /volatile/iwj/akamai-xen.org/ +# cvs -q up +# U oss-xen/release/$v/xen-$v.tar.gz +# U oss-xen/release/$v/xen-$v.tar.gz.sig +# ./upload.sh.~1.3.~ + + +update xenbits front page to change references to old stable branch + into references to new stable branch + +Edit website + -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |