Page 1
Mining Component Repositoriesfor Installability IssuesA report from the trenches
Pietro Abate, Roberto Di Cosmo, Louis Gesbert, Fabrice LeFessant, Ralf Treinen and Stefano Zacchiroli
Irill - Inria - University Paris Diderot - [email protected]
www.dicosmo.org
May 18th, 2015
Roberto Di Cosmo Mining Component Repositories for Installability Issues 1/11
Page 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
Page 3
Maintenance is a great challenge
Minimal requirement
All components advertised to the usershould 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
Page 4
Maintenance is a great challenge
Minimal requirement
All components advertised to the usershould 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
Page 5
Maintenance is a great challenge
Minimal requirement
All components advertised to the usershould 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
Page 6
Maintenance is a great challenge
Minimal requirement
All components advertised to the usershould 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
Page 7
Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfroggerReading 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 packages.
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
Page 8
Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfroggerReading 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 packages.
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
Page 9
Some packages we see, but cannot get!
Let’s (try to) play pixfrogger today on a Debian testing system...
$ apt-get install pixfroggerReading 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 packages.
Roberto Di Cosmo Mining Component Repositories for Installability Issues 4/11
Page 10
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 cannever be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open sourcepackage-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45′000 packagestoday) 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
Page 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 cannever be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open sourcepackage-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45′000 packagestoday) 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
Page 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 cannever be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open sourcepackage-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45′000 packagestoday) 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
Page 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 cannever be satisfied is an co-NP-complete problem!
Di Cosmo, Leroy, Treinen, Vouillon et al.Managing the complexity of large free and open sourcepackage-based software distributions. ASE 2006
The component installability problem: tractable in practice
edos-debcheck checks a full repository (≈ 45′000 packagestoday) 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
Page 14
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
Page 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
Page 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
Page 17
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
Page 18
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
Page 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
Page 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
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
Page 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
Page 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
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
Page 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
Page 24
Questions?
Ask the team
Pietro Abate Roberto Di Cosmo Louis GesbertDose guru Free Software guru Opam maintainer
Fabrice Le Fessant Ralf Treinen Stefano ZacchiroliOCaml guru Debian QA former Debian leader
Get the toolsDose 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