Hi all,
The cross-distro App Installer Meeting that was announced a few weeks
ago took place last week. It was a very productive meeting, with people
from Debian, Fedora, Mageia, openSUSE and Ubuntu attending.
We wanted to see how we can collaborate on the creation of a good user
experience for installing applications, and we reached concrete
results: we agreed on an architecture to achieve this, with specific
technologies to be used.
A quick foreword: with this project, the user experience is what matters
to us. This means that our approach is application-centric instead of
being package-centric. We do not want the end users we target here to
have to learn about packages: they already know what an application is,
and this is what they actually care about ("I want Inkscape"). It is in
no way an attempt to kill packages; on the contrary, we'll build on top
of them. But this application-centric focus has several impacts on the
design of the architecture, from the user interface to metadata that we
want to display to users.
Architecture
============
The overall architecture of the project is described at:
http://distributions.freedesktop.org/wiki/AppStream/Implementation
We aim for getting a working implementation as soon as possible by
tying together existing projects. The architecture allows different
implementations, though. In particular, there is no reason why other
client implementations shouldn't exist or the data shouldn't be accessed
by the existing, distribution-specific tools.
Here's a very high-level summary:
+ On the client side:
- Use the Ubuntu Software Center as the reference UI (it should be
possible to implement other UI since everything is open)
- Access apps metadata through xapian
- Access additional metadata through OCS (Open Collaboration
Services)
- Access screenshots, possibly through screenshots.debian.net (using
a per-distro proxy) or similar services
+ On the server side:
- Generate apps metadata, based on information coming from upstream
.desktop files
- Make this metadata (as well as icons and more) available, ideally
in the distribution repositories, on the mirrors
+ Per-distribution work:
- The tool to generate the apps metadata will possibly be per-distro
- Each distro can decide on some policy wrt OCS:
. Use a distro-specific server or not
. Display comments/ratings/screenshots from other distros or not
. etc.
While we do welcome comments, it's worth pointing out that it's easy to
get stuck on trying to plan the best architecture ever, and we'll avoid
this: this architecture is our plan, and we will implement it :-)
Additional architectural bits
=============================
There are additional bits that we looked at, but that did not fit into
to overall architecture yet. It is our intention to integrate these
bits, though.
a) Matching packages between distributions
This may become handy if we want to share data like screenshots,
comments or ratings. The decision to use such data from other
distributions should be up to each distribution, but we want to
enable this possibility.
This has other uses for the contributor communities, like easily
browsing patches from other distributions.
b) The Debian tagging system (debtags)
Tagging applications can help users find the applications they look
for. The meeting was too short to think about reaching a full
agreement on this, but there was interest in the debtags system. If
most distributions are interested in adopting this system, we will
integrate debtags into the overall architecture.
Where do we go now?
===================
To keep us moving, we established a schedule for the development of this
project:
http://distributions.freedesktop.org/wiki/AppStream/ActionItems
Let me quickly summarize the timeline we're targetting (skipping some
details from the wiki page):
+ April: "Publish metadata / Port UI"
- Publish app metadata as part of the distros repos
- Make this app metadata available via xapian in all distros
- Port Ubuntu Software Center to non-Debian-based systems
+ July: "Integrate non-static metadata"
- Setup OCS servers for distros
- Use OCS from the Application Center
+ November: "Deliver to users"
- Ship a working Application Center in distros releasing around this
time
We'll work on this direction, and everybody is welcome to help!
Resources
=========
mailing list: http://lists.freedesktop.org/mailman/listinfo/distributions
wiki: http://distributions.freedesktop.org/wiki/AppStream
git: http://gitorious.org/appstream
We decided that for further communication, the distributions mailing
list would be the right place because our effort is cross-distributions.
If it turns out we're generating too much traffic for
distributions at lists.fd.o, we'll create a new mailing list.
We will use the distributions wiki to document our work, and we've
already put all the notes from the meeting there. Please keep in mind
that those are raw notes and that they might lack context :-) So don't
hesitate to ask for clarifications!
A project was already created on gitorious to collect various resources.
We know this is an important topic, and we believe we'll provide a good
solution for it much more easily by working together. So don't hesitate
to join the fun!
Vincent, on behalf of all the participants to the meeting
--
Les gens heureux ne sont pas pressés.