About stable releases

Tagged:  •    •  

There was an interesting thread on reddit about how glibc releases are managed. Well, interesting except for calling names at the glibc maintainer, so you have to filter out that to get the real message.

Shortly speaking, Ulrich Drepper (said glibc maintainer) is not doing stable releases of glibc anymore and instead directing people to get the checked out sources from the stable branch. It may seem weird, but this is actually a great idea, and the reason is exactly the last four magic words, which no one seems to have understood.

At whatever point in time, the stable branch of a properly maintained free software project is always better than the last release. Sometimes, maintainers may backport easy fixes to the stable branch even if they are not releasing anymore from that branch. For example, I'm going to backport the fix for issue 266 to the stable 3.0 branch, even though I won't release from there anything in the future unless begged/payed (which I know won't happen, but anyway).

In the case of GNU Smalltalk, checked out sources need Autoconf and Automake, so using tarballs may be simpler for some users. And I do believe that providing tarballs for unstable versions that are known to be "not that bad" is a good idea. But when the trunk is not open for new features (as is the case now for GNU Smalltalk and has been since approximately mid September), or if you are using a stable branch, whenever possible do not use released tarballs and you'll get a better system.

When I go to install some piece of software, say UNG Klatllams, on a new machine, I might have problems that are different from the last time I installed UNG Klatllams. I'd like to be able to try installing the same version of UNG Klatllams that I previously installed to see if the problem goes away, so that I can find out whether it is a bug unintentionally introduced in the stable Klatllams branch or instead due to something I'm doing wrong. If someone else tells me they're having trouble running my software on top of Klatllams, it's helpful if I can try it on the same version of Klatllams they're using, or if they can try it on the same version of Klatllams I'm using. When I hear of a bug fix that happened some time ago on the stable Klatllams branch that might solve some problem I'm having, I want to be able to look at a list of which versions are on which machines, in order to see which machines need to be upgraded. If I can't get someone else's software to work with the current "stable" Klatllams, it is very helpful if I can try running it on the version that they had it working on.

I'm not going into the question, here, of whether it's better to have separate "stable" and "unstable" branches or not. Either way, it's much better if you have some kind of defined naming scheme for widely-used versions of the software.

In short, defined, versioned releases are useful. Really, really useful. Ulrich has very little regard for anyone else's priorities, and this course of action reflects that. He's coming dangerously close to earning a Jörg Schilling Prize For Free Software Project Management.

Didn't intend to make that anonymous. --- Kragen Javier Sitaker

The stable-branch approach could be valid with a modern version control system. Here's a scenario:

  • I pull a source tree, build it, and distribute the result to my users.
  • A user reports a bug to me. I fix it in my tree, and bring you a patch.
  • You can't replicate the bug in your tree, so you ask me what version I pulled.
  • If the version control system is (say) Subversion, I can tell you a revision number, and you can check out that revision of the whole tree. If it's CVS, the best I can do is tell you the revision number of every single file in the tree--a lot of work for me, and even more for you.

It looks like GNU Smalltalk uses Git, with a CVS frontend (right?). But glibc just uses CVS. It's a disaster waiting to happen.

Indeed. I don't think anyone uses the CVS gateway to the gst repository indeed.

But I should add HEAD's sha1 to GNU Smalltalk's --version output.

No matter how careful you are, integrating changes backwards into a stable branch is a fantastic way of ending up with a not-so-stable branch.

This whole story smacks of a disconnect between users and developers. Maybe you don't like snapshotting a stable version of your stuff and releasing it, but bear in mind that /I/ don't really want to be going and getting that same stuff from a branch that was stable at some point but has since had you making changes to it!

That would be a perfect example of someone who does not understand the complexity of his own software anymore.

Some projects manage to provide stable tarballs, some others do not. Why do some manage whereas others do not?
It does not matter if it gets outdated or not - patching a once stable tarball is in no way a difficult task.

There is no general "disconnect" because every developer is different as well. And some developers behave differently too.

This whole issue would have been different if developers cope with more care and if they would agree on something.

Let's take Autoconf for example. It is an outdated concept. But it provides the user with several candy, like an
easy --prefix. Everything that would want to challenge it would require to provide the USERS with a same or similar functionality.

And about Drepper - he himself chose certain words. I do not think that a developer who purposely chooses certain words
should become immune to "name calling" when it are his own words who downgrade all users as "average users".

If you start the flame, do not expect to let it calm down on its own.

I think the complaint was actually that the name of the stable branch was not documented anywhere.

It might have been in the original blog post, but not on the comments to the post and on reddit which became "no tarballs? you must be kidding".

Yes, this was my understanding of the issue as well (disclaimer: I have not personally looked at the glibc project page). The point is, if it's not immediately obvious to a reasonably intelligent person how to get what he's looking for, the site needs to be redesigned or fixed.

User login