]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/devel/release-work.itexi
lilypond-book robustness: ensure EOL at the end of @verbatim
[lilypond.git] / Documentation / devel / 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 * Making a release::
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 email brief summary to info-lilypond
81
82
83
84 @node Major release checklist
85 @section Major release checklist
86
87 A @qq{major release} means an update of @code{x} in @code{2.x.0}.
88
89 Before release:
90
91 * write release notes. note: stringent size requirements for
92  various websites, so be brief.
93
94 * write preface section for manual.
95
96 * submit pots for translation : send url of tarball to
97 translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
98
99 * Check reg test
100
101 * Check all 2ly scripts.
102
103 * Run convert-ly on all files, bump parser minimum version.
104
105 * Make FTP directories on lilypond.org
106
107 * website:
108   - Make new table in download.html
109
110   - add to documentation list
111
112   - revise examples tour.html/howto.html
113
114   - add to front-page quick links
115
116   - change all links to the stable documentation
117
118   - doc auto redirects  to v2.LATEST-STABLE
119
120 News:
121
122         comp.music.research
123         comp.os.linux.announce
124
125         comp.text.tex
126         rec.music.compose
127
128 Mail:
129
130         info-lilypond@@gnu.org
131
132 linux-audio-announce@@lists.linuxaudio.org
133 linux-audio-user@@lists.linuxaudio.org
134 linux-audio-dev@@lists.linuxaudio.org
135
136         tex-music@@icking-music-archive.org
137
138    --- non-existant?
139         abcusers@@blackmill.net
140
141         rosegarden-user@@lists.sourceforge.net
142         info-gnu@@gnu.org
143         noteedit-user@@berlios.de
144
145         gmane.comp.audio.fomus.devel
146         gmane.linux.audio.users
147         gmane.linux.audio.announce
148         gmane.comp.audio.rosegarden.devel
149
150 Web:
151
152         lilypond.org
153         freshmeat.net
154         linuxfr.com
155         http://www.apple.com/downloads
156         harmony-central.com (news@@harmony-central.com)
157         versiontracker.com [auto]
158         hitsquad.com [auto]
159         http://www.svgx.org
160
161
162
163 @node Making a release
164 @section Making a release
165
166 @subheading Technical notes
167
168 To build GUB:
169
170 @itemize
171
172 @item 
173 Run the following (from the gub/ dir):
174
175 @example
176 make -f lilypond.make update-versions
177 @end example
178
179 @item
180 Download
181 @uref{http://lilypond.org/download/binaries/test-output/lilypond-2.13.0-0.test-output.tar.bz2,lilypond-2.13.0-0.test-output.tar.bz2}
182
183 @item 
184 Copy / move / link it to uploads, but rename it to
185 @file{lilypond-2-13.test-output.tar.bz2}
186
187 @item
188 Run:
189
190 @example
191 make lilypond
192 @end example
193
194 @end itemize
195
196 To upload:
197
198 @itemize
199
200 @item remove the "t" from the rsync command in test-lily/rsync-lily-doc.py
201
202 @item run:
203
204 @example
205 python test-lily/upload.py --branch=master --url git://git.sv.gnu.org/lilypond.git --execute
206 @end example
207
208 @end itemize
209
210
211 @subheading Policy notes
212
213 @itemize
214
215 @item
216 Build with GUB, and check the regtests.
217
218 @item
219 Upload the tarballs and sh scripts.
220
221 @item
222 (if major)
223 Branch MASTER to stable/2.x.
224
225 @item
226 Make announcement.
227
228 @end itemize
229
230