ServerLucidBugZapping

Revision 1 as of 2010-02-25 22:54:14

Clear message

Summary

The Anecdote

When I was a kid, we had one of these things hanging outside, an eerie blue light called a "bug zapper". Some bugs were hopelessly draw to it, would fly into the light, and be electrocuted, leaving a nasty smell of ozone behind. http://www.lightingpro.com.au/catalog/images/bug-eater.jpg

I see nowadays there's a more proactive approach -- an electrically charged tennis racket, also called a "bug zapper": http://www.croquet-uk.com/Application/images/Electroswat/bug-zapper-lg.jpg

And the Ubuntu LTS Server

For many server packages in Ubuntu, we simply wait around for bugs to be fixed. Sometimes they get fixed upstream. Sometimes someone drives by and drops off a patch. It's like waiting for the bugs to hurl themselves at the blue light.

But given Lucid's LTS status, I think we should take a more proactive approach. I think we should arm a platoon of Ubuntu Server Developers and Community Members with electric rackets, and send them out on timed, coordinated missions, focusing all efforts on a particular package or group of packages for about a week at a time.

Release Note

During Beta1 and Beta2, the Ubuntu Server Community triaged and fixed XXX bugs during a concentrated push to solidify several sets of key server packages (foo, bar, baz).

Rationale

User Stories

== Assumptions ==

Design/Implementation

As an example, several members of the Server Team and Community focused on fixing Eucalyptus bugs (and only Eucalyptus bugs) for a short period. In the month of October, we uploaded Eucalyptus 10 times, fixing 60 bugs. Now this, of course, was a special case for many reasons. But I believe that the concept should apply.

I suggest that we produce a schedule for the entire Lucid cycle, defining a particular package, or group of packages within the Ubuntu Server Seed, that the team and community will focus on both Triaging and Fixing the bugs for the specified period of time. Some examples:

  • database (mysql, postgres)
  • LAMP-stack-stuff (apache2, php5)
  • virtualization (libvirt, qemu-kvm, virt-manager)
  • java
  • etc.

So as an example, let's imagine the week of January 11 - 15 is dedicated to qemu-kvm. Week: January 11 - 15 State: Alpha1 -> Alpha2 Package(s): qemu-kvm Uploader(s): kirkland Zappers(s): kirkland, mathiaz, smoser, jsalisbury Bzr Branch Location: lp:wherever Bug URL: http://bugs.launchpad.net/ubuntu/+source/qemu-kvm Test PPA: wherever

For that package, do the following:

  • Monday - total bug triage
    • - prioritize all bugs according to a defined formula for that package - confirm any bugs in the "new" state - triage any bugs in the confirmed state, where the fix or workaround is known - expire any bugs that are invalid, or fix-release any bugs that cannot be reproduced on the latest code - assign yourself (or others) triaged bugs that they can fix
  • Tuesday - Friday
    • - working from bzr branches, the specified Uploaders merge fixes from the Zappers - prepare a package upload to Lucid (or to a Proposed PPA, depending on how far into the Lucid Cycle we are) - packages build with elevated priority (ideally) - All Uploaders and Zappers test the new package, confirming each other's fixes, and ensure there are no regressions - If the package was in a PPA for testing, now the Uploader pushes it to Karmic
  • Friday
    • - Generate a report
      • + from the package(s) changelogs, showing the number of uploads and bugs fixed in those packages that week + the LP bug list before and after triaging

Some care needs to be taken around freezes. Also, it would be helpful to get participation from the QA team as well as the community.

Test/Demo Plan

Unresolved Issues

Discussion