monotone

monotone Mtn Source Tree

Root/notes/release-checklist.txt

1How to release a new version of monotone
2----------------------------------------
3
40) Make sure that the buildbot looks reasonably green. Let's not
5 release stuff that's known to be broken on any major platforms, eh?
6
71) Write user-readable release notes at the top of the NEWS file,
8 roughly following the format of existing entries. Make sure to
9 mention any incompatibilities at the top, and generally it's a good
10 idea to put cool new stuff above nice-but-not-as-exciting stuff.
11
12 A useful command:
13
14 $ mtn log --from h:net.venge.monotone --to t:monotone-*
15
16 Commit your release notes, so other people can see them.
17
181.5) Get people to read over your release notes, it's really easy to
19 make mistakes or have stupid grammatical errors here.
20
212) Update the UPGRADE file. At the very least, bump the version
22 number in the first line. This file should always contain a
23 complete description of how to upgrade from any version of monotone
24 to the latest release -- you may need to tweak or remove earlier
25 entries to keep this true.
26
27 Commit your changes.
28
293) Double-check that INSTALL, AUTHORS, and README don't need any
30 updates. If they do, make them.
31
324) Update version numbers. The following files need to be touched:
33 configure.ac: change the call to AC_INIT
34 monotone.spec: change the "Version:" field, and add an entry to
35 the %changelog section.
36 win32/monotone.iss: the version number is mentioned several times
37 in this file, make sure to replace them all.
38 visualc/config.h: again, the version number is mentioned several
39 times, don't miss any.
40 debian/changelog: rather than modifying this file directly, run
41 the command "debchange -v <NEW VERSION>-0.1". (If you screw up
42 and need to roll a new unofficial package, use "debchange -i"
43 to increment this number.)
44
45 Commit your changes.
46
475) Okay, everything should be ready to go... double-check that:
48 -- you've done the above steps correctly
49 -- you've entered the correct date at the top of the NEWS file
50 (esp. important when you wrote the notes a few days ago so
51 people could look them over!)
52
536) Build and test the source package, in a clean checkout (if you use
54 your main workspace, you increase the changes of accidentally
55 picking up weird stuff):
56
57 $ mtn co -r h:net.venge.monotone SOMEDIR
58 $ cd SOMEDIR
59 $ autoreconf -i && ./configure && make distcheck
60
61 Wait a long time, eventually it will either bomb out, or say
62 "monotone-0.<whatever>.tar.gz is ready for distribution". If it
63 bombs out, fix it, otherwise, SOMEDIR/monotone-<NEW VERSION>.tar.gz
64 is the source package.
65
667) Build docs for the website:
67
68 $ tar xvzf SOMEDIR/monotone-<NEW VERSION>.tar.gz
69 $ cd monotone-<NEW VERSION>
70 $ ./configure
71 $ make monotone.pdf html
72
738) Upload everything to the website (uses monotone):
74
75 # This requires that you have registered a SSH version 2 public key
76 # with the administrators of monotone.ca, currently richard@levitte.org.
77 #
78 $ mkdir <NEW VERSION>
79 $ mv SOMEDIR/monotone-<NEW VERSION>.tar.gz <NEW VERSION>/
80 $ scp -r <NEW VERSION> mtn-uploads@monotone.ca:downloads/
81
82 # The rest is done via monotone.
83 #
84 $ mtn -d DATABASE co -b net.venge.monotone.web WEBDIR
85 $ cp monotone-<NEW VERSION>/{NEWS,INSTALL,UPGRADE,README,monotone.pdf,monotone.html} \
86 WEBDIR/
87 $ rm -rf WEBDIR/docs
88 $ cp -r monotone-<NEW VERSION>/html WEBDIR/docs
89 $ rm WEBDIR/figures/*
90 $ cp monotone-<NEW VERSION>/figures/*.png WEBDIR/figures/
91 $ cd WEBDIR
92 $ mtn drop --missing
93 $ mtn add --unknown
94 $ mtn ci -m "Updates related to the release of monotone <NEW VERSION>"
95 $ mtn sync
96
979) Update index.html on the website to state the latest version at the
98 top, and modify the list of download links to point to the new
99 version.
100
101 $ cd WEBDIR
102 $ vi index.html
103 $ mtn ci -m "Updates related to the release of monotone <NEW VERSION>"
104 $ mtn sync
105
10610) Update releases.xml on the website so the RSS feed contains information
107 for the newly released version. Don't forget to update the feed's
108 global pubDate date as well as the invididual item's pubDate
109 and ensure you use the correct datetime format. Add an <enclosure>
110 which links to the monotone source tarball and add the proper length
111 as attribute.
112 Finally you should just copy'n'paste the NEWS entry for the NEW VERSION
113 directly into the description inside a CDATA field and do a couple of
114 searches and replaces to add HTML formatting for a nicer display.
115
116 $ cd WEBDIR
117 $ vi releases.xml
118 $ mtn ci -m "Updates RSS feed for monotone <NEW VERSION>"
119 $ mtn sync
120
12111) Once you're pretty sure things have gone well, tag the source:
122
123 $ mtn tag <REVISION> monotone-<NEW VERSION>
124
125 This is the last possible moment to back out!
126
127 $ mtn sync
128
12912) Change the topic in the IRC channel to state the new version
130 number.
131
13213) Send out a release announcement. Format is something like:
133
134 To: monotone-announce@nongnu.org
135 CC: monotone-devel@nongnu.org
136 Subject: [ANNOUNCE] monotone <NEW VERSION> released
137
138 <a few lines stating the new version and where the website is>
139
140 <the release notes copy/pasted from the top of NEWS>
141
142 <sign off>
143
14414) Submit a release announcement to freshmeat.net.
145
14615) Note any mistakes you made and update this file accordingly for
147 next time.
148
14916) Party!

Archive Download this file

Branches

Tags

Quick Links:     www.monotone.ca    -     Downloads    -     Documentation    -     Wiki    -     Code Forge    -     Build Status