]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/contributor/release-work.itexi
Doc: Add robots.txt item to Major release checklist.
[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 * 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 @enumerate
81
82 @item Add a news item to @file{Documentation/web/news-front.itexi}
83
84 @item Build release on GUB.
85
86 @item Check the regtest comparison in @file{uploads/webtest/} for
87 any unintentional breakage.
88
89 @item Check if the mingw build contains lilypad.exe; when you find
90 that it doesn't, rebuild @code{mingw::lilypond-installer}.  Repeat
91 as necessary.
92
93 @item If any work was done on GUB since the last release, upload
94 binaries to a temporary location, ask for feedback, and wait a day
95 or two in case there's any major problems.
96
97 @item Upload release from GUB.
98
99 @item Update @file{VERSION} in lilypond git.
100
101 @item Wait a few hours for the website to update.
102
103 @item Email release notice to @code{info-lilypond}
104
105 @end enumerate
106
107
108 @node Major release checklist
109 @section Major release checklist
110
111 A @qq{major release} means an update of @code{x} in @code{2.x.0}.
112
113 Before release:
114
115 * write release notes. note: stringent size requirements for
116  various websites, so be brief.
117
118 * write preface section for manual.
119
120 * submit pots for translation : send url of tarball to
121 translation@@iro.umontreal.ca, mentioning lilypond-VERSION.pot
122
123 * Check reg test
124
125 * Check all 2ly scripts.
126
127 * Run convert-ly on all files, bump parser minimum version.
128
129 * Make FTP directories on lilypond.org
130
131 * website:
132   - Make new table in download.html
133
134   - add to documentation list
135
136   - revise examples tour.html/howto.html
137
138   - add to front-page quick links
139
140   - change all links to the stable documentation
141
142   - doc auto redirects  to v2.LATEST-STABLE
143
144   - add these two lines to http://www.lilypond.org/robots.txt:
145
146 @example
147 Disallow: /doc/v2.PREVIOUS-STABLE/
148 Disallow: /doc/v2.CURRENT-DEVELOPMENT/
149 @end example
150
151 News:
152
153         comp.music.research
154         comp.os.linux.announce
155
156         comp.text.tex
157         rec.music.compose
158
159 Mail:
160
161         info-lilypond@@gnu.org
162
163 linux-audio-announce@@lists.linuxaudio.org
164 linux-audio-user@@lists.linuxaudio.org
165 linux-audio-dev@@lists.linuxaudio.org
166
167         tex-music@@icking-music-archive.org
168
169    --- non-existant?
170         abcusers@@blackmill.net
171
172         rosegarden-user@@lists.sourceforge.net
173         info-gnu@@gnu.org
174         noteedit-user@@berlios.de
175
176         gmane.comp.audio.fomus.devel
177         gmane.linux.audio.users
178         gmane.linux.audio.announce
179         gmane.comp.audio.rosegarden.devel
180
181 Web:
182
183         lilypond.org
184         freshmeat.net
185         linuxfr.com
186         http://www.apple.com/downloads
187         harmony-central.com (news@@harmony-central.com)
188         versiontracker.com [auto]
189         hitsquad.com [auto]
190         http://www.svgx.org
191         https://savannah.gnu.org/news/submit.php?group_id=1673  @c => planet.gnu.org
192
193
194 @node Making a release
195 @section Making a release
196
197 @subheading Technical notes
198
199 To build GUB:
200
201 @itemize
202
203 @item 
204 Run the following (from the gub/ dir):
205
206 @example
207 make lilypond
208 @end example
209
210 @item
211 If you do not have the previous release test-output tarball, download
212 it and put it in @code{regtests/}
213
214 @end itemize
215
216 To upload:
217
218 @itemize
219
220 @item If you're not user @code{graham} on the webserver, remove
221 the "t" from the rsync command in
222 @file{test-lily/rsync-lily-doc.py}
223
224 @item Probably run the following command.  Look the output of
225 @code{make lilypond} in case it's different.
226
227 @example
228 make lilypond-upload LILYPOND_BRANCH=master LILYPOND_REPO_URL=git://git.sv.gnu.org/lilypond.git
229 @end example
230
231 @end itemize
232
233