]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/contributor/release-work.itexi
Docs: CG: minor simplification to release/unstable branch name.
[lilypond.git] / Documentation / contributor / release-work.itexi
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @node Release work
3 @chapter Release work
4
5 @menu
6 * Development phases::          
7 * Minor release checklist::     
8 * Major release checklist::     
9 * Release extra notes::         
10 @end menu
11
12
13 @node Development phases
14 @section Development phases
15
16 There are 2.5 states of development for LilyPond.
17
18 @itemize
19
20 @item @strong{Stable phase}:
21 Starting from the release of a new major version @code{2.x.0}, the
22 following patches @strong{MAY NOT} be merged with master:
23
24 @itemize
25 @item Any change to the input syntax.  If a file compiled with a
26 previous @code{2.x} version, then it must compile in the new
27 version.
28
29 @item New features with new syntax @emph{may be committed},
30 although once committed that syntax cannot change during the
31 remainder of the stable phase.
32
33 @item Any change to the build dependencies (including programming
34 libraries, documentation process programs, or python modules used
35 in the buildscripts).  If a contributor could compile a previous
36 lilypond @code{2.x}, then he must be able to compile the new
37 version.
38
39 @end itemize
40
41 @item @strong{Development phase}:
42 Any commits are fine.  Readers may be familiar with the term
43 @qq{merge window} from following Linux kernel news.
44
45
46 @item @strong{Release prep phase}:
47 FIXME: I don't like that name.
48
49 A new git branch @code{stable/2.x} is created, and a major release
50 is made in two weeks.
51
52 @itemize
53
54 @item @code{stable/2.x branch}:
55 Only translation updates and important bugfixes are allows.
56
57 @item @code{master}:
58 Normal @qq{stable phase} development occurs.
59
60 @end itemize
61
62 If we discover the need to change the syntax or build system, we
63 will apply it and re-start the release prep phase.
64
65 @end itemize
66
67 This marks a radical change from previous practice in LilyPond.
68 However, this setup is not intended to slow development -- as a
69 rule of thumb, the next development phase will start within a
70 month of somebody wanting to commit something which is not
71 permitted during the stable phase.
72
73
74
75 @node Minor release checklist
76 @section Minor release checklist
77
78 A @qq{minor release} means an update of @code{y} in @code{2.x.y}.
79
80 @subheading Pre-release
81
82 @enumerate
83
84 @item Add a news item to @file{Documentation/web/news-front.itexi}
85
86 @item Check that lilypond builds from scratch in an out-of-tree
87 build.
88
89 @item
90 If you do not have the previous release test-output tarball, download
91 it and put it in @code{regtests/}
92
93 @item Build release on GUB by running:
94
95 @example
96 make lilypond
97 @end example
98
99 @noindent
100 or something like:
101
102 @example
103 make LILYPOND_BRANCH=stable/2.12 lilypond
104 @end example
105
106
107 @item Check the regtest comparison in @file{uploads/webtest/} for
108 any unintentional breakage.
109
110 @item Check if the mingw build contains lilypad.exe; when you find
111 that it doesn't, rebuild @code{mingw::lilypond-installer}.  Repeat
112 as necessary.
113
114 @uref{http://code.google.com/p/lilypond/issues/detail?id=901}
115
116 @item If any work was done on GUB since the last release, upload
117 binaries to a temporary location, ask for feedback, and wait a day
118 or two in case there's any major problems.
119
120 @end enumerate
121
122
123 @subheading Post-release
124
125 @enumerate
126
127 @item If you're not right user on the webserver, remove the "t"
128 from the rsync command in @file{test-lily/rsync-lily-doc.py} and
129 @file{test-lily/rsync-test.py}
130
131 @code{graham} owns v2.13; @code{han-wen} owns v2.12.
132
133 @item Upload GUB by running:
134
135 @example
136 make lilypond-upload LILYPOND_BRANCH=master LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git
137 @end example
138
139 @noindent
140 or something like:
141
142 @example
143 make lilypond-upload LILYPOND_BRANCH=stable/2.12 LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git
144 @end example
145
146
147 @item Update @file{VERSION} in lilypond git.
148
149 @item Wait a few hours for the website to update.
150
151 @item Email release notice to @code{info-lilypond}
152
153 @end enumerate
154
155
156 @node Major release checklist
157 @section Major release checklist
158
159 A @qq{major release} means an update of @code{x} in @code{2.x.0}.
160
161 Before release:
162
163 * write release notes. note: stringent size requirements for
164  various websites, so be brief.
165
166 * write preface section for manual.
167
168 * submit pots for translation : send url of tarball to
169 translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
170
171 * Check reg test
172
173 * Check all 2ly scripts.
174
175 * Run convert-ly on all files, bump parser minimum version.
176
177 * update links to distros providing lilypond packages?  link in
178 Documentation/web/download.itexi .  This has nothing to do with
179 the release, but I'm dumping this here so I'll find it when I
180 reorganize this list later.  -gp
181
182 * Make FTP directories on lilypond.org
183
184 * website:
185   - Make new table in download.html
186
187   - add to documentation list
188
189   - revise examples tour.html/howto.html
190
191   - add to front-page quick links
192
193   - change all links to the stable documentation
194
195   - doc auto redirects  to v2.LATEST-STABLE
196
197   - add these two lines to http://www.lilypond.org/robots.txt:
198
199 @example
200 Disallow: /doc/v2.PREVIOUS-STABLE/
201 Disallow: /doc/v2.CURRENT-DEVELOPMENT/
202 @end example
203
204 News:
205
206         comp.music.research
207         comp.os.linux.announce
208
209         comp.text.tex
210         rec.music.compose
211
212 Mail:
213
214         info-lilypond@@gnu.org
215
216 linux-audio-announce@@lists.linuxaudio.org
217 linux-audio-user@@lists.linuxaudio.org
218 linux-audio-dev@@lists.linuxaudio.org
219
220         tex-music@@icking-music-archive.org
221
222    --- non-existant?
223         abcusers@@blackmill.net
224
225         rosegarden-user@@lists.sourceforge.net
226         info-gnu@@gnu.org
227         noteedit-user@@berlios.de
228
229         gmane.comp.audio.fomus.devel
230         gmane.linux.audio.users
231         gmane.linux.audio.announce
232         gmane.comp.audio.rosegarden.devel
233
234 Web:
235
236         lilypond.org
237         freshmeat.net
238         linuxfr.com
239         http://www.apple.com/downloads
240         harmony-central.com (news@@harmony-central.com)
241         versiontracker.com [auto]
242         hitsquad.com [auto]
243         http://www.svgx.org
244         https://savannah.gnu.org/news/submit.php?group_id=1673  @c => planet.gnu.org
245
246
247 @node Release extra notes
248 @section Release extra notes
249
250 If releasing stable/2.12, then:
251
252 - apply doc patch: patches/rsync-lily.patch  (or something like
253   that)
254
255 - change infodir in gub/specs/lilypond-doc.py from "lilypond.info"
256   to "lilypond-web.info"
257
258
259 GENERAL STUFF TO BE MOVED ELSEWHERE
260
261 Regenerating regtests (if the lilypond-book naming has changed):
262
263 - git checkout release/lilypond-X.Y.Z-A
264
265 - take lilypond-book and any related makefile updates from the
266   latest git.
267
268 - configure; make; make test
269
270 - tar -cjf lilypond-X.Y.Z-A.test-output.tar.bz2
271   input/regression/out-test/
272
273 - mv lilypond-X.Y.Z-A.test-output.tar.bz2 ../gub/regtests/
274
275 - cd ../gub/regtests/
276
277 - make lilypond
278
279
280
281 VERSION-SPECIFIC MACROS
282
283 - made with scripts/build/create-version-itexi.py
284
285 - used extensively in the WEBSITE_ONLY_BUILD version of the
286   website (made with website.make, and used on lilypond.org)
287
288 - not (?) used in the main docs?
289
290 - FIXME: the numbers in VERSION: MINOR should be 1 more than the
291   last release, VERSION_DEVEL should be the last *online* release.
292
293
294 LANGUAGE LISTS
295
296 - a translator can ask for an official lilypond-xy mailing list
297   once they've finished all "priority 1" translation items.
298
299
300 UPDATING A RELEASE ( x.y.z-a, where a>1 )
301
302 really tentative instructions, almost certainly can be done better
303
304 1. change the VERSION back to release you want.  push change.
305 (hopefully you'll have forgotten to update it when you made your
306 last release)
307
308 2. make sure that there aren't any lilypond files floating around
309 in target/  (like usr/bin/lilypond).
310
311 3. build the specific package(s) you want, i.e.
312
313 bin/gub mingw::lilypond-installer
314 make LILYPOND_BRANCH=stable/2.12 -f lilypond.make doc
315 bin/gub --platform=darwin-x86 'git://git.sv.gnu.org/lilypond-doc.git?branch=stable/2.12'
316
317 4.  manually upload them.  good luck figuring out the rsync
318 command(s).  Hints are in test-lily/
319
320
321 MAKING A RELEASE -- NEW INFO
322
323 (wow, I really need to stop being so messy here.  Will clean it up
324 after 2.13.11; I need a chance to test these instructions)
325
326 1. switch to the release branch:
327   git checkout release/unstable
328
329 1b. get latest changes
330   git merge origin
331
332 2. make a release announcement by editing:
333   Documentation/web/news-front.itexi
334   Documentation/web/news.itexi
335 (moving the oldest news item to news-old.itexi)
336
337 3. upload:
338   git push release/unstable
339
340 4. make GUB as "normal"
341   make LILYPOND_BRANCH=release/unstable lilypond
342 (if this works, make it the default for GUB)
343
344 5. upload git, etc.
345
346 6. switch back to master and get the updated news:
347   git checkout master
348   git merge release/unstable
349
350 7. update VERSION, commit, push.
351   VERSION = what you just did +0.0.1
352   DEVEL_VERSION = what you just did (i.e. is now online)
353   STABLE_VERSION = what's online
354
355
356 8. (for now)  manually upload
357   Documentation/pictures/out-www/
358   Documentation/web/ly-examples/out-www/
359 to $HOME/media/pictures .../ly-examples on lilypond.org
360
361