Sign in Join
Wiki copytemporary

Lazarus release engineering: what changed

Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.

OldNewLine
11> **Note:** This page is still work in progress. For feedback please use our mailing list.
22
33## Checklist
44
5-<table width="100%">
6-
7-<tr valign="top">
8-
9-<td style="min-width:40%">
10-
115### Major Release
126
137- Decide on new release
148 - Check internally with the team
159 - Decide on approx Date for first RC (date may change). This may be optional.
1610- Prepare
1711 - Create fixes branch in SVN
1812 - Create fixes page on wiki
1913- Announce
20- - <u>Special announcement</u> for translators.
21- - <u>Public announcement</u> with approx RC date (if available).
14+ - Special announcement for translators.
15+ - Public announcement with approx RC date (if available).
2216
2317### For each Release Candidate
2418
2519- Between 1 and 2 weeks before RC is due
2620 - Check internally with the team
27- - <u>Public reminder/announcement</u> that RC is due.
21+ - Public reminder/announcement that RC is due.
2822 - If needed: Reschedule/Delay
2923- Publish the Release Candidate
3024 - Tag RC in SVN
3125 - Build and upload
32- - <u>Public announcement</u> of RC
26+ - Public announcement of RC
3327
3428Typical life time of an RC can be expected to be between 3 and 6 weeks. But in the end will be decided at the discretion of the team.
3529
3630### For the Release
3731
3832- At least 2 weeks before Release
3933 - Check internally with the team
4034 - Public reminder/announcement that Release is due. No more RC planned.
41- - Repeat <u>Special announcement</u> for translators.
35+ - Repeat Special announcement for translators.
4236- 1 week before Release - Depending on feedback (the team should have 3 or 4 days time to discuss this):
4337 - - keep decision to release
4438 - move date of release
4539 - schedule another RC
46- - 3 to 5 days later: <u>Public announcement</u> of above decision, if a change to the plan was made.
40+ - 3 to 5 days later: Public announcement of above decision, if a change to the plan was made.
4741- Make the Release
4842 - Tag RC in SVN
4943 - Build and upload
50- - <u>Public announcement</u> of Release
51-
52-</td>
53-
54-<td style="min-width:40%">
44+ - Public announcement of Release
5545
5646### Minor Release
5747
5848- Decide on new Release (Day: approx -4 / Duration 3-4 days)
5949 - Check internally with the team (3 to 4 days)
6050 - Release Date will be 2 weeks from announcement (1 week for community feedback)
6151- Prepare
6252 - Update fixes page on wiki (New section "Fixes for ..." next release
6353
6454- Announce upcoming Release (Day: 0 / Duration 7-8 days)
65- - <u>Special announcement</u> for translators.
66- - <u>Public announcement</u> with approx date.
55+ - Special announcement for translators.
56+ - Public announcement with approx date.
6757 - Mail
6858 - Forum
6959
7060
7161Ask for
7262
7363- new regressions
7464- missing merges
7565
7666Community has about 1 week to respond. Urgent matters can still be reported during "approve" phase.
7767
7868Depending on feedback received: reschedule and if needed re-announce.
7969
8070#### Approve Release (Start at day: 7 to 9 / Duration 3/4 days)
8171
8272- Check internally with the team (3 to 4 days)
8373
8474Depending on feedback received: reschedule and if needed re-announce.
8575
8676#### Prepare Release (Start at day: 10 to 12 / Duration 3/4 days)
8777
8878- TAG SVN
8979- Build docs =\> update binaries svn
9080- Start building
9181- Build Release binaries
9282 - Test
9383- Upload (staged)
9484
9585At the same time:
9686
9787- Update mantis
9888- Collect checksums and commit to web-page svn
9989 - Optional: Update webpage to contain checksums
10090- Update web-page svn with new download links (to be published *after* release)
10191
10292#### Release (At day 14 to 16)
10393
10494- Make files public on Sourceforge (un-stage)
10595 - Set files as current release
10696
107-- <u>Public announcement</u> of Release
97+- Public announcement of Release
10898 - Mail
10999 - Forum
110100 - Twitter
111101 - Sourceforge news
112102
113103- Update web-page (Download-links / Checksums)
114-
115-</td>
116-
117-</tr>
118-
119-</table>
120104
121105## Merging fixes
122106
123107Team members will add any revision that should be merged to the "fixes branch" page (see "Related Pages").
124108
125109User can contact Team members
126110
127111- on the forum
128112- on the mail list
129113- on open & assigned mantis reports
130114
131115to request revisions to be added.
132116
133117## Other Items
134118
135119In addition to the items on the checklist:
136120
137121- create new targets on Mantis, with each RC, and for the Release
138122- Publish checksums on webpage
139123- Update links on webpage
140124- Updating of help files
141125- Announcements for Translators
142126
143127TODO: Decide on channels for public feedback on:
144128
145129- Open regressions
146130- Missing merges
147131
148132## Checklist (Suggestions)
149133
150134Please add suggestions here. The editing of the Checklist above should be reserved to the team. Thanks.
151135
152136## How to merge
153137
154138The lazarus developers have decided to use the native svn merge for this branch. Other branches used the svnmerge.py script to manage the revisions to be merged.
155139
156140- TODO: Maybe this information should be put in a separate page.
157141
158142[[SVN Migration|SVN_Migration#Merge_with_plain_svn]]
159143
160144### Using TortoiseSVN
161145
162146As noted in the link above using TortoiseSVN is more or less self explaining.
163147
164148- TODO: add some screen shots.
165149
166150When committing, in the recent messages a nice commit message is available.
167151
168152Tested with TortoiseSVN 1.7.6, SVN 1.7.4.
169153
170154### Show list of revision that can be merged
171155
172156In the lazarus fixes_1_0 directory do:
173157
174158`svn mergeinfo ^/trunk --show-revs eligible`
175159
176160Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:
177161
178162`svn mergeinfo ^/trunk `[`http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0`](http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0)` --show-revs eligible`
179163
180164### Show list of revision that have been merged
181165
182166In the lazarus fixes_1_0 directory do:
183167
184168`svn mergeinfo ^/trunk --show-revs merged`
185169
186170### Merging revisions from trunk
187171
188172To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:
189173
190174` svn merge -c 36506,36510 ^/trunk`
191175
192176To generate a commit log message, use:
193177
194178`svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt`
195179
196180Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:
197181
198182`Merged revision 36506,36510 from /trunk.`
199183
200184Commit this with:
201185
202186`svn commit -F svnmerge-commit-message.txt`
203187
204188### Blocking a revision to be merged
205189
206190Sometimes you want to block a revision to be merged, i.e. you want to make sure that this revision is never merged to the fixes branch, for example, because it contains a new feature or it contains a version number change not applicable to the fixes branch, but only to trunk. To block revision 36507, use:
207191
208192`svn merge -c 36507 --record-only ^/trunk`
209193
210194Then you can create a log message with:
211195
212196`svn log ^/trunk -c 36507 > svnmerge-commit-message.txt`
213197
214198Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:
215199
216200`Blocked revision 36507 from /trunk`
217201
218202Then commit this change:
219203
220204`svn commit -F svnmerge-commit-message.txt`
221205
222206## Previous releases
223207
224208- [[Lazarus 0.9.30 todo]]
225209- [[Lazarus 0.9.28 todo]]
226210- [[Detailed Lazarus 0.9.22 todo|Lazarus 0.9.22 todo]]
227211
228212- [[Lazarus 0.9.30.2 release plan]]
229213- [[Lazarus 0.9.28.2 release plan]]
230214
231215## See also
232216
233217- [[Detailed Lazarus release template todo]]
234218
235219## Related pages
236220
237221---
238222*From the Free Pascal wiki, page "Lazarus release engineering", as it stood on 2022-08-16 after a change by Skalogryz, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
239223Category: Development
240224Category: Lazarus
241225Category: Release engineering
242226Category: SOPs

Back to history