Recent

Author Topic: FPC 3.2.x series branched, trunk update to 3.3.1  (Read 63200 times)

PascalDragon

  • Hero Member
  • *****
  • Posts: 1768
  • Compiler Developer
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #165 on: March 29, 2020, 12:51:56 pm »
If you announced FPC 3.2 release today, Arch and Manjaro would build and provide packages within a week or so. Other distros would provide it in their next release. Many people would be happy and FPC maintainers would not need to build anything.

I for one don't rely on my distro and always use the releases we provide on the homepage.

Is an installer needed for MacOS necessarily? I don't know, I don't have a Mac.

Yes, it is, because that is what macOS users expect. Also the macOS release needs to be prepared especially, because the binaries need to be converted to fat binaries. And no, saying that i386 or PowerPC are deprecated and no longer required is no reason not to provide users a good installation experience. Only because Lazarus dropped powerpc-darwin from their official releases does not mean that FPC will as well.

And to come back to release management: preparing 3.2 has taken an unusal amount of time as there was a time where the branch has essentially been barren for quite some time without any real reason. So if we avoid that in the future all should be good again. And more frequent major releases than once every two years is unrealistic. Trunk may appear rather stable and many people might use it on a daily bases, but it's not stable enough for a release. Just as an example in current trunk TLS on Linux as well as Posix Exception Handling are not fully stable yet and I am not yet happy with the RTTI changes I did for the attributes. Releasing that - especially the RTTI changes - would more or less cement them in stone due to our backwards compatibility policy. That is why we branch rather early (relative to the release happening) and curate that branch to be release worthy while more risky development can continue in trunk.
TL;DR: releasing trunk more often will result in more work for us, both regarding release management and handling backwards compatibility.

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8496
  • FPC developer.
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #166 on: March 29, 2020, 02:20:03 pm »
And to come back to release management: preparing 3.2 has taken an unusal amount of time as there was a time where the branch has essentially been barren for quite some time without any real reason. So if we avoid that in the future all should be good again. And more frequent major releases than once every two years is unrealistic.

Note that 3.0 the fixes branch was also quite old on release. But yes, the problem is not the plan, but the fact that there are delays in executing it. Changing the plan won't fix that.

soerensen3

  • Full Member
  • ***
  • Posts: 209
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #167 on: March 29, 2020, 03:19:42 pm »
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

Personally I like a fixed released cylce like twice a year. Then every fixes that are ready can be included even if it is just a few. Who cares, version numbers don't cost anything.

I have to admit I don't know what involves publishing a release but I'm sure a lot can be automated for most platforms. I don''t know if docker is suitable here because it is only available for a few platforms and you can not make a Windows container from linux. Maybe a VM makes more sense here, because qemu already supports a lot of platforms. Vagrant could be used here which works a lot like docker but uses VM's. There is already a tests folder in the fpcsrc directory. I don't know if it is done for every syntax feature but if that is the case every change could be tested on multiple platforms automatically on a build system. Some of this might already be the case?
Lazarus 1.9 with FPC 3.0.4
Target: Manjaro Linux 64 Bit (4.9.68-1-MANJARO)

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8496
  • FPC developer.
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #168 on: March 29, 2020, 04:03:10 pm »
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

I assume you know the release engineering related wiki pages by heart and have done several attempts at building releases? All stuff to make docs and releases for windows and Linux is open, you can just start.

But that is fairly pointless since it is not the plan points that cause the delays but the feedback loops

Code: Pascal  [Select][+][-]
  1. while (issuesremaining+issuesnew)>0 do
  2.    begin
  3.       put_new_issues_in_queue ;
  4.       mark_fixed_issues;
  5.    end;
  6.  

Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

Personally I like a fixed released cylce like twice a year. Then every fixes that are ready can be included even if it is just a few. Who cares, version numbers don't cost anything.

I also like 50 more core committers and a multi-million dollar sponsorship. That is not likely to happen either.

And it is not just getting releases out of the door. Release quality and uniformity is important for support and triaging bugs.

You can't just tag any random point as a release, and go with it, that is pointless.
« Last Edit: March 29, 2020, 04:05:21 pm by marcov »

soerensen3

  • Full Member
  • ***
  • Posts: 209
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #169 on: March 29, 2020, 08:12:54 pm »
But if no one knows the plan than everyone makes their own plan which is fine but then no one can jump in to help.

I assume you know the release engineering related wiki pages by heart and have done several attempts at building releases? All stuff to make docs and releases for windows and Linux is open, you can just start.
No, like I said I'm not yet into it that much. I'm trying to understand it though. To be honest, I didn't even know the page existed. Thanks for pointing it out. I put a suggestion in the discussion page to add a link on the main page under community participation.
This is also looks interesting: https://wiki.lazarus.freepascal.org/Release_Template
Quote
But that is fairly pointless since it is not the plan points that cause the delays but the feedback loops

Code: Pascal  [Select][+][-]
  1. while (issuesremaining+issuesnew)>0 do
  2.    begin
  3.       put_new_issues_in_queue ;
  4.       mark_fixed_issues;
  5.    end;
  6.  

Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

What do you mean by feedback loop? The several testing phases mentioned here? (https://wiki.lazarus.freepascal.org/Release_Template)
Where are the problems exactly? Is there anything someone new could help? Also there will always be new issues but not all of them are targeted for fpc 3.2, right? So right now we are at the last line of your pseudo code since some time now? What is going on now? Are we in the testing phase (https://wiki.lazarus.freepascal.org/Testers_3.2.0)?

What I meant with transparent in my other post is for example a page like this. https://qgis.org/en/site/getinvolved/development/roadmap.html?highlight=release#release-schedule
I know there are more developers for QGIS and they have a lot more releases per year but that it is not the point.
Lazarus 1.9 with FPC 3.0.4
Target: Manjaro Linux 64 Bit (4.9.68-1-MANJARO)

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8496
  • FPC developer.
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #170 on: March 29, 2020, 08:35:37 pm »
No, like I said I'm not yet into it that much. I'm trying to understand it though. To be honest, I didn't even know the page existed. Thanks for pointing it out. I put a suggestion in the discussion page to add a link on the main page under community participation.

This is also looks interesting: https://wiki.lazarus.freepascal.org/Release_Template

Also look on related pages for older releases for the links in the RC1 announcement.


Quote
Quote
Such moments are for all major points, the initial fixes release branch, the branch of a RC, the building of the releases. It's these that cause the holdups.

What do you mean by feedback loop? The several testing phases mentioned here?

To make the decision to start executing the various routine options, like the "release template".  Points 3,5,10 etc are all consensus points.

Quote
Where are the problems exactly? Is there anything someone new could help?

Yes and no. You can't really speed this up, since most issues are limited by knowledge that only a few people have.

BUT one of the big problems is that these people ALSO have to dive into the current status of many issues etc when they go into "release mode".

Having trusted lieutenants that keep an eye on certain subdomains of the project helps tremendously here. And not just there. As said Lacak (and before him Joost) have proven this for e.g. the database libraries.

Such lieutenants simply follow every development across all branches related to their subject and are aware of issues, bugs in previous releases etc. The project has grown immensely and it is sometimes hard for one person to keep overview.   It is a much lighter workload than become (hard)core developers, but it is still a very valuable role.

The gap between users and (core) developers is simply too large, and to change anything, that needs to be bridged with inbetween people.

Quote
What I meant with transparent in my other post is for example a page like this. https://qgis.org/en/site/getinvolved/development/roadmap.html?highlight=release#release-schedule
I know there are more developers for QGIS and they have a lot more releases per year but that it is not the point.

Do they do binary releases and support them? Or do they leave that to 3rd party builders?

And compilers are particularly painful because a small bug can make a release worthless. To give you a perspective on that, FPC 3.0.0 was the FIRST .0 release in history that Lazarus adopted, until then they chose to stay with the stable old, and all FPC release managers felt they had done a lot of work in vain.

« Last Edit: March 29, 2020, 08:37:23 pm by marcov »

mm7

  • Full Member
  • ***
  • Posts: 188
  • PDP-11 RSX Pascal, Turbo Pascal, Delphi, Lazarus
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #171 on: March 30, 2020, 02:57:17 pm »
If all tests (for a given platform) run successfully is it not enough to say that it is ready (for the given platform)? 
There are may be bugs for some unusual situations not included into tests. Should they stop the release? Or should new test cases be created and added to tests?
I think if all tests are fine, RC1 can be issued for some period. If new errors reported, their test cases possibly should be included into test suite.

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8496
  • FPC developer.
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #172 on: March 30, 2020, 03:02:07 pm »
If all tests (for a given platform) run successfully is it not enough to say that it is ready (for the given platform)? 

No. testing and bugreporting on trunk is simply not enough for that to be watertight. 

Quote
There are may be bugs for some unusual situations not included into tests. Should they stop the release? Or should new test cases be created and added to tests?

The things are already deemed critical, so this doesn't apply.   It mostly comes from the various devels memory, like reports for critical issues on their todo lists, or reported on the mail.

Quote
I think if all tests are fine, RC1 can be issued for some period. If new errors reported, their test cases possibly should be included into test suite.

That would be pointless. Anybody can make random releases, since most stuff is online. Lazarus even provides builds based on snapshot. If the release isn't solid, why do this?

mm7

  • Full Member
  • ***
  • Posts: 188
  • PDP-11 RSX Pascal, Turbo Pascal, Delphi, Lazarus
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #173 on: March 30, 2020, 07:22:38 pm »
I see RC1 is available! Excellent news!

What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.
At that time a test case can be created and added to tests suite.
And if developers runs all tests after their changes added, it will show if there was an impact in other places.

What currently is a criteria for "solid / not solid"?
I thought that successful run of the test suit is for that, but you are saying it is not "watertight" so what is a purpose of it?

PascalDragon

  • Hero Member
  • *****
  • Posts: 1768
  • Compiler Developer
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #174 on: March 31, 2020, 09:42:01 am »
What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.
At that time a test case can be created and added to tests suite.
And if developers runs all tests after their changes added, it will show if there was an impact in other places.

That is already done this way.

Quote
What currently is a criteria for "solid / not solid"?
I thought that successful run of the test suit is for that, but you are saying it is not "watertight" so what is a purpose of it?

The purpose of the testsuite is to detect regressions and check that features that were implemented work correctly. However users might have more complex code and not everything can be caught in the testsuite (e.g. some obscure edgecase that only occurs in big applications like Lazarus). Then there is also the point that when a release branch is done it is some time until it is released (normally it's between half a year and a year, 3.2 was a bit of an outlier here), because that gives people time to report further bugs against that release branch. These fixes are first fixed in trunk and then merged back. Not everything is merged back however (e.g. new features are not), so it needs to be curated and tested again. Then there is also the release infrastructure (building the installers etc.) which is only exercised when building a release so more often than not fixes are necessary there as well.

marcov

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 8496
  • FPC developer.
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #175 on: March 31, 2020, 10:15:27 am »
I see RC1 is available! Excellent news!

What I mean, if you got an issue (email or report) from someone, to fix it you need to test it.

For that you don't need releases, just more users paying some attention to development and stable branches (fpcdeluxe is great for that btw)

Seenkao

  • New Member
  • *
  • Posts: 33
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #176 on: May 16, 2020, 08:16:25 pm »
Извиняюсь что на русском, но постараюсь более-менее понятно для всех объяснить.

Linux

CodeTyphon or GetLazarus + fpc 3.3.1 + ZenGL
Error: RunError(211)

fpc 3.3.1 -> fpc 3.0.4 not Error!!!!

где-то намудрили! Хотели исправить, но видимо что-то другое сделали вместо исправлений. Я надеюсь исправят и мне не придётся на LInux пользоваться разными версиями fpc.

на  Windows ошибок нет (not error).

Благодарю за внимание.

PascalDragon

  • Hero Member
  • *****
  • Posts: 1768
  • Compiler Developer
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #177 on: May 17, 2020, 01:04:21 pm »
English, please.

BSaidus

  • Sr. Member
  • ****
  • Posts: 333
  • lazarus 1.8.4 Win8.1 / cross FreeBSD
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #178 on: May 19, 2020, 12:27:18 am »
Извиняюсь что на русском, но постараюсь более-менее понятно для всех объяснить.

Linux

CodeTyphon or GetLazarus + fpc 3.3.1 + ZenGL
Error: RunError(211)

fpc 3.3.1 -> fpc 3.0.4 not Error!!!!

где-то намудрили! Хотели исправить, но видимо что-то другое сделали вместо исправлений. Я надеюсь исправят и мне не придётся на LInux пользоваться разными версиями fpc.

на  Windows ошибок нет (not error).

Благодарю за внимание.

Postaraysa ispolzovat fpcupdeluxe dla proezvedinya portativni versiyi FPC i Lazarus.
Zabud pro CodeTyphon et GetLazarus.
Ispolzuy fpcupdeluxe : https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases.

Udatchi.

lazarus 1.8.4 Win8.1 / cross FreeBSD
dhukmucmur vernadh!

PascalDragon

  • Hero Member
  • *****
  • Posts: 1768
  • Compiler Developer
Re: FPC 3.2.x series branched, trunk update to 3.3.1
« Reply #179 on: May 19, 2020, 09:00:16 am »
Postaraysa ispolzovat fpcupdeluxe dla proezvedinya portativni versiyi FPC i Lazarus.
Zabud pro CodeTyphon et GetLazarus.
Ispolzuy fpcupdeluxe : https://github.com/LongDirtyAnimAlf/fpcupdeluxe/releases.

Udatchi.

English, please.

 

TinyPortal © 2005-2018