mining component repositories for installability issues

24
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 [email protected] www.dicosmo.org May 18th, 2015 Roberto Di Cosmo Mining Component Repositories for Installability Issues 1/11

Upload: roberto-di-cosmo

Post on 27-Jul-2015

330 views

Category:

Software


3 download

TRANSCRIPT

Page 1: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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: Mining Component Repositories for Installability Issues

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