Application quality assurance in Linux distributions

We had a session about application QA in last weekend's GSoC Mentor Summit. I explained how the Maemo Downloads approval process works in a completely open, crowdsourced way. This differs from many distributions where approval of new packages involves obscure decisions and secret handshakes.

Some guidelines:

  • Separate your core distribution and application packages
  • Approval process should have three layers: development, testing and stable, individually for each application targeting a particular distribution version
  • Anybody can upload packages to development status, and then promote them to testing
  • On their way from development to testing packages should pass automated tests
  • Anybody can install and test packages that are in testing, and vote for them
  • Testing guidelines should be clear and easily available to anybody interested in testing
  • Quarantine period for applications being tested (ten days in case of Maemo)
  • When quarantine has passed and application has enough positive votes, developer can promote the package to stable

Hopefully these ideas will prove helpful for other distributions like MeeGo, Ubuntu or Debian. See also my slides from an earlier talk on the same subject.

Testing votes for a package