Lazarus 4.0 fixes branch

This page is used internally by the Lazarus team.
The data in this page does not represent the full extent of what is included in the fixes branch/versions
For a list of what was merged to the Fixes branch please visit:
Open issues listed on the linked milestones are loosely targeted for the indicated version. Their final inclusion depends on the available man-power and/or contributions. Release may or may not be deferred for any non resolved issue.
This page contains the revisions to be merged from main branch to the Lazarus 4.0 fixes branch.
Release notes can be found here.
Internal Merge requests for 4.0
Open Merge requests
Submitted by others / waiting for sign off by team member
Submitted by developer / committer and waiting for testing (do not commit yet)
Merge conflicts
Submitted by developer / committer, tested, waiting to be merged
- 43a9af05 Win32: implement TOpenOptionEx.ofExNoPlacesBar for pre-Vista style dialog. Issue #41301.
- 1c7ecdbb Win32: fix crash if CoCreateInstance fails (Vista IFileDialog). Part of Issue #40298.
- 3cc3475c TFileListBox: fix not adding filenames wich only differ in case, when the control doesn't have a handle yet (i.e. with Directry set in OI). Issue #41441
Processed Merge requests
Roadmap to 4.0
The release process will consist of the following steps.
- Creation of 4.0 fixes branch. (Done ?)
This is the start of the stabilization process before a new Lazarus release.
- Release of 4.0RC1 (Done 27 October 2024)
This will be the first Release Candidate. We would like to urge all users to test this version. The testing period is scheduled to last 2 weeks.
- Release of 4.0RC2 (Done 09 January 2024)
The testing period is scheduled to last 2 weeks.
- Release of 4.0RC3 (?)
The testing period is scheduled to last 2 weeks.
- Release of Lazarus 3.0
Users can download the new stable version.
Tests
(Text below may ot yet be fully correct)
- Menu item exists
- Clear pcp directory and start IDE, a new project application with a form should be visible
- Double click on form - a FormCreate event should be created
- Check View / IDE internals / What needs building - no package should need building, only the project
- Restart the IDE - there should be no warning about upgrading
- Install the package cody, after restart the component palette should show the component TCodyTreeView
- Run Unit-Tests from menu "Tools"--> "Example Projects". Choose project "runtestsgui.lpi" and run it. It will do about 390 unittests.
Tagging release
- GIT merge requests of this page
- set version in main branch:
- docs/html/locallclfooter.xml
- all xml files
- set version in fixes_4_0 branch:
- open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog ... for final
- lazarus/ide/packages/ideconfig/version.inc 4.0RC2 for RC2, no spaces! (4.0 for final release)
- lazarus/components/lazutils/lazversion.pas 4.0.0.1 for RC2, 4.0.0.2 for RC2, ... 4.0.0.4 for final
- lclbase.lpk
- lcl.lpk
- lazarus/lazarus.app/Contents/Info.plist
- CFBundleShortVersionString "4.0.0"
- CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release
- tools/install/linux/environmentoptions.xml same as version.inc
- tools/install/linux/environmentoptions-arm64.xml same as version.inc
- tools/install/win/environmentoptions.xml same as version.inc
- tools/install/macos/environmentoptions.xml same as version.inc
- check lpl files by running "./tools/lplupdate -c" and do the git mv commands
- Update makefiles: Make sure Additions and Overrides are empty and run
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles
- check that ide/lazarus.lpi and ide/lazarus.res have changed:
git status
- git add .
- git commit -m 'set fixes version to 4.0RC2'
- git push origin
- Tag fixes_4_0 branch in gitlab to lazarus_4_0_RC2 (or lazarus_4_0 for final release)
- https://gitlab.com/freepascal.org/lazarus/lazarus/-/tags
- Use "create from" fixes_4_0
- For a non RC release:
- Set version to next version in git main
- Create new section on this page and move waiting merge requests to the new section
- upload packages
- update checksums: https://gitlab.com/freepascal.org/lazarus/website site/pages/checksums.html
- every 5min a preview can be viewed here: https://test.lazarus-ide.org/index.php?page=checksums
- Mail to Marc to update website from svn