SlideShare a Scribd company logo
1 of 24
Download to read offline
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
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 user
should at least be installable on their own!
Roberto Di Cosmo Mining Component Repositories for Installability Issues 3/11
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
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
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
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
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
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
Can we spot these cases before they hit the users?
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 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
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
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
A report from the trenches
Mining the Debian (hi)story
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
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
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
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
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 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

More Related Content

Similar to Mining Component Repositories for Installability Issues

Ten years analysing large code bases: a perspective
Ten years analysing large code bases: a perspectiveTen years analysing large code bases: a perspective
Ten years analysing large code bases: a perspectiveRoberto Di Cosmo
 
Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Roberto Di Cosmo
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'tsPaolo Tonin
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - BostonBoyd Hemphill
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...Eric Smalling
 
Leveraging Solver Preferences to Tame your Package Manager
Leveraging Solver Preferences to Tame your Package ManagerLeveraging Solver Preferences to Tame your Package Manager
Leveraging Solver Preferences to Tame your Package ManagerRoberto Di Cosmo
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next GenerationTravis Thieman
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Distributions and package management in the containers era
Distributions and package management in the containers eraDistributions and package management in the containers era
Distributions and package management in the containers eranussbauml
 
The Gory Details of Debian packages
The Gory Details of Debian packagesThe Gory Details of Debian packages
The Gory Details of Debian packagesJeremiah Foster
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on ContainersCorwin Brown
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2Pascal Rapicault
 
A multi-dimensional analysis of technical lag in Debian-based Docker images
A multi-dimensional analysis of technical lag in Debian-based Docker imagesA multi-dimensional analysis of technical lag in Debian-based Docker images
A multi-dimensional analysis of technical lag in Debian-based Docker imagesAhmed Zerouali
 
Iz Pack
Iz PackIz Pack
Iz PackInria
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with condaTravis Oliphant
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSRoss Kukulinski
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinBoyd Hemphill
 
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...South Tyrol Free Software Conference
 

Similar to Mining Component Repositories for Installability Issues (20)

Ten years analysing large code bases: a perspective
Ten years analysing large code bases: a perspectiveTen years analysing large code bases: a perspective
Ten years analysing large code bases: a perspective
 
Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)Free Sorftware Research at Irill (highlights)
Free Sorftware Research at Irill (highlights)
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'ts
 
Boycott Docker
Boycott DockerBoycott Docker
Boycott Docker
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - Boston
 
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...So. many. vulnerabilities. Why are containers such a mess and what to do abou...
So. many. vulnerabilities. Why are containers such a mess and what to do abou...
 
Leveraging Solver Preferences to Tame your Package Manager
Leveraging Solver Preferences to Tame your Package ManagerLeveraging Solver Preferences to Tame your Package Manager
Leveraging Solver Preferences to Tame your Package Manager
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Dev Environments: The Next Generation
Dev Environments: The Next GenerationDev Environments: The Next Generation
Dev Environments: The Next Generation
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Distributions and package management in the containers era
Distributions and package management in the containers eraDistributions and package management in the containers era
Distributions and package management in the containers era
 
The Gory Details of Debian packages
The Gory Details of Debian packagesThe Gory Details of Debian packages
The Gory Details of Debian packages
 
Corwin on Containers
Corwin on ContainersCorwin on Containers
Corwin on Containers
 
Do's and Do not's about p2
Do's and Do not's about p2Do's and Do not's about p2
Do's and Do not's about p2
 
A multi-dimensional analysis of technical lag in Debian-based Docker images
A multi-dimensional analysis of technical lag in Debian-based Docker imagesA multi-dimensional analysis of technical lag in Debian-based Docker images
A multi-dimensional analysis of technical lag in Debian-based Docker images
 
Iz Pack
Iz PackIz Pack
Iz Pack
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with conda
 
Shipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOSShipping NodeJS with Docker and CoreOS
Shipping NodeJS with Docker and CoreOS
 
StackEngine Demo - Docker Austin
StackEngine Demo - Docker AustinStackEngine Demo - Docker Austin
StackEngine Demo - Docker Austin
 
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...
SFScon21 - Carlo Piana - Alberto Pianon - Aliens4friends: make yourself an al...
 

Recently uploaded

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrandmasabamasaba
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareJim McKeeth
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 

Recently uploaded (20)

WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
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