[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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.