On making releases..

Linus Torvalds's picture

So I cut the 2.6.27 release today, and it's always a somewhat anti-climactic thing.

The whole point of a release is that it should be something reasonably stable. Stable enough so that people can take that release and use it as a base for the stable tree, which in turn tends to be a base for most Linux distributions. It doesn't have to be perfect (and obviously no release ever is), but it needs to be in reasonable shape.

Of course, depending on the exact requirements of the distributions (whether it is for specific features they are waiting for or simply due to their timing of releases), any particular kernel release I do will be more or less relevant for most end users. I have little input on that, nor do I actually want to have any. I can only put my mark and say "This is a reasonable base after the craziness that went before".

So in a very real way, a release is just a starting point for further work, but very little of that "further work" is actually things I have anything to do with what-so-ever or much interest in. Yes, I see the patches that are queued up for the stable kernels, but mostly as an observer. And the distributions do their own thing.

So what makes a release anti-climactic is that from a development standpoint - at least as far as I'm concerned - it is inevitably at the end of a gradual slowing down of interest. So to me a release is not so much of a birth of a new kernel version, it's more of a laying-to-rest of an old one. It's also an end to a fairly quiet period.

So I tagged the release five hours ago, and during the few days before that I had barely a score of commits to merge. But now that I have cut the release, my mailbox is starting to come alive with merge requests for the next version - with thousands of commits queuing up for merging in just a few hours, as opposed to the slow trickle in the days that went before.

This is all exactly as it should be, of course, but it still feels bass-ackwards, in that people always talk about the death-march to a release, and how you're supposed to take a well-deserved vacation after the release.

For example, when I worked for Transmeta, the hardware people would basically take a month off after doing a tape-out. That seems somewhat natural just deserts. But when it comes to Linux development the "tape-out" of making a release acts the other way around. The calm was before, now comes the week or two of crazy merging.

Of course, the craziness won't start today. I want to give releases at least one nightly snapshot before I start merging stuff. So tonight, the release is done, and I won't be reading any email at all for a change. I'll need to finish the book I'm reading, since for a couple of weeks I'll not have much time for it.