Michael has been around for more than 10 years and has always contributed to the APT software family. He’s the author of the first real graphical interface to APT–synaptic. Since then he created “software-center” as part of his work for Ubuntu. Being the most experienced APT developer, he’s naturally the coordinator of the APT team. Check out what he has to say about APT’s possible evolutions.
My questions are in bold, the rest is by Michael.
Who are you?
My name is Michael Vogt, I’m married and have two little daughters. We
live in Germany (near to Trier) and I work for Canonical as a software
developer. I joined Debian as a developer in early 2000 and started to
contribute to Ubuntu in 2004.
What’s your biggest achievement within Debian or Ubuntu?
I can not decide on a single one so I will just be a bit verbose.
From the very beginning I was interested in improving the package
manager experience and the UI on top for our users. I’m proud of the
work I did with synaptic. It was one of the earliest UIs on top of
apt. Because of my work on synaptic I got into apt development as well
and fixed bugs there and added new features. I still do most of the
uploads here, but nowadays David Kalnischkies is the most active
developer.
I also wrote a bunch of tools like gdebi, update-notifier,
update-manager, unattended-upgrade and software-properties to make the
update/install situation for the user easier to deal with. Most of the
tools are written in python so I added a lot of improvements to
python-apt along the way, including the initial high level “apt”
interface and a bunch of missing low-level apt_pkg features. Julian
Andres Klode made a big push in this area recently and thanks to his
effort the bindings are fully complete now and have good
documentation.
My most recent project is software-center. Its aim is to provide a UI
strongly targeted for end-users. The goal of this project is to make
finding and installing software easy and beautiful. We have a fantastic
collection of software to offer and software-center tries to present
it well (including screenshots, instant search results and soon
ratings&reviews). This builds on great foundations like aptdaemon by
Sebastian Heinlein, screenshots.debian.net by Christoph Haas,
ddtp.debian.org by Michael Bramer, apt-xapian-index by Enrico Zini and
many others (this is what I love about free software, it usually
“adds”, rarely “takes away”).
What are your plans for Debian Wheezy?
For apt I would love to see a more plugable architecture
for the acquire system. It would be nice to be able to make apt-get
update (and the frontends that use this from libapt) be able to
download additional data (like debtags or additional index file
that contains more end-user targeted information). I also want to
add some scripts so that apt (optionally) creates btrfs snapshots
on upgrade and provide some easy way to rollback in case of problems.
There is also some interesting work going on around making the apt
problem resolver a more plugable part. This way we should be able to
do much faster development.
software-center will get ratings&reviews in the upstream branch, I
really hope we can get that into Wheezy.
If you could spend all your time on Debian, what would you work on?
In that case I would start with a refactor of apt to make it more
robust about ABI breaks. It would be possible to move much faster
once this problem is solved (its not even hard, it just need to be
done). Then I would add a more complete testsuite.
Another important problem to tackle is to make maintainer scripts more
declarative. I triaged a lot of upgrade bug reports (mostly in ubuntu
though) and a lot of them are caused by maintainer script
failures. Worse is that depending on the error its really hard for the
user to solve the problem. There is also a lot of code
duplication. Having a central place that contains well tested code to
do these jobs would be more robust. Triggers help us a lot here
already, but I think there is still more room for improvement.
What’s the biggest problem of Debian?
That’s a hard question I mostly like Debian the way it is. What
frustrated me in the past were flamewars that could have been
avoided. To me being respectful to each other is important, I don’t
like flames and insults because I like solving problems and fighting
like this rarely helps that. The other attitude I don’t like is to
blame people and complain instead of trying to help and be positive
(the difference between “it sucks because it does not support
$foo” instead of “it would be so helpful if we had $foo because it
enables me to let me do $bar”).
For a long time, I had the feeling you were mostly alone working on APT and were just ensuring that it keeps working. Did you also had this feeling and are things better nowadays ?
I felt a bit alone sometimes That being said, there were great
people like Eugene V. Lyubimkin and Otavio Salvador during my time who
did do a lot of good work (especially at release crunch times) and
helped me with the maintenance (but got interested in other area than
apt later). And now we have the unstoppable David Kalnischkies and
Julian Andres Klode.
Apt is too big for a single person, so I’m very happy that especially
David is doing superb work on the day-to-day tasks and fixes (plus big
project like multiarch and the important but not very thankful
testsuite work). We talk about apt stuff almost daily, doing code
reviews and discuss bugs. This makes the development process much
more fun and healthy. Julian Andres Klode is doing interesting work
around making the resolver more plugable and Christian Perrier is as
tireless as always when it comes to the translations merging.
I did a quick grep over the bzr log output (including all branch
merges) and count around ~4300 total commits (including all revisions
of branches merged). Of that there ~950 commits from me plus an
additional ~500 merges. It was more than just ensuring that it keeps
working but I can see where this feeling comes from as I was never
very verbose. Apt also was never my “only” project, I am involved in
other upstream work like synaptic or update-manager or python-apt
etc). This naturally reduced the time available to hack on apt and
spend time doing the important day-to-day bug triage, response to
mailing list messages etc.
One the python-apt side Julian Andres Klode did great work to improve
the code and the documentation. It’s a really nice interface and if you
need to do anything related to packages and love python I encourage
you to try it. Its as simple as:
import apt cache = apt.Cache() cache["update-manager"].mark_install() cache.commit()
Of course you can do much more with it (update-manager, software-center
and lots of more tools use it). With “pydoc apt” you can get a good
overview.
The apt team always welcomes contributors. We have a mailing list and
a irc channel and it’s a great opportunity to solve real world
problems. It does not matter if you want to help triage bugs or write
documentation or write code, we welcome all contributors.
You’re also an Ubuntu developer employed by Canonical. Are you satisfied with the level of cooperation between both projects? What can we do to get Ubuntu to package new applications developed by Canonical directly in Debian?
Again a tricky question When it comes to cooperation there is always
room for improvement. I think (with my Canonical hat on) we do a lot
better than we did in the past. And it’s great to see the current DPL
coming to Ubuntu events and talking about ways to improve the
collaboration. One area that I feel that Debian would benefit is to be
more positive about NMUs and shared source repositories (collab-maint
and LowThresholdNmu are good steps here). The lower the cost is to
push a patch/fix (e.g. via direct commit or upload) the more there
will be.
When it comes to getting packages into Debian I think the best
solution is to have a person in Debian as a point of contact to help
with that. Usually the amount of work is pretty small as the software
will have a debian/* dir already with useful stuff in it. But it helps
me a lot to have someone doing the Debian uploads, responding to the
bugmail etc (even if the bugmail is just forwarded as upstream
bugreports IMO it is a great opportunity especially for new
packagers as they will not have to do a lot of packaging work to get
those apps into Debian. This model works very well for me for
e.g. gdebi (where Luca Falavigna is really helpful on the Debian
side).
Is there someone in Debian that you admire for his contributions?
There are many people I admire. Probably too many to mention them
all. I always find it hard to single out individual people because
the project as a whole can be so proud of their achievements.
The first name that comes to my mind is Jason Gunthorpe (the original
apt author) who I’ve never met. The next is Daniel Burrows who I met
and was inspired by. David Kalnischkies is doing great work on
apt. From contributing his first (small) patch to being able to
virtually fix any problem and adding big features like multiarch
support in about a year. Sebastian Heinlein for aptdaemon.
Christian Perrier has always be one of my heroes because he cares so
much about i18n. Christoph Haas for screenshots.debian.net, Michael
Bramer for his work on debian translated package descriptions.
Thank you to Michael for the time spent answering my questions. I hope you enjoyed reading his answers as I did. Subscribe to my newsletter to get my monthly summary of the Debian/Ubuntu news and to not miss further interviews. You can also follow along on Identi.ca, Twitter and Facebook.
Originally Posted here on 2011-01-21