SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Downloaden Sie, um offline zu lesen
Debian Quality Assurance

      Lucas Nussbaum
     lucas@debian.org




    lucas@debian.org Debian Quality Assurance   1 / 31
Me


     Assistant professor (Maître de conférences) at Univ. de Lorraine
         Teach Free Software in a system administration curriculum
         (Licence Professionnelle Administration Système, Réseaux et
         Applications à base de Logiciel Libre)

     Debian involvement:
         Collaboration between Debian and Ubuntu
         Ruby packaging
         Archive rebuilds
         Ultimate Debian Database




                         lucas@debian.org Debian Quality Assurance      2 / 31
Debian

Well known and respected for:




                       lucas@debian.org Debian Quality Assurance   3 / 31
Debian

Well known and respected for:
    Its long and bumpy release cycles




                       lucas@debian.org Debian Quality Assurance   3 / 31
Debian

Well known and respected for:
    Its long and bumpy release cycles
    Its quality

But it was not a given:
    > 1000 Debian Developers
        Mostly volunteers, with their own agendas
    > 2000 Package maintainers
    18117 software packages
        Some very popular packages
        A lot of niche packages




                          lucas@debian.org Debian Quality Assurance   3 / 31
Quality factors




                  lucas@debian.org Debian Quality Assurance   4 / 31
Quality factors

   Culture: "We release when it’s ready "
       Many DDs won’t compromise on this




                     lucas@debian.org Debian Quality Assurance   4 / 31
Quality factors

   Culture: "We release when it’s ready "
       Many DDs won’t compromise on this

   Packages ownership: individuals or small teams
       Many of the maintainers are experts of their packages




                      lucas@debian.org Debian Quality Assurance   4 / 31
Quality factors

   Culture: "We release when it’s ready "
       Many DDs won’t compromise on this

   Packages ownership: individuals or small teams
       Many of the maintainers are experts of their packages

   Release Critical (RC) bugs
       Prevent packages from being part of a release
       Everybody is welcomed to fix them
           Non-Maintainer Uploads




                      lucas@debian.org Debian Quality Assurance   4 / 31
Quality factors

   Culture: "We release when it’s ready "
       Many DDs won’t compromise on this

   Packages ownership: individuals or small teams
       Many of the maintainers are experts of their packages

   Release Critical (RC) bugs
       Prevent packages from being part of a release
       Everybody is welcomed to fix them
           Non-Maintainer Uploads

   Debian Quality Assurance team



                      lucas@debian.org Debian Quality Assurance   4 / 31
Debian QA team



  Goal: Improve the quality of Debian as a whole

  Not really a team (no strict membership), more like a central place
  to discuss and work on QA

  IRC: #debian-qa@irc.debian.org

  Mailing list: debian-qa@lists.debian.org




                      lucas@debian.org Debian Quality Assurance    5 / 31
Debian QA team: Tasks




  Run archive-wide checks and mass bug filings


  Maintain QA infrastructure


  Take care of the dirty areas of Debian




                      lucas@debian.org Debian Quality Assurance   6 / 31
Archive-wide checks
and Mass bug filings




  lucas@debian.org Debian Quality Assurance   7 / 31
Archive-wide checks and MBF



  Developers are volunteers:
     Focus on interesting things
     Manual testing is boring → not done

  Need automated tests

  Other advantage: treats all packages equally
  Niche packages are very important to some users




                      lucas@debian.org Debian Quality Assurance   8 / 31
Archive rebuilds

  Rebuild all packages from source
  7 hours on 40 build nodes (using Amazon EC2)
  Detect packages that Fail To Build From Source (FTBFS)
      Bugs in packages
      Toolchain bugs
      Failures caused by changes in other packages

  Ran every 2-3 weeks
  Scripts to analyze failures and file bugs semi-automatically
  (about 200 bugs filed per hour)
  Also used for test rebuilds with new compilers, linkers, . . .
  → Valuable information for upstream



                       lucas@debian.org Debian Quality Assurance   9 / 31
Debcheck
  Check (statically) that dependencies can be satisfied
  Not trivial: versioned dependencies, alternate depends, conflicts
  2 versions:
      "Simple one", in PHP
      http://qa.debian.org/debcheck.php
      Better one: edos-debcheck (EDOS project)
          Can also work with RPMs
          http://edos.debian.net/




                      lucas@debian.org Debian Quality Assurance   10 / 31
Piuparts



  Testing package installation, upgrade and removal

  Find bugs in maintainer scripts
  (Shell) scripts executed during package installation/removal

  Developers don’t run it on their systems
  → Archive-wide setup

                    http://piuparts.debian.org




                          lucas@debian.org Debian Quality Assurance   11 / 31
Lintian
   Static analysis of packages

   Usually run locally by the developer, before uploading

   Archive-wide setup for continuous testing

   Packages now rejected at upload time for some errors

   Some example findings:
      Use of deprecated packaging features
      Common packaging mistakes
      Embedded copies of libraries
      Spelling errors in binaries
       usefull visiters treshold targetted superseeded dependancies
       splitted maintainance explicitely equiped informations mispelled

                   http://lintian.debian.org
                        lucas@debian.org Debian Quality Assurance         12 / 31
DEHS - Debian External Health Status




  Monitor upstream version of packages

  Detect when the Debian package is outdated

  HTML scraping + regular expressions
  Configured in debian/watch




                     lucas@debian.org Debian Quality Assurance   13 / 31
And more . . .




   Scan build logs for dangerous warnings

   Track security issues

   Track popularity of packages

   ...




                       lucas@debian.org Debian Quality Assurance   14 / 31
Maintaining infrastructure




    lucas@debian.org Debian Quality Assurance   15 / 31
Infrastructure: mitigating the data hell



   Debian: aggregation of loosely-connected services
       No Launchpad!
       Everyone can start their own service

   Data everywhere
   A dozen of places to get interesting data

         Tools required to gather data in a central place
                and expose it to the maintainers




                         lucas@debian.org Debian Quality Assurance   16 / 31
Package Tracking System (PTS)




              Source package-centric view
         http://packages.qa.debian.org/package

                 lucas@debian.org Debian Quality Assurance   17 / 31
Developer Packages Overview (DDPO)




                Developer-centric view
          http://qa.debian.org/developer.php




                 lucas@debian.org Debian Quality Assurance   18 / 31
Ultimate Debian Database (UDD)
     Gather everything into a single SQL DB
     Perfect tool for data-mining Debian

Currently imported in UDD:
Debian Sources and Packages, bugs, popcon, testing migrations, upload history,
orphaned packages, carnivore, lintian, debtags, translations, NEW queue,
screenshots, DEHS, ldap, wanna-build, removals, Ubuntu Sources and Packages,
Ubuntu bugs, Ubuntu popcon
Possible questions you can answer with UDD:
     RC buggy packages in testing, sorted by popcon?
     Packages for which the last 4 uploads were NMUs?
     Packages not maintained by official DDs?


                          http://udd.debian.org/


                             lucas@debian.org Debian Quality Assurance           19 / 31
Some UDD queries
   Packages with the highest number of different lintian errors or
   warnings
select package, count(distinct tag) as cnt
from lintian
where tag_type in(’error’,’warning’)
group by package
order by cnt desc limit 15;




                       lucas@debian.org Debian Quality Assurance     20 / 31
Some UDD queries
   Packages with the highest number of different lintian errors or
   warnings
select package, count(distinct tag) as cnt
from lintian
where tag_type in(’error’,’warning’)
group by package
order by cnt desc limit 15;

                         package                      count
                          tsocks                       18
                        pygopherd                      18
                   cyclades-serial-client              17
                        muddleftpd                     17
                            elib                       17


                       lucas@debian.org Debian Quality Assurance     20 / 31
Some UDD queries

    Who uploaded wheezy’s packages?
select changed_by, count(*) from sources s, upload_history uh
where s.source = uh.source and s.version = uh.version
and s.distribution=’debian’ and s.release = ’wheezy’
group by changed_by order by count desc limit 8;




                      lucas@debian.org Debian Quality Assurance   21 / 31
Some UDD queries

    Who uploaded wheezy’s packages?
select changed_by, count(*) from sources s, upload_history uh
where s.source = uh.source and s.version = uh.version
and s.distribution=’debian’ and s.release = ’wheezy’
group by changed_by order by count desc limit 8;

                        changed_by                                count
          gregor herrmann <gregoa@debian.org>                      790
         Joachim Breitner <nomeata@debian.org>                     237
          Christian Perrier <bubulle@debian.org>                   229
           Alessio Treglia <alessio@debian.org>                    222
        Salvatore Bonaccorso <carnil@debian.org>                   207
              Clint Adams <clint@debian.org>                       206
            Jonas Smedegaard <dr@jones.dk>                         195



                      lucas@debian.org Debian Quality Assurance           21 / 31
Taking care of the dirty areas of Debian




           lucas@debian.org Debian Quality Assurance   22 / 31
Taking care of the dirty areas of Debian




Two complementary approaches:

   Focus on packages neglected by their maintainers

   Focus on maintainers neglecting their packages




                      lucas@debian.org Debian Quality Assurance   23 / 31
Neglected packages



  Already orphaned:
      Do minimalistic maintenance
      Problem: > 700 orphaned packages

  Not (yet) orphaned:
      Find them, orphan or remove them
      Goal: Put maintenance in the hands of people with time




                     lucas@debian.org Debian Quality Assurance   24 / 31
Bapase: finding neglected packages


  Multi-criteria search for neglected packages
  Based on Ultimate Debian Database




             http://udd.debian.org/bapase.cgi




                      lucas@debian.org Debian Quality Assurance   25 / 31
Inactive maintainers



  Missing In Action (MIA) team

  Find them, track them, orphan their packages
  Mostly based on reporting by users or fellow developers
  Echelon: records activity of DDs ; Carnivore: tracks identities

  Collaboration with the Account Managers:
  possible removal of their account
  (Unused accounts → possible security problems)




                        lucas@debian.org Debian Quality Assurance   26 / 31
Open challenges:
following Debian evolutions




     lucas@debian.org Debian Quality Assurance   27 / 31
Co-maintenance




                 lucas@debian.org Debian Quality Assurance   28 / 31
Use of VCSes




               lucas@debian.org Debian Quality Assurance   29 / 31
Following Debian evolutions
Need to improve QA infrastructure
    Team-aware
    VCS-aware
       Abstraction layer?
        If I’ve learned anything, it’s that OSS projects can’t make a choice. And
        when you can’t make a choice, what do you do? You support all options!
        Yay! How do we support all options? An abstraction layer! Yay! Abstraction
        layers are fun to write! Yay! – – Linux Hater’s Blog

    Standard workflows?
        Keep track of sponsorship requests
        http://mentors.debian.org + sponsorship-requests
        Track state of packages in VCS
            Partial solution: PET (http://pet.debian.net/)


                           lucas@debian.org Debian Quality Assurance                30 / 31
Conclusions




Debian:

    A large-scale volunteer-based distribution

    A continuous effort to organize development and improve quality




                        lucas@debian.org Debian Quality Assurance   31 / 31

Weitere ähnliche Inhalte

Was ist angesagt?

Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Jérôme Petazzoni
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013dotCloud
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationImesh Gunaratne
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionJérôme Petazzoni
 
Fast boot
Fast bootFast boot
Fast bootSZ Lin
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Boden Russell
 
Container Torture: Run any binary, in any container
Container Torture: Run any binary, in any containerContainer Torture: Run any binary, in any container
Container Torture: Run any binary, in any containerDocker, Inc.
 
Tokyo OpenStack Summit 2015: Unraveling Docker Security
Tokyo OpenStack Summit 2015: Unraveling Docker SecurityTokyo OpenStack Summit 2015: Unraveling Docker Security
Tokyo OpenStack Summit 2015: Unraveling Docker SecurityPhil Estes
 
U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-toMacpaul Lin
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)Boden Russell
 
How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016Phil Estes
 
Docker - container and lightweight virtualization
Docker - container and lightweight virtualization Docker - container and lightweight virtualization
Docker - container and lightweight virtualization Sim Janghoon
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)Joe Brockmeier
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConJérôme Petazzoni
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloudDobrica Pavlinušić
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler IceccSZ Lin
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyBoden Russell
 
Security on a Container Platform
Security on a Container PlatformSecurity on a Container Platform
Security on a Container PlatformAll Things Open
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemdAlison Chaiken
 

Was ist angesagt? (20)

Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?Docker, Linux Containers, and Security: Does It Add Up?
Docker, Linux Containers, and Security: Does It Add Up?
 
App container rkt
App container rktApp container rkt
App container rkt
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special EditionIntroduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
Introduction to Docker, December 2014 "Tour de France" Bordeaux Special Edition
 
Fast boot
Fast bootFast boot
Fast boot
 
Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302Linux Container Brief for IEEE WG P2302
Linux Container Brief for IEEE WG P2302
 
Container Torture: Run any binary, in any container
Container Torture: Run any binary, in any containerContainer Torture: Run any binary, in any container
Container Torture: Run any binary, in any container
 
Tokyo OpenStack Summit 2015: Unraveling Docker Security
Tokyo OpenStack Summit 2015: Unraveling Docker SecurityTokyo OpenStack Summit 2015: Unraveling Docker Security
Tokyo OpenStack Summit 2015: Unraveling Docker Security
 
U boot source clean up project how-to
U boot source clean up project how-toU boot source clean up project how-to
U boot source clean up project how-to
 
Lxc – next gen virtualization for cloud intro (cloudexpo)
Lxc – next gen virtualization for cloud   intro (cloudexpo)Lxc – next gen virtualization for cloud   intro (cloudexpo)
Lxc – next gen virtualization for cloud intro (cloudexpo)
 
How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016How Secure Is Your Container? ContainerCon Berlin 2016
How Secure Is Your Container? ContainerCon Berlin 2016
 
Docker - container and lightweight virtualization
Docker - container and lightweight virtualization Docker - container and lightweight virtualization
Docker - container and lightweight virtualization
 
Thinking inside the box (shared)
Thinking inside the box (shared)Thinking inside the box (shared)
Thinking inside the box (shared)
 
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxConAnatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic - LinuxCon
 
Security of Linux containers in the cloud
Security of Linux containers in the cloudSecurity of Linux containers in the cloud
Security of Linux containers in the cloud
 
Distributed Compiler Icecc
Distributed Compiler IceccDistributed Compiler Icecc
Distributed Compiler Icecc
 
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copyLinux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
Linux containers – next gen virtualization for cloud (atl summit) ar4 3 - copy
 
Security on a Container Platform
Security on a Container PlatformSecurity on a Container Platform
Security on a Container Platform
 
Automotive Grade Linux and systemd
Automotive Grade Linux and systemdAutomotive Grade Linux and systemd
Automotive Grade Linux and systemd
 

Ähnlich wie Distro Recipes 2013 : Debian and quality assurance

The Gory Details of Debian packages
The Gory Details of Debian packagesThe Gory Details of Debian packages
The Gory Details of Debian packagesJeremiah Foster
 
Advanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdvanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdam Gonnerman
 
Debian Packaging tutorial
Debian Packaging tutorialDebian Packaging tutorial
Debian Packaging tutorialnussbauml
 
The Ultimate Debian Database
The Ultimate Debian DatabaseThe Ultimate Debian Database
The Ultimate Debian DatabaseIsrael Herraiz
 
How to Build Package in Linux Based Systems.
How to Build Package in Linux Based Systems.How to Build Package in Linux Based Systems.
How to Build Package in Linux Based Systems.İbrahim UÇAR
 
Moeller Debian Bosc2009
Moeller Debian Bosc2009Moeller Debian Bosc2009
Moeller Debian Bosc2009bosc
 
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
 
Evolution of Technical Lag in DockerHub images - Benevol20
Evolution of Technical Lag in DockerHub images - Benevol20Evolution of Technical Lag in DockerHub images - Benevol20
Evolution of Technical Lag in DockerHub images - Benevol20Ahmed Zerouali
 
Kernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianKernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianAnne Nicolas
 
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and UbuntuFOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and UbuntuOtto Kekäläinen
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with condaTravis Oliphant
 
S.zacchiroli 20121205-fossa
S.zacchiroli 20121205-fossaS.zacchiroli 20121205-fossa
S.zacchiroli 20121205-fossahere_and_there
 
MariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and UbuntuMariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and UbuntuOtto Kekäläinen
 
Continuous Delivery With Containers
Continuous Delivery With ContainersContinuous Delivery With Containers
Continuous Delivery With ContainersAll Things Open
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages Priyank Kapadia
 
Debian general presentation
Debian general presentationDebian general presentation
Debian general presentationDing Zhou
 
"MagicBox" 16 - Codename Horn
"MagicBox" 16 - Codename Horn"MagicBox" 16 - Codename Horn
"MagicBox" 16 - Codename HornFlávio Moringa
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux KernelDocker, Inc.
 

Ähnlich wie Distro Recipes 2013 : Debian and quality assurance (20)

The Gory Details of Debian packages
The Gory Details of Debian packagesThe Gory Details of Debian packages
The Gory Details of Debian packages
 
Advanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging SystemAdvanced Usage of the Debian Packaging System
Advanced Usage of the Debian Packaging System
 
Debian Packaging tutorial
Debian Packaging tutorialDebian Packaging tutorial
Debian Packaging tutorial
 
The Ultimate Debian Database
The Ultimate Debian DatabaseThe Ultimate Debian Database
The Ultimate Debian Database
 
How to Build Package in Linux Based Systems.
How to Build Package in Linux Based Systems.How to Build Package in Linux Based Systems.
How to Build Package in Linux Based Systems.
 
Moeller Debian Bosc2009
Moeller Debian Bosc2009Moeller Debian Bosc2009
Moeller Debian Bosc2009
 
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
 
Linuxconcepts
LinuxconceptsLinuxconcepts
Linuxconcepts
 
Evolution of Technical Lag in DockerHub images - Benevol20
Evolution of Technical Lag in DockerHub images - Benevol20Evolution of Technical Lag in DockerHub images - Benevol20
Evolution of Technical Lag in DockerHub images - Benevol20
 
Kernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: DebianKernel maintainance in Linux distributions: Debian
Kernel maintainance in Linux distributions: Debian
 
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and UbuntuFOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
FOSDEM2021: MariaDB post-release quality assurance in Debian and Ubuntu
 
Effectively using Open Source with conda
Effectively using Open Source with condaEffectively using Open Source with conda
Effectively using Open Source with conda
 
S.zacchiroli 20121205-fossa
S.zacchiroli 20121205-fossaS.zacchiroli 20121205-fossa
S.zacchiroli 20121205-fossa
 
MariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and UbuntuMariaDB quality assurance in Debian and Ubuntu
MariaDB quality assurance in Debian and Ubuntu
 
Continuous Delivery With Containers
Continuous Delivery With ContainersContinuous Delivery With Containers
Continuous Delivery With Containers
 
How to build Debian packages
How to build Debian packages How to build Debian packages
How to build Debian packages
 
Debian general presentation
Debian general presentationDebian general presentation
Debian general presentation
 
"MagicBox" 16 - Codename Horn
"MagicBox" 16 - Codename Horn"MagicBox" 16 - Codename Horn
"MagicBox" 16 - Codename Horn
 
Docker and the Linux Kernel
Docker and the Linux KernelDocker and the Linux Kernel
Docker and the Linux Kernel
 
oS KDE Repos & MM
oS KDE Repos & MMoS KDE Repos & MM
oS KDE Repos & MM
 

Mehr von Anne Nicolas

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
 

Mehr von Anne Nicolas (20)

Kernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream firstKernel Recipes 2019 - Driving the industry toward upstream first
Kernel Recipes 2019 - Driving the industry toward upstream first
 
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIKernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMI
 
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelKernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernel
 
Kernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are moneyKernel Recipes 2019 - Metrics are money
Kernel Recipes 2019 - Metrics are money
 
Kernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and futureKernel Recipes 2019 - Kernel documentation: past, present, and future
Kernel Recipes 2019 - Kernel documentation: past, present, and future
 
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...
 
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataKernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary data
 
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...
 
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxEmbedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and Barebox
 
Embedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less specialEmbedded Recipes 2019 - Making embedded graphics less special
Embedded Recipes 2019 - Making embedded graphics less special
 
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconEmbedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre Silicon
 
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureEmbedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) picture
 
Embedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops wayEmbedded Recipes 2019 - Testing firmware the devops way
Embedded Recipes 2019 - Testing firmware the devops way
 
Embedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmakerEmbedded Recipes 2019 - Herd your socs become a matchmaker
Embedded Recipes 2019 - Herd your socs become a matchmaker
 
Embedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integrationEmbedded Recipes 2019 - LLVM / Clang integration
Embedded Recipes 2019 - LLVM / Clang integration
 
Embedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debuggingEmbedded Recipes 2019 - Introduction to JTAG debugging
Embedded Recipes 2019 - Introduction to JTAG debugging
 
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaEmbedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimedia
 
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedKernel Recipes 2019 - ftrace: Where modifying a running kernel all started
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all started
 
Kernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDPKernel Recipes 2019 - Suricata and XDP
Kernel Recipes 2019 - Suricata and XDP
 
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
 

Kürzlich hochgeladen

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 

Kürzlich hochgeladen (20)

My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 

Distro Recipes 2013 : Debian and quality assurance

  • 1. Debian Quality Assurance Lucas Nussbaum lucas@debian.org lucas@debian.org Debian Quality Assurance 1 / 31
  • 2. Me Assistant professor (Maître de conférences) at Univ. de Lorraine Teach Free Software in a system administration curriculum (Licence Professionnelle Administration Système, Réseaux et Applications à base de Logiciel Libre) Debian involvement: Collaboration between Debian and Ubuntu Ruby packaging Archive rebuilds Ultimate Debian Database lucas@debian.org Debian Quality Assurance 2 / 31
  • 3. Debian Well known and respected for: lucas@debian.org Debian Quality Assurance 3 / 31
  • 4. Debian Well known and respected for: Its long and bumpy release cycles lucas@debian.org Debian Quality Assurance 3 / 31
  • 5. Debian Well known and respected for: Its long and bumpy release cycles Its quality But it was not a given: > 1000 Debian Developers Mostly volunteers, with their own agendas > 2000 Package maintainers 18117 software packages Some very popular packages A lot of niche packages lucas@debian.org Debian Quality Assurance 3 / 31
  • 6. Quality factors lucas@debian.org Debian Quality Assurance 4 / 31
  • 7. Quality factors Culture: "We release when it’s ready " Many DDs won’t compromise on this lucas@debian.org Debian Quality Assurance 4 / 31
  • 8. Quality factors Culture: "We release when it’s ready " Many DDs won’t compromise on this Packages ownership: individuals or small teams Many of the maintainers are experts of their packages lucas@debian.org Debian Quality Assurance 4 / 31
  • 9. Quality factors Culture: "We release when it’s ready " Many DDs won’t compromise on this Packages ownership: individuals or small teams Many of the maintainers are experts of their packages Release Critical (RC) bugs Prevent packages from being part of a release Everybody is welcomed to fix them Non-Maintainer Uploads lucas@debian.org Debian Quality Assurance 4 / 31
  • 10. Quality factors Culture: "We release when it’s ready " Many DDs won’t compromise on this Packages ownership: individuals or small teams Many of the maintainers are experts of their packages Release Critical (RC) bugs Prevent packages from being part of a release Everybody is welcomed to fix them Non-Maintainer Uploads Debian Quality Assurance team lucas@debian.org Debian Quality Assurance 4 / 31
  • 11. Debian QA team Goal: Improve the quality of Debian as a whole Not really a team (no strict membership), more like a central place to discuss and work on QA IRC: #debian-qa@irc.debian.org Mailing list: debian-qa@lists.debian.org lucas@debian.org Debian Quality Assurance 5 / 31
  • 12. Debian QA team: Tasks Run archive-wide checks and mass bug filings Maintain QA infrastructure Take care of the dirty areas of Debian lucas@debian.org Debian Quality Assurance 6 / 31
  • 13. Archive-wide checks and Mass bug filings lucas@debian.org Debian Quality Assurance 7 / 31
  • 14. Archive-wide checks and MBF Developers are volunteers: Focus on interesting things Manual testing is boring → not done Need automated tests Other advantage: treats all packages equally Niche packages are very important to some users lucas@debian.org Debian Quality Assurance 8 / 31
  • 15. Archive rebuilds Rebuild all packages from source 7 hours on 40 build nodes (using Amazon EC2) Detect packages that Fail To Build From Source (FTBFS) Bugs in packages Toolchain bugs Failures caused by changes in other packages Ran every 2-3 weeks Scripts to analyze failures and file bugs semi-automatically (about 200 bugs filed per hour) Also used for test rebuilds with new compilers, linkers, . . . → Valuable information for upstream lucas@debian.org Debian Quality Assurance 9 / 31
  • 16. Debcheck Check (statically) that dependencies can be satisfied Not trivial: versioned dependencies, alternate depends, conflicts 2 versions: "Simple one", in PHP http://qa.debian.org/debcheck.php Better one: edos-debcheck (EDOS project) Can also work with RPMs http://edos.debian.net/ lucas@debian.org Debian Quality Assurance 10 / 31
  • 17. Piuparts Testing package installation, upgrade and removal Find bugs in maintainer scripts (Shell) scripts executed during package installation/removal Developers don’t run it on their systems → Archive-wide setup http://piuparts.debian.org lucas@debian.org Debian Quality Assurance 11 / 31
  • 18. Lintian Static analysis of packages Usually run locally by the developer, before uploading Archive-wide setup for continuous testing Packages now rejected at upload time for some errors Some example findings: Use of deprecated packaging features Common packaging mistakes Embedded copies of libraries Spelling errors in binaries usefull visiters treshold targetted superseeded dependancies splitted maintainance explicitely equiped informations mispelled http://lintian.debian.org lucas@debian.org Debian Quality Assurance 12 / 31
  • 19. DEHS - Debian External Health Status Monitor upstream version of packages Detect when the Debian package is outdated HTML scraping + regular expressions Configured in debian/watch lucas@debian.org Debian Quality Assurance 13 / 31
  • 20. And more . . . Scan build logs for dangerous warnings Track security issues Track popularity of packages ... lucas@debian.org Debian Quality Assurance 14 / 31
  • 21. Maintaining infrastructure lucas@debian.org Debian Quality Assurance 15 / 31
  • 22. Infrastructure: mitigating the data hell Debian: aggregation of loosely-connected services No Launchpad! Everyone can start their own service Data everywhere A dozen of places to get interesting data Tools required to gather data in a central place and expose it to the maintainers lucas@debian.org Debian Quality Assurance 16 / 31
  • 23. Package Tracking System (PTS) Source package-centric view http://packages.qa.debian.org/package lucas@debian.org Debian Quality Assurance 17 / 31
  • 24. Developer Packages Overview (DDPO) Developer-centric view http://qa.debian.org/developer.php lucas@debian.org Debian Quality Assurance 18 / 31
  • 25. Ultimate Debian Database (UDD) Gather everything into a single SQL DB Perfect tool for data-mining Debian Currently imported in UDD: Debian Sources and Packages, bugs, popcon, testing migrations, upload history, orphaned packages, carnivore, lintian, debtags, translations, NEW queue, screenshots, DEHS, ldap, wanna-build, removals, Ubuntu Sources and Packages, Ubuntu bugs, Ubuntu popcon Possible questions you can answer with UDD: RC buggy packages in testing, sorted by popcon? Packages for which the last 4 uploads were NMUs? Packages not maintained by official DDs? http://udd.debian.org/ lucas@debian.org Debian Quality Assurance 19 / 31
  • 26. Some UDD queries Packages with the highest number of different lintian errors or warnings select package, count(distinct tag) as cnt from lintian where tag_type in(’error’,’warning’) group by package order by cnt desc limit 15; lucas@debian.org Debian Quality Assurance 20 / 31
  • 27. Some UDD queries Packages with the highest number of different lintian errors or warnings select package, count(distinct tag) as cnt from lintian where tag_type in(’error’,’warning’) group by package order by cnt desc limit 15; package count tsocks 18 pygopherd 18 cyclades-serial-client 17 muddleftpd 17 elib 17 lucas@debian.org Debian Quality Assurance 20 / 31
  • 28. Some UDD queries Who uploaded wheezy’s packages? select changed_by, count(*) from sources s, upload_history uh where s.source = uh.source and s.version = uh.version and s.distribution=’debian’ and s.release = ’wheezy’ group by changed_by order by count desc limit 8; lucas@debian.org Debian Quality Assurance 21 / 31
  • 29. Some UDD queries Who uploaded wheezy’s packages? select changed_by, count(*) from sources s, upload_history uh where s.source = uh.source and s.version = uh.version and s.distribution=’debian’ and s.release = ’wheezy’ group by changed_by order by count desc limit 8; changed_by count gregor herrmann <gregoa@debian.org> 790 Joachim Breitner <nomeata@debian.org> 237 Christian Perrier <bubulle@debian.org> 229 Alessio Treglia <alessio@debian.org> 222 Salvatore Bonaccorso <carnil@debian.org> 207 Clint Adams <clint@debian.org> 206 Jonas Smedegaard <dr@jones.dk> 195 lucas@debian.org Debian Quality Assurance 21 / 31
  • 30. Taking care of the dirty areas of Debian lucas@debian.org Debian Quality Assurance 22 / 31
  • 31. Taking care of the dirty areas of Debian Two complementary approaches: Focus on packages neglected by their maintainers Focus on maintainers neglecting their packages lucas@debian.org Debian Quality Assurance 23 / 31
  • 32. Neglected packages Already orphaned: Do minimalistic maintenance Problem: > 700 orphaned packages Not (yet) orphaned: Find them, orphan or remove them Goal: Put maintenance in the hands of people with time lucas@debian.org Debian Quality Assurance 24 / 31
  • 33. Bapase: finding neglected packages Multi-criteria search for neglected packages Based on Ultimate Debian Database http://udd.debian.org/bapase.cgi lucas@debian.org Debian Quality Assurance 25 / 31
  • 34. Inactive maintainers Missing In Action (MIA) team Find them, track them, orphan their packages Mostly based on reporting by users or fellow developers Echelon: records activity of DDs ; Carnivore: tracks identities Collaboration with the Account Managers: possible removal of their account (Unused accounts → possible security problems) lucas@debian.org Debian Quality Assurance 26 / 31
  • 35. Open challenges: following Debian evolutions lucas@debian.org Debian Quality Assurance 27 / 31
  • 36. Co-maintenance lucas@debian.org Debian Quality Assurance 28 / 31
  • 37. Use of VCSes lucas@debian.org Debian Quality Assurance 29 / 31
  • 38. Following Debian evolutions Need to improve QA infrastructure Team-aware VCS-aware Abstraction layer? If I’ve learned anything, it’s that OSS projects can’t make a choice. And when you can’t make a choice, what do you do? You support all options! Yay! How do we support all options? An abstraction layer! Yay! Abstraction layers are fun to write! Yay! – – Linux Hater’s Blog Standard workflows? Keep track of sponsorship requests http://mentors.debian.org + sponsorship-requests Track state of packages in VCS Partial solution: PET (http://pet.debian.net/) lucas@debian.org Debian Quality Assurance 30 / 31
  • 39. Conclusions Debian: A large-scale volunteer-based distribution A continuous effort to organize development and improve quality lucas@debian.org Debian Quality Assurance 31 / 31