I’m incredibly excited about the upcoming release. I’ve been running the pre-release of Fedora 12 for some time now and it’s really solid on all the hardware I have at home, including a netbook, a couple workstations, and my workhorse laptop. Such a great job by everyone involved, I’m truly impressed. As we near the release, I’ve been thinking about the idea of update discipline. This is just the term I happen to give to the idea of making sure that updates are solid and making life better for all users of Fedora, including our growing contributor base, consistently. One of the things it brought to mind was the way our community self-regulates.
The connection I made mentally was that there are undoubtedly packages in the Fedora repository — probably several thousand of them — that are in the proverbial long tail of use. In other words, many packages probably have a limited audience and are fairly unique. These aren’t things like core libraries or even special frameworks, but things like one-off utilities or other “edge” packages. Heck, I probably maintain one or two of those kind myself, partly because they’re low-risk or don’t often change. We’ve got over 15,000 binary packages in Fedora 12, and it’s a vast assortment from the most basic functionality almost every piece of code needs, to highly specialized tools or libraries. We have the ability to self-regulate not only this package set, through continually including new and exciting software, but also the way we approach updates to that software.
When edge packages have an upstream change, it’s often minor, or affects very few people. There are lots of perfectly good reasons for those packages to update in a stable release like Fedora 12. (Of course, we want any such changes to avoid any repository breakage, and it’s still important that Fedora provide the automatic tooling necessary to resist any such breakage.) But there are quite a lot of packages that are important across the board. Recognizing this, our release engineering team has been working for some time on the definition and application of critical path. That is, packages so important to Fedora that a special level of care should be taken to ensure they function as well as possible throughout a stable release.
Somewhere between this critical path group, and the entire universe of Fedora repository packages, is a line we might be able to use as a community for some self-discipline when it comes to updates. Maybe that line is at or close to the critical path; maybe it’s a little further out toward the edge than that. One way to think of that line is that it separates “stuff that lots of people are likely to use” from “stuff that relatively few people are likely to use.” But wherever we draw that line, as a community, we could find a comfortable spot on one side of which we’d be careful about pushing updates that aren’t fixing specific problems such as bugs or security issues for Fedora 12.
In my mind, this could go hand-in-hand with the re-working of Rawhide as a non-installable tree. If Rawhide is simply another repository from which you can update packages, it’s easier to think of it as a place for regular upstream rebases, offered to users who always want the latest and greatest regardless of regressions or changes. Now certainly there are cases where upstreams issue new releases that fix a single, specific bug or security issue. In those cases, releasing the new upstream to a stable Fedora can make perfect sense. But that’s often not the case, so I’m hoping that each of us packagers (including myself, since I maintain a few too) can look carefully at our updates over the next few months, and renew our dedication to quality in the updates we provide.
We’re starting with an exceptional release in Fedora 12; let’s see how we can do the best job possible of keeping it delightful for each other, and all our millions of users worldwide. I’m looking forward to working with FESCo and our packagers more over the coming weeks on ways we can enhance Fedora’s stability while still continuing to keep the best of free software in front of our users and contributors. Our community has done a tremendous amount of self-improvement over the years, so I have high expectations for the future, and hope you will too.
Two days until Fedora 12!