1
2s=master
3#b=unstable
4v=$v-rc1
5
6OR
7
8x=4.1
9m=1
10rc=-rc2
11
12r=$x.$m
13s=$x-testing
14#b=$x-testing
15v=$r$rc
16
17t=$r$rc
18OR
19t=RELEASE-$r
20
21
22# FIRSTLY
23#  - check (for point releases, but not RCs) all XSAs have been applied (Lars)
24#
25* check, even for point releases
26*  http://logs.test-lab.xenproject.org/osstest/results/all-branch-statuses.txt
27
28
29# QEMU
30
31  git checkout $s
32  git show # should show appropriate intended commit
33  git-tag -u 'Xen.org Xen tree code signing' -m "Xen $v" xen-$v
34
35  git-push xenbits.xen.org:/home/xen/git/qemu-xen-traditional.git $s:stable-$x xen-$v
36
37# consider making tag in minios, and updating xen.git Config.mk
38  git checkout SOMETHING
39  git show # should show appropriate intended commit
40  git-tag -u 'xen tree' -s -m "Xen $r$rc" xen-$t
41  git push xen@xenbits.xen.org:/home/xen/git/mini-os.git xen-$t
42
43* Also tag upstream qemu tree (Stefano)
44  git checkout SOMETHING
45  git show # should show appropriate intended commit
46  git tag -u 'xen tree' -s -m "Xen $r$rc" qemu-xen-$v
47  git push osstest@xenbits.xen.org:/home/xen/git/qemu-xen.git qemu-xen-$v
48
49* consider bumping sonames of shlibs
50
51* change xen-unstable README (should say "Xen 4.5" in releases and on stable branches, "Xen 4.5-unstable" on unstable)
52* change xen-unstable Config.mk
53#   QEMU_UPSTREAM_REVISION,
54#   QEMU_TRADITIONAL_REVISION
55#   MINIOS_UPSTREAM_REVISION
56* change SUPPORT.md heading version number; -unstable or -rc tag
57*     (empty in stable branches after .0 release).
58* SUPPORT.md: insert correct version number in release-notes link
59* change xen-unstable xen/Makefile XEN_EXTRAVERSION
60# if main version number has changed (eg 4.7 -> 4.8) rerun ./autogen.sh
61* rerun ./autogen.sh to update version number in configure
62#    - XEN_EXTRAVERSION should be as follows
63#      `.0-rc$(XEN_VENDORVERSION)'       during freeze, first rc onwards (including staging, before branching)
64#      `-unstable$(XEN_VENDORVERSION)'   unstable aka unfrozen staging (or unstable branch, after branching)
65#      `.0$(XEN_VENDORVERSION)'          actual release of Xen X.Y.0 (aka first actual release of Xen X.Y)
66#      `.Z$(XEN_VENDORVERSION)'          actual release of Xen X.Y.Z (stable point realase)
67#      `.Z-pre$(XEN_VENDORVERSION)'      stable branch, after release of Z-1
68#
69#    - turn off debug on stable branches, if not already done
70#           - tools/Rules.mk
71#                 debug ?= n
72#           - xen/Kconfig.debug
73#                 config DEBUG
74#                     default n
75
76* tag xen-unstable
77
78# In xen.git
79  git-fetch origin
80  git-checkout staging-$x
81  git-pull
82  git-show # should show commit updating version to right version
83  git-tag -u 'xen tree' -s -m "Xen $r$rc" $t
84  git-push origin $t
85  git-push origin staging-$x
86##  hg tag <tag_name> ; hg sign -k "Xen tree" <tag_name>
87
88
89
90HANDLING TAG GENERATED BY RELEASE MANAGER
91
92   fetch the tag into my tree
93   make the tarball (RELEASE TARBALL, below)
94   test build (see below)
95   website (see below)
96   merge tag into staging and push to staging
97   maybe force push into master
98   definitely push tag to xenbits
99        git-push origin $t
100
101
102
103
104RELEASE TARBALL
105
106   for 4.5 and later, use tarball target
107       git checkout $t
108       git clean -xdff
109       # export http_proxy=http://localhost:3128/
110       ./configure
111       make src-tarball-release   # must be used for actual releases
112       make src-tarball           # uses git-describe (best for RCs)
113        # ^find some way to add git-cache-proxy to this (done in ~iwj/.gitconfig)
114       mkdir /volatile/iwj/website-thing/xen.org/oss-xen/release/$v
115       mv dist/xen-$v.tar.gz /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/.
116
117       # website-thing/xen.org is cvs -d mail.xenproject.org:/home/downloads-cvs/cvs-repos co xen.org
118	cd /volatile/iwj/website-thing/xen.org
119
120# test build
121                cd /volatile/iwj/d
122                mkdir build
123                cd build
124                tar zxf /volatile/iwj/website-thing/xen.org/oss-xen/release/$v/xen-$v.tar.gz
125#                rsync -a --delete xen-$v build/
126                cd xen-$v
127                export http_proxy=http://localhost:3128/
128                (./configure && make -j4 KERNELS='' && echo ok.) 2>&1 | tee ../log.$v       # post 4.2
129
130# [[ test build amd64 ]]
131
132	cvs add -kb oss-xen/release/$v/
133
134        cd oss-xen/release/$v
135        gpg --digest-algo=SHA256 --detach-sign -u 'xen tree' xen-$v.tar.gz
136	cvs add -kb xen-$v.tar.gz
137        cvs add -kb xen-$v.tar.gz.sig
138        cd ../../..
139
140	cvs ci -m $v
141
142        ssh downloads-cvs@mail.xenproject.org
143	cd /data/downloads.xenproject.org/xen.org
144	cvs -q up -d
145	# should show something like
146	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz
147	#   U oss-xen/release/4.8.0-rc2/xen-4.8.0-rc2.tar.gz.sig
148
149After a .0 release, update XEN_EXTRAVERSION again (to .1-pre, see above).
150
151After a .0 release,
152Update new stable tree's MAINTAINERS to contain correct info for this
153stable branch: usually, copy text from previous
154staging-$ov:MAINTAINERS section "Stable Release Maintenance"
155into new staging-$v, deleting what's there.
156  git cat-file blob origin/staging-$ov:MAINTAINERS >MAINTAINERS
157and review the changes, commiting ONLY THE RELEVANT ONES
158
159Notify release manager of completion
160
161