Friday, December 28, 2007

Lazarus fixes branch

While working on Lazarus 0.9.23, which took more than 6 months, Giuliano Colla proposed to create a stable branch. Lazarus development goes very rapid with about 100 commits each week and with each daily update, there is a reasonable chance that something got broken. This is not desirable for people that need to do production work with Lazarus.

The idea was welcomed, although I had some doubts about the feasibility, especially the man power needed. Lazarus development goes rapid and there is still a lot to do, so the current Lazarus developers can better spend their time on new development than on maintaining a stable branch. So, we offered Giuliano to maintain it him self and we would support him.

After the Lazarus 0.9.24 release in November, I created the fixes_0_9_24 branch and set the version number to Windows snapshots using fpc 2.2.0 and the fixes branch are created on a daily basis from ftp. Giuliano would send me a list of revision numbers to be merged and I would apply thoses merges to the fixes branch. After a couple of merges, the branch became 'super'-stable, because there were no changes. A lot of changes are related and Giuliano wanted to test them before applying. This takes a lot of time. Also, it is sometimes not trivial to see the dependencies between the different revisions, espescially if a revisions contains new functionality, that you don't want to merge and a simple fix that is needed when you want to merge a later bug fix revision.

So we are still struggling to find a good strategy for maintaining the fixes branch. In the last week, I took a different approach. I looked at the list of revisions and merged the new component bar images, splash screen and most the bug fixes I made in Lazarus 0.9.25. Almost 200 revisions were merged from trunk to the fixes branch, so things might have been broken, but I have good hopes that is at least as good as 0.9.24.

There are still about 500 revisions in trunk not (yet) merged:
  • Documentation hints
  • Handle rewrite
  • New project options and environment options dialog
  • A number of bug fixes for other widget sets than win32 (my only expertise).
  • Improvements to images in the toolbar of the IDE
  • Several improvements to the Lazarus IDE dialogs
Because it is hard to guess what people want in the fixes branch (except stability), we want to ask users of the fixes branch to indicate what they want to be merged from trunk. If we think the feature is stable already, we will try to merge it.

I encourage everybody to test the fixes branch and give feedback on the Lazarus mailing lists. If the fixes branch proves succesfull (stable updates without occassional breakage), I am considering to put snapshots of it in the Lazarus-Testing Ubuntu repository.


Matteo Salvi said...

Great work. :)

P.S.: Merry christmas and happy new year.

Eric TF Bat said...

I tried downloading Lazarus just now, and wrote about this utterly frustrating experience in a blog post. Perhaps you could pop by, read what I've said and do something to fix it? Because I'm really not happy with the state of things as they are now.

Vincent Snijders said...

eric tf bat, I write my response here, because your blog post doesn't show them (yet).

Lazarus is a typical open source project: it exists because somebody needed something to be fixed, in this case a Object Pascal cross platform RAD was missing, especially on Linux

If you are missing something in the way download pages are presented, then I suggest you contribute to fix that itch. So what I do to fix it, is waiting for somebody to get so annoyed with the current situation that he starts to contribute to remedy it. I have no time to do fix this.

But maybe VMWare + Delphi is a better cross platform solution for you.

WhiteWind said...

I do not want to join the mailing list, but I want to say that fixes branch is very usefull, and I wish more updates on it)

Vincent Snijders said...

WhiteWind, what do you want to be merged?

WhiteWind said...

I need fixes to gtk2 and LCL to be merged in first order. And I really need source package, since it's difficult to unpack .exe installer)

Vincent Snijders said...

whitewind, in order to merge to the fixes, I need to know the revision numbers in trunk.

Do you know those numbers? You can look them up in the logs or browse the individual revisions.

Alternatively you may provide the bug numbers, so I can try to find out in which revision there were fixed.

WhiteWind said...

It's something strange happening. When I'm trying to open links, loading just hangs after loading
header and first few lines.

And I can not open bugtracker - it hangs at very beginning.
And that's happening only with my IP. When I try to open svn or bugtracker from another IP, it opens Ok.

Jack said...

I accede with Vincent Snijders. Lazarus is open source project and we have to fixed many things. I am also working in open source projects from last 2 years. It is always interesting to work on it..loving it..

forum widget