Slides of the MSR 2015 presentation on the debcheck tool, that has been used to track installability issues in Debian for almost 10 years, and can be extended to many other repositories, like the Opam and Drupal ones.
Architecture decision records - How not to get lost in the past
Mining Component Repositories for Installability Issues
1. Mining Component Repositories
for Installability Issues
A report from the trenches
Pietro Abate, Roberto Di Cosmo, Louis Gesbert, Fabrice Le
Fessant, Ralf Treinen and Stefano Zacchiroli
Irill - Inria - University Paris Diderot - OCamlPro
roberto@dicosmo.org
www.dicosmo.org
May 18th, 2015
Roberto Di Cosmo Mining Component Repositories for Installability Issues 1/11
2. Component repositories: ubiquitous, nowadays!
Just a few examples
Debian Eclipse Maven
≈50K packages plugins components
Opam CRAN Drupal
≈1K packages packages ≈ 100K modules
Contain thousands to tens of thousands of components
Roberto Di Cosmo Mining Component Repositories for Installability Issues 2/11
3. Maintenance is a great challenge
Minimal requirement
All components advertised to the user
should at least be installable on their own!
Roberto Di Cosmo Mining Component Repositories for Installability Issues 3/11
4. Maintenance is a great challenge
Minimal requirement
All components advertised to the user
should at least be installable on their own!
Not always the case, for multiple reasons
unsatisfiable dependencies (missing/conflicting components)
defective installation script
configuration problems
unexpected interaction with the environment
add here your preferred horror story
Roberto Di Cosmo Mining Component Repositories for Installability Issues 3/11
5. Maintenance is a great challenge
Minimal requirement
All components advertised to the user
should at least be installable on their own!
Not always the case, for multiple reasons
unsatisfiable dependencies (missing/conflicting components)
defective installation script
configuration problems
unexpected interaction with the environment
add here your preferred horror story
Roberto Di Cosmo Mining Component Repositories for Installability Issues 3/11
6. Maintenance is a great challenge
Minimal requirement
All components advertised to the user
should at least be installable on their own!
Not always the case, for multiple reasons
unsatisfiable dependencies (missing/conflicting components)
defective installation script
configuration problems
unexpected interaction with the environment
add here your preferred horror story
Let’s see some actual real life examples of the first case
Roberto Di Cosmo Mining Component Repositories for Installability Issues 3/11
7. Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfrogger
Reading package lists... Done
Building dependency tree
Reading state information... Done
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
8. Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfrogger
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. [...]
The following information may help
to resolve the situation:
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
9. Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfrogger
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. [...]
The following information may help
to resolve the situation:
The following packages have unmet dependencies:
pixfrogger : Depends: fenix but it is not installable
Depends: fenix-plugins-system but it is
not installable
E: Unable to correct problems, you have held broken package
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
10. Can we spot these cases before they hit the users?
Roberto Di Cosmo Mining Component Repositories for Installability Issues 5/11
11. Can we spot these cases before they hit the users?
The component installability problem: very hard, in theory
Finding the components in a repository whose dependencies can
never be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.
Managing the complexity of large free and open source
package-based software distributions. ASE 2006
Roberto Di Cosmo Mining Component Repositories for Installability Issues 5/11
12. Can we spot these cases before they hit the users?
The component installability problem: very hard, in theory
Finding the components in a repository whose dependencies can
never be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.
Managing the complexity of large free and open source
package-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45 000 packages
today) in way less than a minute (Vouillon, 2006)
dose library embedding Vouillon’s code in the distcheck tool,
actively maintained, adopted in the Debian and Opam communities
Roberto Di Cosmo Mining Component Repositories for Installability Issues 5/11
13. Can we spot these cases before they hit the users?
The component installability problem: very hard, in theory
Finding the components in a repository whose dependencies can
never be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.
Managing the complexity of large free and open source
package-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45 000 packages
today) in way less than a minute (Vouillon, 2006)
dose library embedding Vouillon’s code in the distcheck tool,
actively maintained, adopted in the Debian and Opam communities
We have tools, and very good ones, let’s use them!
Roberto Di Cosmo Mining Component Repositories for Installability Issues 5/11
14. A report from the trenches
Mining the Debian (hi)story
Roberto Di Cosmo Mining Component Repositories for Installability Issues 6/11
15. A report from the trenches
Mining the Debian (hi)story
debcheck (now distcheck) introduced on 12/2006
Roberto Di Cosmo Mining Component Repositories for Installability Issues 6/11
16. A glimpse of the Debianised debcheck QA mining tool
qa.debian.org/dose
Numbers are nice, but...
explanations are crucial to get the problems fixed!
Roberto Di Cosmo Mining Component Repositories for Installability Issues 7/11
17. A glimpse of the Debianised debcheck QA mining tool
Our little broken game
Roberto Di Cosmo Mining Component Repositories for Installability Issues 8/11
18. A glimpse of the Debianised debcheck QA mining tool
Our little broken game
A more interesting case
Roberto Di Cosmo Mining Component Repositories for Installability Issues 8/11
19. A glimpse of the Debianised debcheck QA mining tool
Our little broken game
A more interesting case
Notice the bug filed for chef-server-webui
Roberto Di Cosmo Mining Component Repositories for Installability Issues 8/11
20. Lessons learned
Mining for installability problems
can be done efficiently, using the distcheck tool from dose
provides valuable information to the repository QA team
a somewhat new trend in MSR:
aggregate individual component information to ...
... build a QA dashboard for the full repository
validated by almost 10 years of experience in Debian
Roberto Di Cosmo Mining Component Repositories for Installability Issues 9/11
21. Lessons learned
Mining for installability problems
can be done efficiently, using the distcheck tool from dose
provides valuable information to the repository QA team
a somewhat new trend in MSR:
aggregate individual component information to ...
... build a QA dashboard for the full repository
validated by almost 10 years of experience in Debian
The Debian adoption path
set up the dashboard
produce actionable bug reports (linked to the dashboard)
announce the tools and the process to the community
actively engage in the process
Roberto Di Cosmo Mining Component Repositories for Installability Issues 9/11
22. Outreach
A recent adopter: the Opam community
new package manager for the OCaml language
built on top of the dose library
Opam Weather Service dashboard, at ows.irill.org
Roberto Di Cosmo Mining Component Repositories for Installability Issues 10/11
23. Outreach
A recent adopter: the Opam community
new package manager for the OCaml language
built on top of the dose library
Opam Weather Service dashboard, at ows.irill.org
A generic framework, using the CUDF pivot format
Adaptable to other repositories:
the Drupal case initial port was done in a week!
Roberto Di Cosmo Mining Component Repositories for Installability Issues 10/11
24. Questions?
Ask the team
Pietro Abate Roberto Di Cosmo Louis Gesbert
Dose guru Free Software guru Opam maintainer
Fabrice Le Fessant Ralf Treinen Stefano Zacchiroli
OCaml guru Debian QA former Debian leader
Get the tools
Dose library http://dose.gforge.inria.fr/
Debian QA http://qa.debian.org/dose/
Opam Weather http://ows.irill.org/
Roberto Di Cosmo Mining Component Repositories for Installability Issues 11/11