Lazarus 2.0 fixes branch

From Free Pascal wiki
Revision as of 20:26, 9 October 2018 by Delphifreak (talk | contribs) (Tests)

This page contains the revisions to be merged from trunk to the Lazarus 2.0 fixes branch.

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

Release notes can be found here

Fixes for 2.0.0RC2

Merge requests

Submitted by developer / committer and waiting for testing (do not commit yet)

Merge conflicts

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

  • r59225 LazControls: Improve and optimize the filter controls. Issue #34057
  • r59226 LazControls: Call DoFilterItem instead of DoDefaultFilterItem in TTreeFilterBranch.SortAndFilter.
  • r59227 IdeIntf: Delete old deprecated methods and properties.
  • r59228 AnchorDocking: Prevent crash on drag-and-dock tab page. Issue #34371
  • r59229 LazReport: Delete old deprecated UTF8 functions.
  • r59230 TAChart: Remove old deprecated code.
  • r59239 TAChart: Check and fix all demos and tutorial projects (mostly layout issues)
  • r59240 Packager: Allow overwriting existing unit files in New Component dialog. Error was shown AFTER a file was overwritten. Issue #26928
  • r59241 TAChart: Fix TChartImageList demo.
  • r59243 TAChart: Extend dragdrop demo to show horizontal dragging of bars.
  • r59244 IDE: Always create project's main icon file when saving it. Keeps its size down. Issue #27287
  • r59245 IDE: Add initial directory for loading project icon in App options. Use IconImage.Picture.Icon everywhere.
  • r59246 IDE: Remove resource generation from DoBuildProject. They have been generated earlier. Issue #15915
  • r59248 IDE: Support running external tool with parsers, needed when used through IDE interface.
  • r59254 LCL-Gtk2: Don't mix resizing a column with drag-and-drop. Issue #34393
  • r59262 LCL-GTK3: Fix TRadioGroup. It did not work at all. Issue #34396
  • r59263 IDE: Reduce DebugLn() calls in Publish Module code. It seems to work.
  • r59266 IDE: New High-DPI images in folders images/items and images/packages. Kindly provided by Roland Hahn.
  • r59267 IDE: Use scaled images in trees of "Install/Uninstall packages" form.
  • r59268 IdeIntf: Improve timestamp updates of TLazCompilationToolOptions + inherited classes. Issue #34283
  • r59270 LCL: Fix TBitBtn ignoring the Margin property on Windows. Issue #34379
  • r59259 TurboPower_iPro: Implement css function rgb().
  • r59271 TurboPower_iPro: Implement css function hsl().
  • r59272 IDE: Center icon and text vertically for each item in ViewUnit dialog. Issue #34402

Merged revisions for 2.0.0RC2

  • r59016 LCL-GTK2: Do not truncate Groupbox caption. Issue #32621
  • r59018 LCL-GTK2: Fix TStaticText Width with Autosize. Issue #21877
  • r59030 TValueListEditor: fix DeleteRow Issue #0034208.
  • r59031 TFindDialog: fix setting Top/Left. Issue #0033528.
  • r59032 TCommondialog: do not publish Widht/Height properties. Issue #0033480. Patch by AlexeyT.
  • r59048 TFindDialog: slight improvement on r59031.
  • r59049 TFindDialog: use Position := poMainFormCenter in CalcPosition instead of trying to calculate that by ourselves. Patch by Serge Anvarov.
  • r59050 TFindDialog: save FFindForm position upon close.
  • r59064 Opkman: Bug fix: remove package compiling restriction.
  • r59066 IDE: clean up
  • r59077 IDE: fixed abstract method
  • r59079 IDE: less hints
  • r59041 IDE: Use safe typecast for TProjectCompilationToolOptions when building project.
  • r59042 Revert r59006 "IdeIntf: Add API for ExecuteCommand in CompOptsIntf." Must be done better.
  • r59043 IdeIntf: A new interface class TLazCompilationToolOptions with a Command and CompileReasons. Issue #34283.
  • r59044 IdeIntf: Improve the CompilationTool stuff. Remove and clean code. Issue #34283.
  • r59046 LCL-GTK2: Do not truncate Groupbox caption (fix for previous). Issue #32621.
  • r59047 LCL-GTK2: Fix TListView column widths. Issue #34044.
  • r59081 IDE: Add package name to hints for component palette icons.
  • r59083 TFindDialog/TReplaceDialog: show dialog poScreenCenter in IDE; fix erratic behaviour of TReplaceDialog in IDE (wrong parent). Issue #34297.
  • r59085 LCL: Improved layout of TFindDialog and TReplaceDialog, fix TabOrder.
  • r59094 LCL: Fix TCustomListbox not releasing Canvas handle in DestroyWnd Issue #34249.
  • r59095 Translations: Turkish translation update by Hakan KIZILHAN, Issue #34296
  • r59096 Translations: Spanish translation update by Alonso Cárdenas Márquez, Issue #34304
  • r59110 Opkman: Fix memory leak.
  • r59141 lazutils: removed duplicate code, Issue #34320
  • r59089 IDE: Bug fix: Deleting newly added CoolBar leads to error. Issue #34302.
  • r59091 IDE: Check package name validity correctly.
  • r59147 IDE: Improve logic for updating Application.Title statement. Now it gets removed, too. Issue #34318.
  • r59156 IDE: Add new Application.Title and .Scale statements after Application.Create line. Issue #34318.
  • r59170 IDE: Support 3 icons with different resolutions in "New Component" dialog. Improve the GUI.
  • r59172 IDE: cleaned up unused resource string
  • r59173 IDE: regenerated translations and updated Russian translation
  • r59176 IDE: In "New Component" dialog resize the buttons based on icon image size. Improve initial dir for selecting icon.
  • r59092 MainInspector: Fix a typo.
  • r59111 LCL-GTK2: Prevent flickering in TOpenGLControl. Turn DoubleBuffered off. Issue #33864
  • r59190 LCL-GTK3: Add typecasts for Color types. The code may still be wrong but can be tested with Range checks on.
  • r59191 LCL-GTK3: Fix menu radio group. Issue #34350.
  • r59118 Docs: Fix short description for function StringToColor.
  • r59125 LazUtf8: leftpad escaped characters in Utf8EscapeControlChars if EscapeMode = emPascal. Prevents ambiguity when reading the result.
  • r59169 LazUtils: Move ExtractFileNameWithoutExt to LazFileUtils. Rhymes with ExtractFileNameOnly.
  • r59175 Delete old deprecated methods.
  • r59177 LazUtils: Move more functions from FileUtils to LazFileUtilities, deprecate the old ones.
  • r59149 LCL: Add support for custom font of TSpeedButton (see,42635.msg297800.html#msg297800, patch by Ondrej)
  • r59167 LCL: Fix incorrect checked state after deleting an item of a TCheckGroup. Issue #34327.
  • r59168 Split command line parameters also when "Run without Debugging".
  • r59197 TAChart: deprecate all reticule-related methods and properties (was incomplete). Less hints and warnings.
  • r59208 debuggerintf: less hints
  • r59210 fpdebug: less hints
  • r59212 ideintf: less hints
  • r59214 lazdebuggers: less hints
  • r59216 lazutils: less hints
  • r59218 turbopower_ipro: less hints
  • r59220 lcl: gtk2: less hints
  • r59222 Translations: Ukrainian translation update by Olexandr Pylypchuk, bug 34367
  • r59223 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 34368

Roadmap to 2.0.0

The release process will consist of the following steps.

  • Creation of the SVN 2.0 fixes branch. (Done 15 Sep 2018)

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

  • Release of 2.0.0 RC 1 (Done 16 Sep 2018)

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 2.0.0 RC 2 (ToDo)

The testing period is scheduled to last 2 weeks.

  • Release of Lazarus 2.0 (ToDo)

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

  • SVN merge requests of this page
  • Set version in fixes_2_0 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.0.0RC1 for RC1, no spaces! (2.0.0 for final release)
    • lazarus/lcl/lclversion.pas for RC1, for RC2, ... for final
    • lclbase.lpk
    • lcl.lpk
    • lazarus/debian/changelog 2.0.0-1 for RC1, 2.0.0-2 for RC2, ... 2.0.0-4 for final
    • lazarus/
      • CFBundleShortVersionString "2.0.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 svn 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
  • svn commit
  • Tag fixes_2.0 branch to tags/release_2_0_0_RC1 (or tags/lazarus_2_0_0 for final release)
svn copy svn+ssh:// svn+ssh:// -m 'tagged 2.0.0RC1 as tags/lazarus_2_0_0_RC1'
  • Set version to next version in svn
  • Create new section on this page and move waiting merge requests to the new section

How to merge

See Lazarus_1.0_fixes_branch#How_to_merge

Other branches