]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/contributor/release-work.itexi
Doc: CG: little unsorted bits.
[lilypond.git] / Documentation / contributor / release-work.itexi
1 @c -*- coding: us-ascii; 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 - configure; make; make test
266
267 - tar -cjf lilypond-X.Y.Z-A.test-output.tar.bz2
268   input/regression/out-test/
269
270 - mv lilypond-X.Y.Z-A.test-output.tar.bz2 ../gub/regtests/
271
272 - cd ../gub/regtests/
273
274 - make lilypond
275
276
277 New contributor idea:
278
279 - tell them to spend 10 minutes on a problem, then give up and ask
280   for help
281
282
283 Latest website:
284
285 - generated hourly on lilypond.org.  Only split-HTML; big-html and
286   pdf are not generated hourly (wait for the next devel release)
287
288
289 VERSION-SPECIFIC MACROS
290
291 - made with scripts/build/create-version-itexi.py
292
293 - used extensively in the WEBSITE_ONLY_BUILD version of the
294   website (made with website.make, and used on lilypond.org)
295
296 - not (?) used in the main docs?
297
298 - FIXME: the numbers in VERSION: MINOR should be 1 more than the
299   last release, VERSION_DEVEL should be the last *online* release.
300
301