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