[Lazarus] Lazarus Release Candidate 2 of 2.2.0

2021-11-02 Thread Mattias Gaertner via lazarus
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

2021-11-02 Thread 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 
(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 ...

2021-11-02 Thread Juha Manninen via lazarus
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 ...

2021-11-02 Thread Bart via lazarus
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 ...

2021-11-02 Thread Bart via lazarus
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

2021-11-02 Thread Maxim Ganetsky via lazarus

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 ...

2021-11-02 Thread Bart via lazarus
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 ...

2021-11-02 Thread Bart via lazarus
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 ...

2021-11-02 Thread Juha Manninen via lazarus
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