|
|
Subscribe / Log in / New account

Slipping or skipping Fedora 18

By Nathan Willis
November 7, 2012

Fedora release dates have slipped in the past; the QA and release teams meet regularly for a Go/No-Go vote as the schedule draws to a close to assess whether outstanding blockers mandate additional development or QA time. But the Fedora 18 release cycle has seen more delays than usual — in large part because it incorporates an overhaul of the Anaconda installation tool, which is behind schedule. The inherent riskiness of rewriting such a critical component has some project members asking whether the feature-approval process itself needs refactoring, and others asking whether Fedora 18 should be pushed back significantly to ensure that the changes arrive with stability.

Anaconda runs loose

At the heart of the dilemma is the new UI feature for Anaconda. Although the name of the feature suggests an interface revamp, the work actually encompasses a host of changes, some of which touch on other low-level parts of the system, such as the removal of logical volume manager (LVM) storage as the default, and separating system-updating functionality into a separate tool.

Regardless of what one thinks about the specific changes, the refactored Anaconda is quite a bit behind schedule — and, just as importantly, it is still undergoing major development at a time in the development cycle when features should be implemented, and bugfixes should be the focus. As a result, the release schedule has been delayed five times; originally set for October 2, the beta release is now expected November 13. Anaconda issues dominate the list of blockers, though of course there are other issues.

Tom Lane expressed his frustration over the issue on the fedora-devel list on October 30:

It appears to me that anaconda is months away from being shippable. It's still got major features that are incomplete (one example above, but there are more), and I don't seem to be able to do anything at all with it without hitting serious bugs.

How is it that we're even considering shipping this version for F18? For any other package, we'd be telling the maintainer to hold off till F19. The rest of us don't get to be doing major feature development post-beta-freeze.

Lane's concerns were echoed by others, including the notion that the Anaconda development process was being allowed to run roughshod over rules and deadlines that were enforced on other packages. But the crux of the matter remained whether or not the new Anaconda could reasonably be expected to be finished. If not, Lane and the others argued, then surely shipping the Fedora 17 version of Anaconda was better than delaying the new release by still more months.

Adam Williamson argued that reverting to the old Anaconda would be more time consuming, since many of the new Anaconda's problems are fallout from changes to the Dracut initramfs infrastructure. "Oldui wasn't fixed for that, so if [we] were to try and switch back to oldui at this point, we'd have to go through the whole process of adjusting the code for the changes to dracut again, quite apart from any other issues."

Freeze or cut bait

For some, the one-week-delay announcements arriving weekly from the Go/No-Go meetings are as much a part of the problem as the readiness of the code. Fedora would be better to acknowledge the scope of the work remaining in Anaconda by pushing back the release schedule by one or two months, the argument goes. After all, the six month development cycle is not set in stone, and introducing major changes would be an acceptable reason to move it. Meanwhile, the weekly delay decisions consume time on their own, holding up other development teams — as well as generating many more "Fedora 18 delayed" news items. Lane contended that the project "can slip a month (or two) honestly, or you can fritter it away a week at a time, and ensure that as much of that time is unproductive as possible. There is not a third option."

David Airlie went even further, asking if the project should skip the Fedora 18 release entirely. That idea gained little traction, but there was support from many for pushing the release schedule back substantially. Tim Lauridsen called that idea preferable to reverting to the Fedora 17 Anaconda, since reverting would mean revisiting the new Anaconda integration problems during the Fedora 19 cycle.

But the length of the release cycle itself could also be contributing to the new Anaconda's continuing problems. Anaconda developer Vratislav Podzimek argued that the six month period on the calendar is not enough for a major rewrite, given how early the feature freeze takes place.

Originally it was about 3 months between the day F17 was released and the day new Anaconda was expected to work (F18 Alpha release). We of course didn't start the work on May 29, but since there were significant changes in F17 too at least part of the team had to fix bugs and make F17 releasable.

To that point, Toshio Kuratomi replied that, theoretically, each release cycle includes nine months of development time, because it begins when Rawhide is branched for the N+2 release, several months before N is final. However, he said, "there's a mismatch between this practice and the theory of how we develop Fedora." In practice, most developers do set up their development schedules around the not-quite-six-month release cycle. Fedora, he concluded, can either decide to bless this approach and work to make it more effective, or adopt a longer cycle.

There are some who feel that a longer cycle would benefit the project, but the idea has its downsides. For one, Fedora depends on several large upstream projects (e.g., GNOME) that use a six-month release cycle. Changing it would come at the cost of synchronization. For another, the reality is that most feature changes fit into the existing six-month schedule, and events like the Anaconda rewrite are the exception. Lengthening the release cycle for everyone would likely encourage other teams to work slower, and it would not prevent other large-scale features from running late — they would simply be later when they do run late. As Scott Schmit put it, if Fedora moves to a nine-month release cycle, "then people just get more ambitious with their features and then what? Slow the release cycle down more?"

Features and contingencies

But Schmit also contended that the root cause of the Anaconda problem was not that the Anaconda rewrite was big and disruptive, but that the feature came with no contingency plan, and the distribution did not adequately prepare for the risks in advance. There have been other "critical features" introduced in previous releases (GNOME 3 and systemd, for example), he said, about which Fedora leadership knew from the outset that a problem would force the entire release schedule to slip. In those instances, the teams worked hard to ensure that the new feature was ready and tested. In contrast, Anaconda's new UI "seems to have slipped through the cracks."

Others concurred; Williamson listed several high-impact effects of the new UI work that were not discussed when the feature was approved for inclusion:

* The change to only allowing one desktop environment to be installed interactively

* The change to not requiring a root password to be set

* The change to raw ext4 rather than LVM as the default partition scheme

* The fact that anaconda would no longer handle upgrades but an entirely new tool would be written for this

There were probably others, those are ones I recall. These four things alone are clearly major changes that merited discussion beyond the anaconda team and should have been at least explicitly included in the newUI feature and, in the fedup case, probably split out as its own feature.

Some, like Ralf Corsepius, suggested that the Fedora Engineering Steering Committee (FESCo) could alleviate similar woes in the future by making fallback strategies and contingencies part of the feature approval process. Williamson suggested extending Fedora's existing "critical path packages" concept to include "critical path features" as one such approach.

But not everyone sees a systemic problem in this case. To some, the Anaconda team simply should have started work on the rewrite a full release cycle before it was scheduled to be merged in — either working on it in parallel during the Fedora 17 cycle, or proposing it as a Fedora 19 feature. Jóhann B. Guðmundsson pointed out a conference presentation in which the Anaconda team speculated that the work would take two release cycles to complete. Considering that estimate from the team, it could hardly be a surprise that fitting the work into a single cycle proved to be a strain.

Of course, given limitless funds and an inexhaustible pool of developers, all sorts of distribution-building headaches would disappear. But the reality is that the Anaconda team has plenty on its plate already; certainly no one in the discussion accused team members of sitting idly by. They are as strapped for resources as anyone else. In any case, what-might-have-been is a moot point, or at least secondary in importance to preventing a recurrence in the future. The general consensus seems to be in favor of strengthening the feature approval process, particularly where high-impact changes are concerned. The list discussed the possibility of moving to a rolling-release model as well, but that suggestion never got beyond the speculative stage — for every proposed benefit, there was a downside, and the majority of both were hypothetical.

At least it is clear how working harder at assessing new critical features' viability and risks will improve things in future releases; whether that amounts to a formal process, or if the wake-up call of the new Anaconda experience will suffice, remains to be decided. As for what to do this cycle, so far no change in the process has been announced. The release schedule was pushed back again at the November 1 Go/No-Go meeting. The next meeting is scheduled for Thursday, November 8. As the schedule stands now, Fedora 18 is expected to be released December 11 — or about one month from now.



to post comments

Slipping or skipping Fedora 18

Posted Nov 8, 2012 3:28 UTC (Thu) by dlang (guest, #313) [Link]

The fundamental problem seems to be that they have allowed themselves to fall into the trap of thinking that all the work to be included in release X takes place after release X-1 (even the most extreme folks seem to be saying after the feature freeze of release X-1)

That is very much not the case. They need to learn from Linus and the Linux Kernel

Each kernel cycle doesn't start with development, it starts with a "merge window" when development that is considered ready to go is submitted to be included.

some of the work that is submitted during the merge window was developed since the last merge window, but a lot of it (especially major features) has been in development for several development cycles.

As a result, there are fewer 'oops, I missed that' bugs, and the attention can be concentrated on finding more subtle bugs and integration problems. Linus has been getting quite vocal over the last several release cycles when see sees brand new code submitted in the merge window.

Slipping or skipping Fedora 18

Posted Nov 8, 2012 3:43 UTC (Thu) by mattdm (subscriber, #18) [Link]

Since this article was written, we've pushed back the schedule by another two weeks, to November 27 for the beta. (No comment. Just sayin'. Etc.)

Slipping or skipping Fedora 18

Posted Nov 8, 2012 8:44 UTC (Thu) by mjthayer (guest, #39183) [Link] (2 responses)

My reaction to this sort of thing (usually it concerns Ubuntu, not Fedora!) is a feeling that distribution and development work should be much more orthogonal to one another. Not that I think distributions shouldn't do development too (I realise how much development in the FLOSS ecosystem comes out of RedHat), but I would like to see the development go into projects with clearly defined distribution-independent upstreams, even if those upstreams are in-house, so that they can be shipped "when they are ready" and if a new version is not ready in time the distribution can stick with the old one.

Obviously that wouldn't have solved all of the problems pointed out in the article, like the fact that the old Anaconda version had problems with the new initramfs infrastructure, but I think it might help.

Slipping or skipping Fedora 18

Posted Nov 8, 2012 9:05 UTC (Thu) by dlang (guest, #313) [Link] (1 responses)

the installer does seem to be a bit of a special case, but I seldom see a case of "this is so important a component that we are going to ignore the rules for it" work out well in the long run.

Slipping or skipping Fedora 18

Posted Nov 8, 2012 9:24 UTC (Thu) by mjthayer (guest, #39183) [Link]

dlang wrote:
> the installer does seem to be a bit of a special case

Agreed, but not so special that it might not have other down-stream consumers. Some of the people who produce their own distribution spins might well be interested in using a good installer maintained as a separate project.

Why Tie It to a Release Schedule?

Posted Nov 8, 2012 16:35 UTC (Thu) by wagerrard (guest, #87558) [Link] (1 responses)

Why is the redesign of Anaconda tied to any particular release schedule? Is it imperative that it be included in F18? Is some striking fault in need of correction? Given the short 6-month cycle, are there advantages to allowing an effort like an Anaconda redesign to operate outside the constraints of that cycle's release schedule? Releases would not be held hostage to delays in major efforts like that, and, in the end, it should be less problematic to roll the new bits into a release.

Why Tie It to a Release Schedule?

Posted Nov 8, 2012 21:11 UTC (Thu) by smoogen (subscriber, #97) [Link]

Because the installer depends on a lot of upstream utilities (python version, kernel version, dracut interfaces, glibc changes, etc) it can never just be moved from version to version without a lot of work. Just keeping track of all the special cases of hardware X, bios Y needs this can take up a lot of time also. So the team can either work on old anaconda or a new one.. and the release must have a working installer so it is either going to be the team doing old like usual or new.

This has been a problem from RHL 6 timeframe.. (and before with the older installer). And like most coding problems you can't throw more developers at it. The people who know how to write a new code base are the ones who would be the ones who would have to maintain the old. [And while everyone is welcome to help out.. it would seem that only a very very very small number have volunteered to do so.]


Copyright © 2012, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds