mining component repositories for installability issues

Post on 27-Jul-2015

330 Views

Category:

Software

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 - OCamlProroberto@dicosmo.org

www.dicosmo.org

May 18th, 2015

Roberto Di Cosmo Mining Component Repositories for Installability Issues 1/11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

top related