Mark Mitchell wrote on 01/25/07 00:09:

First, I haven't had as much time to put in as RM lately as in past, so
I haven't been nagging people as much.
>
Sure, but this is a trend that started with 3.1 and it's gotten progressively worse. Granted, we are now dealing with a much bigger project and perhaps the amount of engineering cycles has not kept up:

Release         Size (KLOC)
 1.21 1988         58
 1.38 1990         87
  2.0 1992        229
2.8.1 1998        416
 EGCS 1998        603
 2.95 1999        715
  3.0 2001      1,007
  3.1 2002      1,336
  4.0 2005      1,813
  4.1 2006      2,109
  4.2 2007      2,379

some people want/suggest more frequent releases.  But, I've also had a
number of people tell me that the 4.2 release cycle was too quick in its
early stages, and that we didn't allow enough time to get features in --
even though doing so would likely have left us even more bugs to fix.
>
That's also true. The duration of our stage1 cycles has gone down quite a bit since 3.3. The data I have for the 3.x releases is a bit incomplete and we had a strange 3.2 release which I didn't include because we suddenly jumped from branching 3.1 to releasing 3.2 (that was the C++ ABI thing, IIRC). Anyway, here's the data I got from our release schedule. These are the durations of each stage since 3.1

Release         Stage 1 Stage 2 Stage 3 Release
 3.1 2002       0       65      69      212
 3.3 2003       169     1       61      271
 3.4 2004       262     103     93      289
 4.0 2005       172     64      170     288
 4.1 2006       59      74      133     309
 4.2 2007       61      59      216     393

There is some correlation between the length of Stage1 to Stage3. It's as if longer Stage1s lead to shorter Stage3s. Perhaps we could consider lengthening the early stages, which by all accounts are the more "fun", and shorten the pain during stage 3.

Long-lived branches are painful to maintain. If we allow them more time to get in mainline, it may help spread the stabilization work during stage1 (a lot more exposure).

Another thing we could try again is going into mini-freeze cycles spanning 2-3 weeks. We've done that in the past when mainline was in a pathetic state and I think it was helpful.


Some folks have suggested that we ought to try to line up FSF releases
to help the Linux distributors.
>
I don't think that's in our best interest. We can't really help what distros do. The fact is, however, that when distros pick up a specific release, that release tends to be pretty solid (e.g. 4.1).

I don't think that some of the ideas (like saying that you have to fix N
bugs for every patch you contribute) are very practical.  What we're
seeing is telling us something about "the market" for GCC; there's more
pressure for features, optimization, and ports than bug fixes.  If there
were enough people unhappy about bugs, there would be more people
contributing bug fixes.

Agreed. We are now in a featuritis phase. We still have many marketing bullet points that folks want filled in. I believe this will continue for at least a couple more releases. We are also being pulled from many directions at once, our user base is very diverse.

Making the infrastructure more palatable for external folks to get involved in development and attract more engineering cycles is probably one of our best long term bets.

Reply via email to