Sign in Join
Wiki copytemporary

Lazarus release engineering

Note: This page is still work in progress. For feedback please use our mailing list.

Checklist

Major Release

For each Release Candidate

Typical 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.

For the Release

Minor Release

Ask for

Community has about 1 week to respond. Urgent matters can still be reported during "approve" phase.

Depending on feedback received: reschedule and if needed re-announce.

Approve Release (Start at day: 7 to 9 / Duration 3/4 days)

Depending on feedback received: reschedule and if needed re-announce.

Prepare Release (Start at day: 10 to 12 / Duration 3/4 days)

At the same time:

Release (At day 14 to 16)

Merging fixes

Team members will add any revision that should be merged to the "fixes branch" page (see "Related Pages").

User can contact Team members

to request revisions to be added.

Other Items

In addition to the items on the checklist:

TODO: Decide on channels for public feedback on:

Checklist (Suggestions)

Please add suggestions here. The editing of the Checklist above should be reserved to the team. Thanks.

How to merge

The 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.

SVN_Migration#Merge_with_plain_svn

Using TortoiseSVN

As noted in the link above using TortoiseSVN is more or less self explaining.

When committing, in the recent messages a nice commit message is available.

Tested with TortoiseSVN 1.7.6, SVN 1.7.4.

Show list of revision that can be merged

In the lazarus fixes_1_0 directory do:

text
svn mergeinfo ^/trunk --show-revs eligible

Or if you don't have a fixes directory checked out, you can pass the URL path of the fixes branch:

text
svn mergeinfo ^/trunk http://svn.freepascal.org/svn/lazarus/branches/fixes_1_0 --show-revs eligible

Show list of revision that have been merged

In the lazarus fixes_1_0 directory do:

text
svn mergeinfo ^/trunk --show-revs merged

Merging revisions from trunk

To merge one or more revisions from trunk, use the svn merge command. For example to merge revision 36506 and 36510 use:

text
 svn merge -c 36506,36510 ^/trunk

To generate a commit log message, use:

text
svn log ^/trunk -c 36506,36510 > svnmerge-commit-message.txt

Edit svnmerge-commit-message.txt with your favorite text editor and add a first line like:

text
Merged revision 36506,36510 from /trunk.

Commit this with:

text
svn commit -F svnmerge-commit-message.txt

Blocking a revision to be merged

Sometimes 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:

text
svn merge -c 36507 --record-only ^/trunk

Then you can create a log message with:

text
svn log ^/trunk -c 36507 > svnmerge-commit-message.txt

Edit svnmerge-commit-message.txt with your favorite text editor and add first line like:

text
Blocked revision 36507 from /trunk

Then commit this change:

text
svn commit -F svnmerge-commit-message.txt

Previous releases

See also

Related pages


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.

Revision 3, last changed by WikiArchive .

Edited on wiki.freepascal.org by 3 people, 2019–2022

From the official wiki's backup of 26 May 2024: who edited this page there, and when. Edits made there after that date were not recorded, and the earlier versions are not shown here; the main page says why.

WhenWhoWhat changed
MartinCreated page
MartinThe Lazarus Release engineering process
MartinChecklist
MartinChecklist
MartinThe Lazarus Release engineering process
MartinAnnounce upcoming Release (Day: 0 / Durance 7-8 days)
MartinMinor Release
MartinRelease (At day 14 to 16)
MartinPrepare Release (Start at day: 10 to 12 / Duration 3/4 days)
TrevPrevious releases: + See also: New sections (minor)
TrevCategorised page (minor)
SkalogryzRelated pages (minor)
SkalogryzRelated pages (minor)
SkalogryzRelated pages (minor)

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.