1 @c -*- coding: utf-8; mode: texinfo; -*-
7 * Minor release checklist::
8 * Major release checklist::
9 * Release extra notes::
13 @node Development phases
14 @section Development phases
16 There are 2 states of development on @code{master}:
20 @item @strong{Normal development}:
23 @item @strong{Build-frozen}:
24 Do not require any additional or updated libraries or make
25 non-trivial changes to the build process. Any such patch (or
26 branch) may not be merged with master during this period.
28 This should occur approximately 1 month before any alpha version
29 of the next stable release, and ends when the next unstable branch
35 After announcing a beta release, branch @code{stable/2.x}. There
36 are 2 states of development for this branch:
39 @item @strong{Normal maintenance}:
40 The following patches @strong{MAY NOT} be merged with this branch:
43 @item Any change to the input syntax. If a file compiled with a
44 previous @code{2.x} (beta) version, then it must compile in the
47 Exception: any bugfix to a Critical issue.
49 @item New features with new syntax @emph{may be committed},
50 although once committed that syntax cannot change during the
51 remainder of the stable phase.
53 @item Any change to the build dependencies (including programming
54 libraries, documentation process programs, or python modules used
55 in the buildscripts). If a contributor could compile a previous
56 lilypond @code{2.x}, then he must be able to compile the new
61 @item @strong{Release prep}:
62 Only translation updates and important bugfixes are allowed.
67 @node Minor release checklist
68 @section Minor release checklist
70 A @qq{minor release} means an update of @code{y} in @code{2.x.y}.
72 @subheading Pre-release
77 Switch to the release branch, get changes, prep release
81 git checkout release/unstable
83 vi Documentation/web/news-front.itexi Documentation/web/news.itexi
87 Commit, push, switch back to master:
90 git commit -m "Release: update news." Documentation/web/
95 If you do not have the previous release test-output tarball, download
96 it and put it in @code{regtests/}
98 @item Build release on GUB by running:
101 make LILYPOND_BRANCH=release/unstable lilypond
108 make LILYPOND_BRANCH=stable/2.12 lilypond
111 @item Check the regtest comparison in @file{uploads/@/webtest/} for
112 any unintentional breakage. More info in
113 @ref{Precompiled regression tests}.
115 @item If any work was done on GUB since the last release, upload
116 binaries to a temporary location, ask for feedback, and wait a day
117 or two in case there's any major problems.
119 @warning{Always do this for a stable release.}
124 @subheading Actual release
128 @item If you're not the right user on the webserver, remove the
129 "t" from the rsync command in
130 @file{test@/-lily/@/rsync@/-lily@/-doc@/.py} and
131 @file{test@/-lily/@/rsync@/-test@/.py}
133 @code{graham} owns v2.13; @code{han-wen} owns v2.12.
135 @item Upload GUB by running:
138 make lilypond-upload LILYPOND_BRANCH=release/unstable LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git
145 make lilypond-upload LILYPOND_BRANCH=stable/2.12 LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git
151 @subheading Post release
155 @item Switch back to master and get the updated news:
159 git merge release/unstable
162 @item Update @file{VERSION} in lilypond git and upload changes:
170 VERSION = what you just did +0.0.1
173 DEVEL_VERSION = what you just did (i.e. is now online)
176 STABLE_VERSION = what's online (probably no change here)
181 git commit -m "Release: bump version." VERSION
186 @item (for now) do a @code{make doc} and manually upload:
189 ### upload-lily-web-media.sh
191 BUILD_DIR=$HOME/src/build-lilypond
193 PICS=$BUILD_DIR/Documentation/pictures/out-www/
194 EXAMPLES=$BUILD_DIR/Documentation/web/ly-examples/out-www/
197 rsync -a $PICS graham@@lilypond.org:media/pictures
198 rsync -a $EXAMPLES graham@@lilypond.org:media/ly-examples
201 @item Wait a few hours for the website to update.
203 @item Email release notice to @code{info-lilypond}
209 @node Major release checklist
210 @section Major release checklist
212 A @qq{major release} means an update of @code{x} in @code{2.x.0}.
214 @subheading Main requirements
216 It happens when we have 0 Critical issues for two weeks (14 days)
217 after the latest release candidate.
219 @subheading Housekeeping requirements
225 write release notes. note: stringent size requirements for
226 various websites, so be brief.
229 * write preface section for manual.
232 * submit pots for translation: send url of tarball to
233 translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
239 * Check all 2ly scripts.
242 * Run convert-ly on all files, bump parser minimum version.
245 * update links to distros providing lilypond packages? link in
246 Documentation/web/download.itexi . This has nothing to do with
247 the release, but I'm dumping this here so I'll find it when I
248 reorganize this list later. -gp
251 * Make FTP directories on lilypond.org
255 - Make new table in download.html
257 - add to documentation list
259 - revise examples tour.html/howto.html
261 - add to front-page quick links
263 - change all links to the stable documentation
265 - make a link from the old unstable to the next stable in
266 lilypond.org's /doc/ dir. Keep all previous unstable->stable
269 - doc auto redirects to v2.LATEST-STABLE
271 - add these two lines to http://www.lilypond.org/robots.txt:
274 Disallow: /doc/v2.PREVIOUS-STABLE/
275 Disallow: /doc/v2.CURRENT-DEVELOPMENT/
279 - check for emergencies the docs:
282 grep FIXME --exclude "misc/*" --exclude "*GNUmakefile" \
283 --exclude "snippets/*" ????*/*
287 - check for altered regtests, and document as necessary. (update
291 git diff -u -r release/2.12.0-1 -r release/2.13.13-1 input/regression/
300 comp.os.linux.announce
310 info-lilypond@@gnu.org
312 linux-audio-announce@@lists.linuxaudio.org
313 linux-audio-user@@lists.linuxaudio.org
314 linux-audio-dev@@lists.linuxaudio.org
316 tex-music@@icking-music-archive.org
319 abcusers@@blackmill.net
321 rosegarden-user@@lists.sourceforge.net
323 noteedit-user@@berlios.de
325 gmane.comp.audio.fomus.devel
326 gmane.linux.audio.users
327 gmane.linux.audio.announce
328 gmane.comp.audio.rosegarden.devel
338 http://www.apple.com/downloads
339 harmony-central.com (news@@harmony-central.com)
340 versiontracker.com [auto]
343 https://savannah.gnu.org/news/submit.php?group_id=1673 @c => planet.gnu.org
349 @node Release extra notes
350 @section Release extra notes
352 @subsubheading Regenerating regression tests
354 Regenerating regtests (if the lilypond-book naming has changed):
359 git checkout release/lilypond-X.Y.Z-A
362 take lilypond-book and any related makefile updates from the
366 configure; make; make test
369 tar -cjf lilypond-X.Y.Z-A.test-output.tar.bz2 input/regression/out-test/
372 mv lilypond-X.Y.Z-A.test-output.tar.bz2 ../gub/regtests/
383 @subsubheading stable/2.12
385 If releasing stable/2.12, then:
390 apply doc patch: patches/rsync-lily.patch (or something like
394 change infodir in gub/specs/lilypond-doc.py from "lilypond.info"
395 to "lilypond-web.info"
398 @subsubheading Updating a release (changing a in x.y.z-a)
400 Really tentative instructions, almost certainly can be done
406 change the VERSION back to release you want. push change.
407 (hopefully you'll have forgotten to update it when you made your
411 make sure that there aren't any lilypond files floating around in
412 target/ (like usr/bin/lilypond).
415 build the specific package(s) you want, i.e.
418 bin/gub mingw::lilypond-installer
419 make LILYPOND_BRANCH=stable/2.12 -f lilypond.make doc
420 bin/gub --platform=darwin-x86 'git://git.sv.gnu.org/lilypond-doc.git?branch=stable/2.12'
425 build everything with the normal "make lilypond", then (maybe)
426 manually delete stuff you don't want to upload.
429 manually upload them. good luck figuring out the rsync
430 command(s). Hints are in test-lily/
434 run the normal lilypond-upload command, and (maybe) manually
435 delete stuff you didn't want to upload from the server.