[Lazarus] Lazarus Release Candidate 2 of 2.2.0
The Lazarus team is glad to announce the second release candidate of Lazarus 2.2. This release was built with FPC 3.2.2. Here is the list of changes for Lazarus and Free Pascal: http://wiki.lazarus.freepascal.org/Lazarus_2.2.0_release_notes http://wiki.lazarus.freepascal.org/User_Changes_3.2.2 Here is the list of fixes for Lazarus 2.2.x: https://gitlab.com/freepascal.org/lazarus/lazarus/-/commits/fixes_2_2 The release is available for download on SourceForge: http://sourceforge.net/projects/lazarus/files/ Choose your CPU, OS, distro and then the "Lazarus 2.2RC2" directory. Checksums for the SourceForge files: https://www.lazarus-ide.org/index.php?page=checksums#2_2_0RC2 Minimum requirements: Windows: 2k, XP, Vista, 7, 8, 8.1 and 10, 32 or 64bit. FreeBSD/Linux: gtk 2.8 for gtk2, qt4.5 for qt, qt5.6 for qt5, 32 or 64bit. Mac OS X: Cocoa (64bit) 10.12 to 11.4, Carbon (32bit) 10.5 to 10.14, qt and qt5 (32 or 64bit). The gitlab page: https://gitlab.com/freepascal.org/lazarus/lazarus/-/tree/lazarus_2_2_0_RC2 Last trunk svn revision was r65398. For people who are blocked by SF, the Lazarus releases from SourceForge are mirrored at:ftp://ftp.freepascal.org/pub/lazarus/releases/ == Why should everybody (including you) test the release candidate? == In the past weeks the Lazarus team has stabilized the 2.2 fixes branch. The resulting 2.2RC2 is now stable enough to be used by anyone for test purposes. However many of the fixes and new features that were committed since the release of 2.0 required changes to the code of existing features too. While we have tested those ourselves, there may still be problems that only occur with very specific configurations or one project in a million. Yes, it may be that you are the only person with a project, that will not work in the new IDE. So if you do not test, we cannot fix it. Please do not wait for the final release, in order to test. It may be too late. Once the release is out we will have to be more selective about which fixes can be merged for further 2.2.x releases. So it may be, that we cannot merge the fix you require. And then you will miss out on all the new features. == How to test == Download and install the 2.2 RC2. - On Windows you can install as a 2ndary install, that will not affect your current install: http://wiki.lazarus.freepascal.org/Multiple_Lazarus#Installation_of_multiple_Lazarus - On other platforms, if you install to a new location you need to use --primary-config-path In either case you should make backups. (including your primary config) Open your project in the current Lazarus (2.0.x), and use "Publish Project" from the project menu. This creates a clean copy of your project. You can then open that copy in the RC2. Please test: - If you can edit forms in the designer - rename components / change properties in Object inspector / Add new events - Add components to form / Move components on form - Frames, if you use them - If you can navigate the source code (e.g. jump to implementation) - Auto completion in source code - Compile, debug and run - Anything else you use in your daily work -- Mattias -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus Release Candidate 2 of 2.2.0
On 11/2/2021 2:54 PM, Mattias Gaertner via lazarus wrote: The Lazarus team is glad to announce the second release candidate of Lazarus 2.2. Neat. I did a bit of testing with some of my projects and everything that worked in the last stable version i had (2.0.6) seems to work fine with 2.2.0RC2. I also did some testing with the MDI functionality that was implemented in Win32 last year, which BTW... Here is the list of changes for Lazarus and Free Pascal: http://wiki.lazarus.freepascal.org/Lazarus_2.2.0_release_notes http://wiki.lazarus.freepascal.org/User_Changes_3.2.2 ...isn't mentioned in the Lazarus changelog (the first non-trunk version to have it was 2.2.0RC1, at least from a quick look in the source code of 2.2.0RC1 and 2.0.12). The MDI stuff seem to work mostly fine, however there is an issue i noticed with paint and form resize events. I used this doodle app (perhaps i can modify it and have it part of Lazarus tests or something to test MDI support in other widgetsets?): http://runtimeterror.com/pages/badsector/nyan/gimme/mdidoodlesrc.zip This builds with Delphi 2 (which is the only Delphi i have access to and what i used as the behavioral basis for my Win32 MDI patch) and Lazarus (make sure to clean everything between builds). The difference is between Delphi 2, an older SVN-based build of Lazarus i have (Lazarus 2.1.0 r64351M FPC 3.3.1 x86_64-win64-win32/win64) and 2.2.0RC2: In Delphi 2 the program receives only a single resize event in the MDI child form for the final form size (notice how the both the main form and the MDI child form use the default size which lets windows place it as it wants) followed by a paint event. The app uses a bitmap to store the doodle which is setup during resize events and is drawn on the form itself during paint events. In r63451M the program receives two resize events, one for some initial (stored during design time, i think) size followed by the larger (due to my large monitor) form size that is shown when it is in MDI - both are fine as long as the final size event is correct, IMO, so no problem here. Then a paint event follows. In 2.2.0RC2 however the paint event comes between the initial and second resize events which means that the background bitmap is not set up properly. Now of course it'd be trivial to work around the change by adding an Invalidate call to the resize event, but IMO this is a regression. There should either be a second paint event or the paint event should be delayed until sizing is settled. This would be both consistent with how size and paint events seemed to work in previous version of Lazarus as well as Delphi and also consistent with how Windows (from where most of the VCL and LCL behavior comes from) behaves with WM_SIZE and WM_PAINT (WM_SIZE always comes before WM_PAINT and WM_PAINT is always sent if a window is enlarged to paint the new area). Beyond the above i couldn't find any other issues with 2.2.0RC2. Kostas -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
Bart, please run the TMask unit test project while you change the code. I fixed its compilation in 3c7586c0f8 but many tests fail. A unit test is especially useful with such text manipulation code. It is a good idea to run the tests after every change. Keep the test project open when changing. Regards, Juha -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
On Tue, Nov 2, 2021 at 8:21 PM Juha Manninen via lazarus wrote: > Bart, please run the TMask unit test project while you change the code. How to run that exactly without having to run the entire test suite? -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
On Tue, Nov 2, 2021 at 9:43 PM Bart wrote: > How to run that exactly without having to run the entire test suite? OK, looked at the wrong test folder... I fixed the filename 'a[b]c' not matching the mask 'a[b]c' in DisableRange. TestSpecial: to test this feature mocAnyCharOrNone must be set, which is excluded from DefaultMaskOpCodes. TestWindows: the tests for wqFilenameEnd I think only work if mocAnyCharOrNone is enabled: José commented that quirk with This presents a problem, since DefaultMaskOpCodes excludes mocAnyCharOrNone , but DefaultWindowsQuirks requires it. I see 2 solutions: 1. On TWindows* mocAnyCharOrNone will be enabled by default, while it is not on TMask* 2. Remove wqFilenameEnd from DefaultWindowsQuirks and describe that adding that quirk implies that mocAnyCharOrNone will be enabled. A cleaner solution would be to NOT have wqFilenameEnd depend on mocAnyCharOrNone , but I have no idea how to do that. -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Lazarus Release Candidate 2 of 2.2.0
02.11.2021 18:51, Kostas Michalopoulos via lazarus пишет: On 11/2/2021 2:54 PM, Mattias Gaertner via lazarus wrote: The Lazarus team is glad to announce the second release candidate of Lazarus 2.2. Neat. I did a bit of testing with some of my projects and everything that worked in the last stable version i had (2.0.6) seems to work fine with 2.2.0RC2. I also did some testing with the MDI functionality that was implemented in Win32 last year, which BTW... Here is the list of changes for Lazarus and Free Pascal: http://wiki.lazarus.freepascal.org/Lazarus_2.2.0_release_notes http://wiki.lazarus.freepascal.org/User_Changes_3.2.2 ...isn't mentioned in the Lazarus changelog (the first non-trunk version to have it was 2.2.0RC1, at least from a quick look in the source code of 2.2.0RC1 and 2.0.12). The MDI stuff seem to work mostly fine, however there is an issue i noticed with paint and form resize events. I used this doodle app Please create a bug report. -- Best regards, Maxim Ganetsky mailto:gan...@narod.ru -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
On Tue, Nov 2, 2021 at 8:21 PM Juha Manninen via lazarus wrote: > Bart, please run the TMask unit test project while you change the code. Whilst doing that I fiddled around with bot the tests and the masks unit. I then wanted to commit (push) these changes seperately. I got stuck. In svn I could commit a single file, then another. I git I don;t know how to do that. My workflow currently is: make changes git commit files I changed (solve one problem per commit) git pull (I have pull.rebase=true) git push I resorted to do a git restore on the changes to the test suite, then commiited and pushed the changes to masks unit. (And then I found out my changes to the testsuit were unnecessary, so that saved me from doing the changes all over again...) PS. The test suite runs fine again (but see my remarks on the wqFilenameEnd quirk. PS 2: building any program in the lazarus tree pollutes my tree and git gives warnings about untracked files: Here's what git tells me after building the test suite for masks unit: C:\devel\lazarus>git status On branch main Your branch is up to date with 'origin/main'. Untracked files: (use "git add ..." to include in what will be committed) components/lazutils/test/backup/ components/lazutils/test/testmasks.or nothing added to commit but untracked files present (use "git add" to track) Is there a way to suppress the warning about untracked files alltogether? Orr whould all this be added to our .gitignore file? -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
On Tue, Nov 2, 2021 at 8:21 PM Juha Manninen via lazarus wrote: > I fixed its compilation in 3c7586c0f8 but many tests fail. Thank you for that (a bit late, but nevertheless). -- Bart -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus
Re: [Lazarus] Masks: the naming of ...
I am away from my development computer now. Short comments about the git issues: I use "git gui" for commits. It shows untracked files in a separate pane which does not bother much. IIRC there is a setting to not show them at all. You can make many commits and push them sometime later. Actually you can modify, join and reorder them before pushing which is handy. Regards Juha -- ___ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus