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)
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 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.
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
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)
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
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
Comments (none posted)
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>>