Lazarus 3.0 fixes branch

From Free Pascal wiki
Jump to navigationJump to search

Note: 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 3.0 fixes branch.

These are only fixes made after the branch was created. For other fixes made since the previous release (2.2) see Git and Lazarus 2.2 fixes branch.

Release notes can be found here.

Internal Merge requests for 3.0RC2

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)

  • 1d4695e3 Qt5, Qt6: removed TQtWSCustomTabControl.GetDefaultClientRect since it does not provide good result. patch by Irfan Bagus. Issue #40460.

Merge conflicts

Submitted by developer / committer, tested, waiting to be merged

  • f26bc899 Win32: TListBoxOnSelectionChange is fired whenever the user clicks the item, regardless of it's previous state. Issue #33618.

Processed Merge requests

  • 95da84ff94, bf0878f8f9 IDE: Fix saving PathMode in SearchResultsView always. Issue #40352.
  • f0a8e22c EditBtn: publish property Alignment for some TCustomEditButton descendants.
  • c3891ad820 Reduce compiler warnings.
  • 4db3bb880c Svn2RevisionInc: Do not warn about missing SVN client. Issue #40359.
  • d8405a9db8 AnchorDocking: Reduce compiler warnings.
  • a448e619 TTrackBar.ScalePos: not supported on Win32, Cocoa, QT, QT4, QT6.
  • 606ef3eac7 IdeConfig: Improve recursive macro cycle detection in TransferMacros. Prevents a frozen IDE. Issue #33151.
  • 3ea8fbcca2 Docs: LazUtils/lazutilities. Updates content for topics added in e3691f68.
  • 6717565e9b GTK3: Fixes missing end tags in gtk3/issues.xml.,63867.msg484990.html#msg484990
  • 479ff9635e Codetools: Support more modifiers in class method. Issue #40368.
  • bb83fdd273 simplewebservergui: fixed run on older windows, loading GetTcpTable2 via GetProcAddress
  • e4494cf4cd LCL-GTK2: Allow right-to-left selection of long text in TEdit with mouse. Issue #40379
  • 0c056fc0d2,d9608a3489,27f6e20118 IDE: Remove unknown component properties using the same GUI already used in other situations. Issue #40377
  • ebad154bc6 DockedFormEditor: Prevent an eternal loop when an invalid LFM file causes a read error. Issue #39288
  • a236313f5f DockedFormEditor: Fix a missing Result value of TDesignForms.Add().
  • ed7945efe2 IDE: Load and save AutoSaveActiveDesktop value. It was left out in EnvironmentOptions refactoring.
  • 5a647cd4e1 DockedFormEditor: Solve the unrecoverable loop differently. Add a new handler for it. Issue #39288
  • fd2593f05b IDE: Improve removing unknown component properties. Issue #40377
  • 3844d00814 Docs: LCL/forms. Adds TScreen, TScreenNotification topics for changes in 5a647cd4. Issue #39288
  • b9cdb23eed Docs: LCL/forms. Clarifies content in NewFormWasCreated and AddHandlerNewFormCreated topics in TScreen. Depends on 3844d008, 5a647cd4.
  • 4ed8ff9b1c IDE: Prevent an error "Unable to find the component class ..." with an .lfm file open in editor. Part of issue Issue #40377
  • a4aa3e0a56 OpkMan: Update version list.
  • 318fa86019 IDE: Remove the "Ignore" option for uninstalling dependent packages. Fix the "Cancel" option.
  • 4179f1b4 New Fixed removing of incorrect component properties in LFM with installed DockedFormEditor. Issue #40377.
  • bef70c1810 Docs: LCL/controls. Updates topics for changes in 53cd3db19c.
  • ba985a533e Docs: LCL/forms. Adds TApplication.GetControlAtPos topic for changes in 53cd3db19c.
  • e95cadd0 Win32: fix MDIChild form not updating Top/Left. Issue #40232.
  • 48b1419e TTaskDialog: make the flag tfNoDefaultRadioButton actually work.
  • 69614e3959 Docs: LCL/lcltaskdialog. Updates TTaskDialog.Execute for changes in 48b1419e.
  • a4c9080f TListBox: fix SelCount in case HandleAllocated = False. Issue #40361.
  • a0e4b5d35a Docs: LCL/stdctrls. Updates TCustomListBox.SelCount for changes in a4c9080f. Issue #40361.
  • b101a75d VirtualTreeView: fix building with Qt4 widgetset on non-x86 platforms (unify with Qt5 and Qt6 widgetsets), issue #40431
  • 57fe53bd VirtualTreeView: adjust IFDEFS for Qt4, Qt5, Qt6 widgetsets to enable asm code for both 32 bit and 64 bit x86 CPUs, issue #40431
  • 2a339f8c Qt,Qt5,Qt6: fixed borderless popup over parent form with FormStyle = fsStayOnTop. Issue #40440
  • 853461fe LCL: fixed TWinControl.SetChildZPosition, WS must be informed about change of order in any case. Issue #40450
  • 2885935b Qt,Qt5,Qt6: do not create dummy widget if wm name is empty or we are running under wayland. Issue #40413
  • e2f0b349 Gtk2: do not create dummy widget if WM name is empty, also reduce looping on slow systems. Issue #40413
  • 8c1e7bc4b0 IDE: Show the project name and build mode by default in the IDE title. Name variables and properties consistently.
  • c609605cfa, debaca4729 In Install/Uninstall package dlg, do not enable "Save and rebuild" and "Save and exit" buttons when filtering.

Roadmap to 3.0

The release process will consist of the following steps.

  • Creation of 3.0 fixes branch. (Done 25 June 2023)

This is the start of the stabilization process before a new Lazarus release.

  • Release of 3.0 RC 1 (Done 03 July 2023)

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 3.0 RC 2 (TBD)

The testing period is scheduled to last 2 weeks.

  • Release of 3.0 RC 3 (TBD)

The testing period is scheduled to last 2 weeks.

  • Release of Lazarus 3.0 (TBD)

Users can download the new stable version.


  • 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
  • For a RC tag in gitlab before increasing the version in the sources 'tagged 2.2.0RC2 as lazarus_2_2_0_RC2'
  • set version in fixes_2_2 branch:
    • open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog for RC1, for RC2, for RC3, for final
    • lazarus/ide/ 2.2.0RC1 for RC1, no spaces! (2.2.0 for final release)
    • lazarus/components/lazutils/lazversion.pas for RC1, for RC2, ... for final
    • lclbase.lpk
    • lcl.lpk
    • lazarus/
      • CFBundleShortVersionString "2.2.0"
      • CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release
    • tools/install/linux/environmentoptions.xml same as
    • tools/install/win/environmentoptions.xml same as
    • tools/install/macos/environmentoptions.xml same as
    • 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

Other branches