Package Change Impact

Kate Stewart

  • There are now 7,000+ packages in the Ubuntu main distro and over 19,000 in universe.
  • There’s a tremendous rate of change.
  • This isn’t a solution - it’s a description of an interesting problem space.
  • Many projects feed into Debian, who Ubuntu feed from, and then Ubuntu release multiple images to the world at large.
  • Stabilising this is hard, especially since Debian is a time-based release.
  • Understanding whether there should be exceptions to the freezes is really challenging, especially when they’re to packages with many dependencies upon them.
  • There’s a planning phase, a feature development phase, and a stabilization & QA phase.
  • There’s a continual set of imports from Debian, mostly from Unstable. LTS comes from Debian Testing.
  • Ubuntu archive contains ALL THE THINGS.
  • 6 architectures, with 73 daily images (core Ubuntu + Flavour images).
  • Number of packages varies by the edition of Ubuntu, as well as the flavours.

  • Lots of facts: how do you convert facts into knowledge?

  • Image build summary files, the Package control files provide some core information.

  • Germinate examines “seeds”, groups of packages, and examines the dependencies between them; e.g. “desktop” is a seed, “live” is a seed, and so on and so forth.

  • Shows forward and reverse depenedencies.

  • There are other tools that help understand these dependencies: madison, apt-rdepends, apt-cache, diff-manifest.

It’s an interesting problem, but there’s no good solution for the problem, as yet. But there are some steps towards one: - You can graph out seed-based dependencies; you can use rdepends to extract information for driving regression testing.


  • Look at the bug trackers alongside the package mapping to see how past bugs/changes have created inter-dependencies. But how do you mine those bug trackers?
  • For visualisaion, are you familiar with Gapminder? It shows changes of multidimensional data over time. ([]
  • Consider using the Debian popcorn database to understand the numbers of people likely to be affected by changes.