Sign in Join
Wiki copytemporary

Lazarus release engineering: what changed

Revision 2 to 3. 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
55### Major Release
66
77- Decide on new release
88 - Check internally with the team
99 - Decide on approx Date for first RC (date may change). This may be optional.
1010- Prepare
1111 - Create fixes branch in SVN
1212 - Create fixes page on wiki
1313- Announce
1414 - Special announcement for translators.
1515 - Public announcement with approx RC date (if available).
1616
1717### For each Release Candidate
1818
1919- Between 1 and 2 weeks before RC is due
2020 - Check internally with the team
2121 - Public reminder/announcement that RC is due.
2222 - If needed: Reschedule/Delay
2323- Publish the Release Candidate
2424 - Tag RC in SVN
2525 - Build and upload
2626 - Public announcement of RC
2727
2828Typical 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.
2929
3030### For the Release
3131
3232- At least 2 weeks before Release
3333 - Check internally with the team
3434 - Public reminder/announcement that Release is due. No more RC planned.
3535 - Repeat Special announcement for translators.
3636- 1 week before Release - Depending on feedback (the team should have 3 or 4 days time to discuss this):
3737 - - keep decision to release
3838 - move date of release
3939 - schedule another RC
4040 - 3 to 5 days later: Public announcement of above decision, if a change to the plan was made.
4141- Make the Release
4242 - Tag RC in SVN
4343 - Build and upload
4444 - Public announcement of Release
4545
4646### Minor Release
4747
4848- Decide on new Release (Day: approx -4 / Duration 3-4 days)
4949 - Check internally with the team (3 to 4 days)
5050 - Release Date will be 2 weeks from announcement (1 week for community feedback)
5151- Prepare
5252 - Update fixes page on wiki (New section "Fixes for ..." next release
5353
5454- Announce upcoming Release (Day: 0 / Duration 7-8 days)
5555 - Special announcement for translators.
5656 - Public announcement with approx date.
5757 - Mail
5858 - Forum
5959
6060
6161Ask for
6262
6363- new regressions
6464- missing merges
6565
6666Community has about 1 week to respond. Urgent matters can still be reported during "approve" phase.
6767
6868Depending on feedback received: reschedule and if needed re-announce.
6969
7070#### Approve Release (Start at day: 7 to 9 / Duration 3/4 days)
7171
7272- Check internally with the team (3 to 4 days)
7373
7474Depending on feedback received: reschedule and if needed re-announce.
7575
7676#### Prepare Release (Start at day: 10 to 12 / Duration 3/4 days)
7777
7878- TAG SVN
7979- Build docs =\> update binaries svn
8080- Start building
8181- Build Release binaries
8282 - Test
8383- Upload (staged)
8484
8585At the same time:
8686
8787- Update mantis
8888- Collect checksums and commit to web-page svn
8989 - Optional: Update webpage to contain checksums
9090- Update web-page svn with new download links (to be published *after* release)
9191
9292#### Release (At day 14 to 16)
9393
9494- Make files public on Sourceforge (un-stage)
9595 - Set files as current release
9696
9797- Public announcement of Release
9898 - Mail
9999 - Forum
100100 - Twitter
101101 - Sourceforge news
102102
103103- Update web-page (Download-links / Checksums)
104104
105105## Merging fixes
106106
107107Team members will add any revision that should be merged to the "fixes branch" page (see "Related Pages").
108108
109109User can contact Team members
110110
111111- on the forum
112112- on the mail list
113113- on open & assigned mantis reports
114114
115115to request revisions to be added.
116116
117117## Other Items
118118
119119In addition to the items on the checklist:
120120
121121- create new targets on Mantis, with each RC, and for the Release
122122- Publish checksums on webpage
123123- Update links on webpage
124124- Updating of help files
125125- Announcements for Translators
126126
127127TODO: Decide on channels for public feedback on:
128128
129129- Open regressions
130130- Missing merges
131131
132132## Checklist (Suggestions)
133133
134134Please add suggestions here. The editing of the Checklist above should be reserved to the team. Thanks.
135135
136136## How to merge
137137
138138The 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.
139139
140140- TODO: Maybe this information should be put in a separate page.
141141
142142[[SVN Migration|SVN_Migration#Merge_with_plain_svn]]
143143
144144### Using TortoiseSVN
145145
146146As noted in the link above using TortoiseSVN is more or less self explaining.
147147
148148- TODO: add some screen shots.
149149
150150When committing, in the recent messages a nice commit message is available.
151151
152152Tested with TortoiseSVN 1.7.6, SVN 1.7.4.
153153
154154### Show list of revision that can be merged
155155
156156In the lazarus fixes_1_0 directory do:
157157
158-`svn mergeinfo ^/trunk --show-revs eligible`
158+```text
159+svn mergeinfo ^/trunk --show-revs eligible
160+```
159161
160162Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:
161163
162-`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`
164+```text
165+svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible
166+```
163167
164168### Show list of revision that have been merged
165169
166170In the lazarus fixes_1_0 directory do:
167171
168-`svn mergeinfo ^/trunk --show-revs merged`
172+```text
173+svn mergeinfo ^/trunk --show-revs merged
174+```
169175
170176### Merging revisions from trunk
171177
172178To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:
173179
174-` svn merge -c 36506,36510 ^/trunk`
180+```text
181+ svn merge -c 36506,36510 ^/trunk
182+```
175183
176184To generate a commit log message, use:
177185
178-`svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt`
186+```text
187+svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt
188+```
179189
180190Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:
181191
182-`Merged revision 36506,36510 from /trunk.`
192+```text
193+Merged revision 36506,36510 from /trunk.
194+```
183195
184196Commit this with:
185197
186-`svn commit -F svnmerge-commit-message.txt`
198+```text
199+svn commit -F svnmerge-commit-message.txt
200+```
187201
188202### Blocking a revision to be merged
189203
190204Sometimes 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:
191205
192-`svn merge -c 36507 --record-only ^/trunk`
206+```text
207+svn merge -c 36507 --record-only ^/trunk
208+```
193209
194210Then you can create a log message with:
195211
196-`svn log ^/trunk -c 36507 > svnmerge-commit-message.txt`
212+```text
213+svn log ^/trunk -c 36507 > svnmerge-commit-message.txt
214+```
197215
198216Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:
199217
200-`Blocked revision 36507 from /trunk`
218+```text
219+Blocked revision 36507 from /trunk
220+```
201221
202222Then commit this change:
203223
204-`svn commit -F svnmerge-commit-message.txt`
224+```text
225+svn commit -F svnmerge-commit-message.txt
226+```
205227
206228## Previous releases
207229
208230- [[Lazarus 0.9.30 todo]]
209231- [[Lazarus 0.9.28 todo]]
210232- [[Detailed Lazarus 0.9.22 todo|Lazarus 0.9.22 todo]]
211233
212234- [[Lazarus 0.9.30.2 release plan]]
213235- [[Lazarus 0.9.28.2 release plan]]
214236
215237## See also
216238
217239- [[Detailed Lazarus release template todo]]
218240
219241## Related pages
220242
221243---
222244*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).*
223245Category: Development
224246Category: Lazarus
225247Category: Release engineering
226248Category: SOPs

Back to history