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 @code{t} from the rsync command in:
132 test-lily/rsync-lily-doc.py
133 test-lily/rsync-test.py
136 @code{graham} owns v2.13; @code{han-wen} owns v2.12.
138 @item Upload GUB by running:
141 make lilypond-upload \
142 LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git \
143 LILYPOND_BRANCH=release/unstable
150 make lilypond-upload \
151 LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git \
152 LILYPOND_BRANCH=stable/2.12
158 @subheading Post release
162 @item Switch back to master and get the updated news:
166 git merge release/unstable
169 @item Update @file{VERSION} in lilypond git and upload changes:
177 VERSION = what you just did +0.0.1
180 DEVEL_VERSION = what you just did (i.e. is now online)
183 STABLE_VERSION = what's online (probably no change here)
188 git commit -m "Release: bump version." VERSION
193 @item (for now) do a @code{make doc} and manually upload:
196 ### upload-lily-web-media.sh
198 BUILD_DIR=$HOME/src/build-lilypond
200 PICS=$BUILD_DIR/Documentation/pictures/out-www/
201 EXAMPLES=$BUILD_DIR/Documentation/web/ly-examples/out-www/
204 rsync -a $PICS graham@@lilypond.org:media/pictures
205 rsync -a $EXAMPLES graham@@lilypond.org:media/ly-examples
208 @item Wait a few hours for the website to update.
210 @item Email release notice to @code{info-lilypond}
216 @node Major release checklist
217 @section Major release checklist
219 A @qq{major release} means an update of @code{x} in @code{2.x.0}.
221 @subheading Main requirements
223 This is the current official guidelines.
227 0 Critical issues for two weeks (14 days) after the latest release
233 @subheading Potential requirements
235 These might become official guidelines in the future.
242 Check all 2ly scripts
245 Check for emergencies the docs:
248 grep FIXME --exclude "misc/*" --exclude "*GNUmakefile" \
249 --exclude "snippets/*" ????*/*
253 Check for altered regtests, and document as necessary. (update
254 numbers in the following command as appropriate)
257 git diff -u -r release/2.12.0-1 -r release/2.13.13-1 input/regression/
263 @subheading Housekeeping requirements
269 write release notes. note: stringent size requirements for
270 various websites, so be brief.
273 Run convert-ly on all files, bump parser minimum version.
276 Make FTP directories on lilypond.org
283 make a link from the old unstable to the next stable in
284 lilypond.org's /doc/ dir. Keep all previous unstable->stable doc
287 Also, make the old docs self-contained -- if there's a redirect in
288 /doc/v2.12/Documentation/index.html , replace it with the
289 index.html.old-2.12 files.
291 The post-2.13 docs will need another way of handling the
292 self-containment. It won't be hard to whip up a python script
293 that changes the link to ../../../../manuals.html to
294 ../website/manuals.html , but it's still a 30-minute task that
295 needs to be done before 2.16.
298 doc auto redirects to v2.LATEST-STABLE
301 add these two lines to http://www.lilypond.org/robots.txt:
304 Disallow: /doc/v2.PREVIOUS-STABLE/
305 Disallow: /doc/v2.CURRENT-DEVELOPMENT/
316 submit pots for translation: send url of tarball to
317 translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
320 update links to distros providing lilypond packages? link in:
321 @file{Documentation@/web@/download@/.itexi}
323 This has nothing to do with the release, but it's a "periodic
324 maintenance" task that might make sense to include with releases.
327 Send announcements to...
333 comp.os.linux.announce
342 info-lilypond@@gnu.org
344 linux-audio-announce@@lists.linuxaudio.org
345 linux-audio-user@@lists.linuxaudio.org
346 linux-audio-dev@@lists.linuxaudio.org
348 tex-music@@icking-music-archive.org
351 abcusers@@blackmill.net
353 rosegarden-user@@lists.sourceforge.net
355 noteedit-user@@berlios.de
357 gmane.comp.audio.fomus.devel
358 gmane.linux.audio.users
359 gmane.linux.audio.announce
360 gmane.comp.audio.rosegarden.devel
369 http://www.apple.com/downloads
370 harmony-central.com (news@@harmony-central.com)
371 versiontracker.com [auto]
374 https://savannah.gnu.org/news/submit.php?group_id=1673 @c => planet.gnu.org
380 @node Release extra notes
381 @section Release extra notes
383 @subsubheading Regenerating regression tests
385 Regenerating regtests (if the lilypond-book naming has changed):
390 git checkout release/lilypond-X.Y.Z-A
393 take lilypond-book and any related makefile updates from the
397 configure; make; make test
400 tar -cjf lilypond-X.Y.Z-A.test-output.tar.bz2 input/regression/out-test/
403 mv lilypond-X.Y.Z-A.test-output.tar.bz2 ../gub/regtests/
414 @subsubheading stable/2.12
416 If releasing stable/2.12, then:
421 apply doc patch: patches/rsync-lily.patch (or something like
425 change infodir in gub/specs/lilypond-doc.py from "lilypond.info"
426 to "lilypond-web.info"
429 @subsubheading Updating a release (changing a in x.y.z-a)
431 Really tentative instructions, almost certainly can be done
437 change the VERSION back to release you want. push change.
438 (hopefully you'll have forgotten to update it when you made your
442 make sure that there aren't any lilypond files floating around in
443 target/ (like usr/bin/lilypond).
446 build the specific package(s) you want, i.e.
449 bin/gub mingw::lilypond-installer
450 make LILYPOND_BRANCH=stable/2.12 -f lilypond.make doc
451 bin/gub --platform=darwin-x86 'git://git.sv.gnu.org/lilypond-doc.git?branch=stable/2.12'
456 build everything with the normal "make lilypond", then (maybe)
457 manually delete stuff you don't want to upload.
460 manually upload them. good luck figuring out the rsync
461 command(s). Hints are in test-lily/
465 run the normal lilypond-upload command, and (maybe) manually
466 delete stuff you didn't want to upload from the server.