LWN.net Logo

Distributions

Ubuntu introduces phased updates

By Nathan Willis
August 21, 2013

Updates to existing packages can occasionally introduce regression bugs, which cause considerable turmoil when they hit all of a large distribution's users at the same time. Ubuntu quietly introduced a new mechanism in its 13.04 release that progressively rolls out package updates, pushing each update to a small subset of the total user base first, then steadily scaling up, rather than publishing the update for everyone simultaneously. "Phased updates" (as they are known) are designed to catch and revert buggy package updates before they are propagated out to the entire user community. On the server side, the distribution monitors crash reports in order to decide whether each roll out should continue or be stopped for repair. The client-side framework has been in place since the release of 13.04, but updates themselves only started phasing in August when all of the server-side components were ready.

Canonical's Brian Murray wrote an introduction to the new roll-out mechanism on his blog shortly after the system went live. The system applies to stable release updates (SRUs) only. SRUs are updates from the main Ubuntu repositories that by definition are supposed to ship with a "high degree of stability" and fix critical bugs—in contrast, for example, to backport updates, which can introduce new features from upstream releases and are not supported by Canonical.

On the client end, phased updates are implemented in the update-manager tool, which is Ubuntu's graphical update installation application. The other methods for updating a package, such as apt-get, are not affected by the phased update plan. The rationale is that a user using apt-get to update a package is expressing a conscious intent to install the new version. update-manager, in contrast, periodically checks the Ubuntu package repositories in the background for new updates, so it is a passive tool.

update-manager generates a random number between zero and one for each package, then compares it to the Phased-Update-Percentage value published on the server for that package. If update-manager's generated number is less than the published percentage, then the package will be added to the list of available updates that the user can install. Dependencies for a package are pulled in automatically; if users are in the update group for foo, they do not also have to "re-roll the dice" (so to speak) and wait for libfoo-common as well.

As is probably obvious, controlling the value of Phased-Update-Percentage throttles the speed at which an update rolls out. Currently, whenever a new package update is published, the Phased-Update-Percentage begins at 10%. The update percentage is incremented by 10% every six hours if nothing goes wrong, so a complete roll-out takes 54 hours to ramp up to 100% availability.

Alternatively, if something does go wrong with an update, the percentage can be dialed back all the way to zero, at which point the update can be pulled from the repository then debugged to catch and repair whatever regressions it introduced. Regressions are counted based on the number of reports generated by Ubuntu's crash reporter Apport. Apport gathers system data for each crash (stack traces, core dumps, environment variables, system metadata, etc.) and after getting the user's consent, sends a report in to Launchpad. All reports are logged on the Ubuntu error tracker; when a newly released update triggers error reports that were not present with the previous version of the package, the Ubuntu bug squad will pull the update. When an update is pulled, both the package signer and the package uploader (who may, of course, be the same person) are notified via email.

In addition to the error tracker, the phased update process is exposed through several other Ubuntu services. The current update percentage is tracked on the publishing-history page for each package (a page which was already used to publication data and status information for each package). There is also a phased update overview page where one can see the current status of every SRU in the phasing process.

At the moment, the overview page only has data going back until August 7 (two weeks ago as of press time), so naturally there are only a handful of SRUs included. There are currently three updates at the 90% level, five at 80%, and two at 0%—indicating that they have been pulled. Those packages are the BAMF support library for Unity and—perhaps ironically—Apport. Ironic or not, the "Problems" column of the overview page links to the error reports for the package in question. For privacy reasons, the individual reports are only visible to approved members of the bug-triaging team. In an email, Murray said that the phased update system has caught five distinct regressions since its launch on August 7, and that nine package updates have progressed completely to the 100% distribution phase.

Five regressions caught may not seem like many, but in the context of Ubuntu's large installed user base, catching them before they are distributed to the entire community is likely to have averted several thousand application crashes. In his blog post on phased updates, Murray commented that the system supports some corner cases, such as not stopping an update if the team knows that the crashes it sees were not introduced by the update itself. He also pointed out that the system is new, so the team is still experimenting with the various parameters (such as the speed of roll-out itself and the utilities used to detect regressions introduced by a package).

The other interesting dimension of the system is that the subset of users who get access to the updated package at each phase is a random sample. That should ensure that the error reports come from a more statistically valid set of machines than, say, a self-selected "early adopter" group or a set of customers paying for first access.

The notion of being the first person to test out an update may make some users uncomfortable (at least some in the comments on Murray's blog post suggested as much), but it is important to remember that the updates being phased in are the SRUs, not experimental updates. SRUs are already required to go through a testing and sign-off process, so they should be stable; the fact that there are sometimes still errors and regressions is simply a fact of life in the software world. Nevertheless, Murray's post says it is possible to opt-out of the phased update system entirely by adding a directive to /etc/apt/apt.conf. Opting out means that update-manager will only report updates as available when they reach the 100% phase, by which point they should be more error-free. Alternatively, the impatient can simply user apt-get, and install all updates immediately.

Comments (5 posted)

Elementary OS releases "Luna"

August 21, 2013

This article was contributed by Bruce Byfield

When we last looked at elementary OS in April 2011, it was in its first beta release. Based on Ubuntu 10.10, it was using GNOME 2.32 and Docky, and customization was so limited that even the wallpaper could not be changed. Now, with the recent Luna release, much of that has changed. Today, elementary OS features its own desktop and many of its own applications, as well as a focus on both development and design. The customization options have also increased, although they still fall short compared to most desktops.

[Elementary OS]

Elementary OS grew from an icon set called "elementary" that governing council member Daniel Foré designed around 2007. But, as press lead Cassidy James tells the story: "it gained popularity, but he realized he could only do so much with icons. So he followed it up with an elementary GTK theme, which became pretty popular as well. But he wasn't done. While a well-designed GTK theme is nice, it doesn't fix the underlying user experience of an app. To do that, you need to patch the app or write a new one. So that's the direction elementary took."

Recruiting others from the Ubuntu and GNOME communities to patch Nautilus and work on first-party applications, Foré founded elementary OS as a combined development and design project. Its work was showcased first in the Jupiter release in early 2011, and, more recently in the new Luna release.

These origins have given elementary OS an emphasis on aesthetics as much as code. At least two of the project's council members have backgrounds in design. In fact, James goes so far as to say that "our entire team is led by designers rather than developers."

Many of the project's developers, he added, "are not only excellent at coding, but have an eye for design." This awareness of design is obvious in the unified, minimalist look of the desktop and basic utilities, as well as the attention to branding in everything from the installer to the web pages and the widgets on the desktop dialogs. Foré explained that "essentially, [elementary OS's] existence stems from a desire for great design."

The elementary experience

Elementary OS uses a modified version of the Ubuntu 13.04 installer. The most noticeable changes are a bare minimum of text and a reliance instead on icons and check boxes. These changes generally work, but at times it is at the expense of context, to the extent that inexperienced installers might be at a loss without the User Guide, since no online help is included.

The Pantheon desktop and its utilities often show their influences. Its fixed panel, for instance, is reminiscent of Unity, and so are its minimalist scroll bars. Similarly, the login manager is based on LightDM, and the Files file manager on Nautilus. The overall effect is as though GNOME 2 were using OS X widgets.

So why go to the trouble of rewriting these basic applications, instead of collecting them the way an average distribution does? Pantheon's individual applications do contain small enhancements — for instance, the music player includes the option to adjust the equalizer based on the genre of the current track, and the file manager has a button for re-opening closed tabs. However, such features are not really must-haves.

What binds the desktop and utilities is elementary OS's standardization on GTK3 and Vala. "Vala has been a great language to work with," Foré said, "seeing as it's been built specifically in conjunction with GObject while offering the same low barrier-of-entry as other modern languages like C#."

An important part of this standardization is Granite, which Foré describes as not "so much a separate framework as an expansion of GTK3. As we began to develop our apps, we realized we were using a lot of the same chunks of code over and over again. We built Granite in order to centralize this code, avoiding idiosyncrasies and ensuring that bug fixes propagate to all of our apps."

Thanks to Granite, the desktop and utilities share common features and behaviors. The (admittedly subjective) result is that Pantheon compares favorably to any desktop for speed. The project prominently lists "speedy" as one of the goals of elementary OS — something that seems to have been achieved.

[Elementary OS applications]

Just as importantly, the desktop and utilities have a common design theme, which includes selection using a single click across the desktop, and no menu or minimization button for windows. Instead, the close button is on the far left of the title bar and the maximize button is on the far right. Windows are minimized by dragging them to a hot corner of the display; that corner is chosen by the user in the Systems Setup dialog. Similarly, instead of a taskbar or a virtual workspace switcher, keyboard commands are used to open graphical lists at the bottom of the screen.

When elementary OS borrows applications, it favors those built with similar design principles, such as the Yorba Foundation's Geary email client and Shotwell photo manager, or the Midori web browser. Other applications are borrowed from GNOME, including Empathy and Totem, more out of functional necessity apparently than design compatibility, "much like how Xfce is not a GNOME 2 desktop, but uses several GNOME 2 technologies," James explained.

In addition to utilities with a common look, feel, and performance, the Luna release also adds one or two configuration choices — despite the fact that its developers assume that users expect to have choices made for them. This assumption is less irritating than you might expect — the desktop fonts, for example, display well even at the small size at which they appear in the panel, while the icons usually work even for a text-oriented diehard like me. All the same, a desktop is highly personal for those who spend 8-12 hours a day in front of one, and the loudest complaints about elementary OS are likely to concern the lack of choices for fonts, themes, and other customizations. Choosing the wallpaper is unlikely to be enough.

Overall, Pantheon is an immense improvement over the GNOME desktop in elementary OS's first release, transforming it from a derivative into something original. However, the impression Pantheon gives is of a work in progress, of something more than a proof of concept but less than finished. The logical expectation would be for more native applications and more customization in the next release. Meanwhile, Pantheon seems promising, just slightly less than complete.

Looking to the next release

All the same, elementary OS succeeds well enough in development and design that the Luna release has attracted a moderate degree of buzz. According to Foré the new release had some 120,000 downloads in the week after its release, while lead developer Cody Garver notes that the project has some 40 contributors, of which 10-15 are regular committers. By any standards, the project has become a respectable size, and appears to be growing steadily.

Project members are careful to avoid giving details about future plans. However, Foré does reveal that "we are looking into online accounts integration and ways to provide cloud services to our users." In addition, James mentions that "we've begun exploring more responsive design, client-side window decorations, and different ways for apps to interact with the shell."

In the last few years, elementary OS has evolved from a fledgling project to one of the more interesting desktop environments. Not only has it incorporated development and design as much or more as any free desktop — and with far fewer resources than many — but it has gone far further than most Linux distributions in coordinating its pieces into a coherent form. For this reason, project members prefer to refer to elementary OS as a "software platform" rather than a distribution.

That preference may seem like nothing but attitude, but it is hard to argue with that attitude when it has delivered on such ambitious plans. With Luna, elementary OS has exceeded the uncertain promise of its first release and become a project worth watching, flaws and all.

Comments (4 posted)

Brief items

Distribution quotes of the week

Compersion, n: the feeling you get when someone else also takes good care of one of your packages.
-- Enrico Zini

Debian OS
Twenty years, still relevant
This is what we are

The base of many
But without our great work
They could not exist

It is an honor
To be reused in that way
Be proud of your work

Enjoy the evening
Celebrate with us all night
There be poetry

-- Gerfried Fuchs

Since I run Debian on my computers, I do not play anymore to 3D shooting games, not because of the lack of Free 3D drivers, but because developing Debian is more fun and addictive.
-- unknown (from quotes compiled by Ana Guerrero and Francesca Ciceri)

Comments (2 posted)

Announcing the GNU Radio Live DVD

An early version of the GNU Radio LiveDVD is available for testing. "We've been using a bootable DVD for our private on-site training courses when our clients are in environments that do not allow using the Ettus Research LiveUSB drive. This has been useful enough that we've decided to make it publicly available as an ISO file download from the GNU Radio website."

Full Story (comments: none)

Distribution News

Fedora

Fedora 20 will not install sendmail by default

The August 14 meeting of the Fedora Engineering Steering Committee revisited the question of whether sendmail should be in the default install. This time, though, the results were different: FESCo decided, by a vote of five to two, to not install sendmail by default. Discussions at the recent Flock conference, it seems, were instrumental in changing some minds.

Full Story (comments: 21)

Newsletters and articles of interest

Distribution newsletters

Comments (none posted)

Open Source Mobile OS: The Four Contenders (TechWeek Europe)

TechWeek Europe has a survey of open-source mobile operating systems competing with Android. "For Intel, Tizen represents another avenue into the mobile space where smartphones and tablets are completely dominated by ARM-based chips, while Samsung merely wants to reduce its dependency on Android – something that in the past has led it to dabble with Windows Phone handsets in the past. Tizen looks like another back-up option for Samsung, but its efforts have gained credibility since it merged its in-house OS Bada with Tizen. If it goes with a different OS besides Android, Tizen would be it."

Comments (3 posted)

Page editor: Rebecca Sobol
Next page: Development>>

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds