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
- 0cb42a65 Dialogs: some more improvements to descriptions of TOpenOptions. Based upon MR !455 by n7800.
- 410911ba37 Docs: LCL/dialogs. Additional updates to TOpenOption topics. Based upon MR !455 by n7800 with corrections.
Processed Merge requests
- 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
- 9f23efb4 Dialogs: fix the description of ofReadOnly and ofHideReadOnly flags.
- 5563082dfc Docs: LCL/dialogs. Updates content in the TOpenOption.ofNoReadOnlyReturn topic. Issue #41563. Depends on 9f23efb4.
- c605b74dab Docs: LCL/dialogs. Adds an omitted word. Depends on 5563082dfc.
- 7e1d786c LCL-Gtk2: Fixed pasting text from Combobox to some other application when selecting/middle-clicking.
- 08454745 LCL-Gtk2: fixed component position issues on bsSingle forms under Xfwm4, issue #41219
- 39116905 IDE: Fix crash in the Treeview Items Editor which allowed trying to open an non-existing file.
- 0d3a623812 Docs: LCL/grids. Updates TCustomGrid.KeyPress topic for changes in 4d4d4060. Issue #41503.
- 162cbbfc LazUtf8: correct a StartCharIndex < 1 in Utf8Copy. Reason: consistent with System.Copy().
- 913b749f LazUtf8: correct a StartCharIndex < 1 in Utf8Insert. Reason: consistent with System.Insert().
- bad60c01 LazUtf8: Fix Utf8Insert for StartCharIndex > Utf8Length(s)+1. Reason: consistent with System.Insert().
- 3a913cf2dd Docs: LazUtils/lazutf8. Updates UTF8Copy and UTF8Insert topics for changes in 162cbbfc, 913b749f, bad60c01.
- 020ca3b42c Docs: LCL/dialogs. Additional updates to TOpenOption.ofViewDetail, TOpenOption.ofAutoPreview topics. Fixes spelling error.
- 79160f61 Dialogs: remove TOpenOptionEx.ofForcePreviewPaneOn and move it's functionality to TOpenOption.ofAutoPreview. Committed manually.
- 89a27ef0 Dialogs: fixed descriptions of ofViewDetail and ofAutoPreview, which got mixed up in 79160f61. Committed manually.
- 5a6e95d7 Dialogs: improve descriptions of several TOpenOptions. Based upon MR !455 by n7800, modfied by me. Committed manually.
- fd8c8885 Dialogs: some more improved descriptions of TOpenOptions. Committed manually.
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