The problem is always the same: we don’t have many developers and they all work on their free time. This means the availability of developers is extremely variable.
Sometimes I am busy with my paid job, and when I get back home in the evening I don’t feel like digging into even more C++ code. Sometimes the paid job is more “spent the day in meetings” and I want to spend my weekends digging into C++ problems.
If you look at the contribution stats (http://pulkomandy.tk/stats/authors.html) you will see that usually it’s just one person doing 25 to 33% of the work in a given month, and maybe 20% in a year.
In that situation it is impossible to have any predictible planning. Basically, releases happen when someone has time and motivation to make it happen: fix all the critical bugs, and then coordinate the whole thing.
If you want more frequent releases, we need to hire someone to take care of it. Otherwise it will continue to be best effort as it is now, and personally I will not commit to any fixed schedule because it would be madness for me, I would burn out from too much work if it aligns badly with my other activities.
Now let’s look more closely at the current release and why it is behind schedule (it was initially planned late february). What are we waiting on?
- Since february I have fixed various problems in DriveSetup. These had been added to the roadmap after the beta2 release and the observation that several people had a lot of trouble properly setting up their partitions. Indeed, several bugs were found and fixed, and several user interface improvements were identified and implemented. There are two possible improvements left in the TODO list. I think no other developer looked into these. Personally I think we are now in a good enough state for a new release
- Another thing that got a bit in the way is updating of the haiku package mirror. This is a special repository of packages used only during Haiku build time which contains fixed versions of some packages (it does not update automatically when there are changes in haikuports). Several updates were needed in particular to allow building new versions of WebKit that will ship with the next release. After several months of asking the sysadmin team to work on this, I gave up on getting them to do it and instead they gave me access to the needed servers and updated the documentation so I could do it myself. I am still annoyed that yet another critical responsibility in the project falls, again, on me. You woul all be in deep trouble if I stopped contributing for any reason. Please do not let things be like that, it is not healthy for the project and it is not healthy for me. See https://dev.haiku-os.org/ticket/16751 for more info on this.
- There is still one bug considered important for this release, which is a regression in BTextView leading to graphical glitches mainly when renaming files in Tracker. John Scipione has been investigating this and has got not a lot of help from anyone else. He is regularly posting updates to his patch here: https://review.haiku-os.org/c/haiku/+/3642
Note that I am linking to a few ticket here, but each of these changes also fixed several other problems in the process, required digging deep into Haiku internals in various places and/or fixing packages at Haiikuports. This work just takes time.
6 months ago, none of these issues were fixed. If we had pushed a release, people would still be angry because it would have had almost no changes from the previous one, and the same issues they identified would remain. This would be disappointing for them, and embarrassing for us. I think the slower release cycle is a more comfortable place to be.
In theory we are able to push bugfixes to the beta branch as well. This also needs people working on it, and a more clear policy on what to put there and when. You can blame me from making this not happen as much as it should, by telling people they would be wasting their time doing it because a new release is due “soon” (and then months and months pass and nothing happens…).
Well, long story short: if you want any kind of progress on Haiku, we need to hire a full-time developer to actually get some work done. A few people putting in a few hours every saturday won’t do it (even if we already achieve great things in this way, it’s just not enough).