ServerPapercutsMSpec

Summary

In the same vein as the One hundred papercuts project, the Server papercuts projects targets server usability issues and annoyances to generally make Ubuntu Server edition more straightforward and painless to use.

Release Note

Thanks to the Server papercuts project, lots of usability fixes were applied to the Ubuntu Server 10.10.10 release, making it the easiest and most painless to use Ubuntu Server release ever.

Rationale

When focusing on new features and high-profile bugs, it's easy to overlook low-hanging fruit that could make the days of sysadmins using Ubuntu Server better. Some packages in main ship with bad default configurations, weird ways of enabling them or are altogether unfriendly. Most of the time the behavior is inherited from Debian and never questioned, while we could fix them so that they just work.

This project is about formalizing the search and fix of this low-hanging fruit, harnessing the power of the community to identify such bugs.

User stories

As an Ubuntu Server user, I know first-hand what minor annoyances I encounter when using Ubuntu Server. I nominate the relevant bugs to the server papercuts project and it is brought to the attention of developers as low-hanging fruit that can make the experience better.

As a system administrator, I always have to do A in order to achieve B, which is painful. With Ubuntu 10.10.10 release, I'm happy to see this minor everyday annoyance fixed.

Assumptions

This project should trigger some community interest.

Design

Lessons from the Lucid cycle

  • Some papercuts are actually helpers or change behavior, so they need to be in before FeatureFreeze

  • Not enough publicity around the project

Changes in process for Maverick

  • Predefine cycles
  • Have "themes" for papercuts cycles
  • Expand acceptance criteria

Cycles

Cycle

Publicity

Nomination end

Announce bugs

Cycle start

Cycle end

Theme

Goal

Alpha2

2010-05-22

2010-05-30

2010-06-01

2010-06-02

2010-06-28

New features

16

Alpha3

2010-06-19

2010-06-27

2010-06-29

2010-07-02

2010-08-02

Bad recommends

20

Beta

2010-07-24

2010-08-01

2010-08-03

2010-08-06

2010-08-25

Bugfixes

12

Call for nominations for the alpha2 subcycle should be opened as soon as the spec is accepted.

Acceptance criteria

  • Server packages (in main, universe or multiverse)
  • Should meet current freezes requirements (FeatureFreeze for the Beta cycle)

  • "Server experience" issues
    • Out-of-the-box readiness (bad default configs, package requiring manual steps to go from installed to running)
    • Teamplay (packages not working well together, while making sense to be used together)
    • Smooth operation (anything requiring tedious or repetitive manual work)
    • Missing documentation (missing man pages, missing inline comments in default configs)
    • Upgrade issues (init scripts failures blowing up maintainer scripts)
    • Cruft (broken symlinks, residue of purge)
    • Server feeling (abusive recommends)
  • Easy to fix
    • Less than 2 hours to fix
    • Obvious and non-controversial solution

Publicity

Get coverage in:

  • Ubuntu weekly newsletter
  • Ubuntu Server blog
  • Personal blogs (Yokozar, ttx, kirkland?)
  • ubuntu-server ML

Autocreating bad-recommends papercuts

The Alpha3 cycle will have a special theme, "bad recommends". We should analyze the reverse dependencies of common offenders (X) to come up with a list of needed bugfixes and necessary package splits.

Obvious offenders:

  • glassfish-{activation,toplink-essentials,mail,jmac-api,javaee,appserv} -> default-jre (should be -headless)

  • solr-common -> libcommons-csv-java -> default-jre (should be headless)

  • selinux -> setools -> tk, libgtk2.0... (needs split of GUI tools, or suggest instead of recommending setools)

  • newpki-server -> newpki-client -> libwxgtk2.6-0 (should suggest instead of recommend the -client package)

  • pwrkap -> python-matplotlib -> libgtk2.0 (only pwrkap-gui should depend on python-matplotlib)

  • firmware-tools -> python-glade2 (split inventory_firmware_gui in its own binary package)

  • japitools -> default-jdk (could run on top of default-jre-headless)

More contentious ideas, for reference:

  • ebox -> gconf2 -> dbus-x11/libgtk2.0

  • maven-debian-helper could depend on a headless runtime, however it's usually used in pair with a full JDK anyway
  • collectd has insane deps, but there is a collectd-core. collectd-utils recommends collectd...
  • openerp-server -> lots of graphical recommends

  • dbus -> consolekit -> libX11 (downgrade the recommends consolekit to a suggests ?)

  • openssh-client -> xauth -> x11-common (Bug 270512, cjwatson objected against it)

  • drbd8-utils pulls half of the universe
  • couchdb -> couchdb-bin -> xulrunner-1.9.2 -> gtk

  • ubuntu-vm-builder -> devscripts -> postfix

Implementation

See server-maverick-papercuts whiteboard for details.

Test/Demo Plan

This is not a feature so there is no test plan. The project is completed when all the process is in place. Success is measurable to the number of bug fixes that the project produced.

Unresolved issues

None.

BoF agenda and discussion

  • 10.04 retrospective
    • Nomination
    • 2 cycles (beta1/beta2) of 12 bugs, 19 fixes
  • Changes in planning
    • Start earlier
      • Start nomination in one/two weeks
      • Reconsider old refused ones
      • A2/A3/A4/Beta cycles
    • Papercuts themes?
      • earlier bug fixing
      • earlier nomination
    • Do it over the length of the cycle
      • significant papercuts before feature freeze, but could have a couple cycles of regular bugs after FF
  • Changes in process
  • Idea brainstorming
    • fix bad recommends - good papercuts candidates
      • subpackages for desktop part and server part
      • also reduce recommends to suggests
    • command-not-found improvements
    • tab completion
      • quite helpful with some upstart things
      • service already does this, but start does not
    • missing man pages
    • broken symlinks
      • detected automatically by QA tools?
    • overly verbose cron jobs (packages that install a default cron job)
      • could be detected as well
    • Theme-oriented papercut subcycles: eg a bad recommends cycle
    • Very small annoyances that people are used to
    • better default files for shipped configurations
      • sometimes our default confs are no good
    • some packages ship with ionize-enabled configs but don't check that it's there
    • Packages that require manual steps to go from installed to running
    • Packages not working well together (teamplay)
    • cruft (broken symlinks, things that don't purge properly)
  • Disable an upstart script?
    • maybe not a papercut
    • need a recommended way and a simple tool to do it, then put this in the server guide
    • update-rc.d made upstart aware?
    • service behaves same as red hat
      • chkconfig could behave same as well


CategorySpec

ServerPapercutsMSpec (last edited 2010-06-25 11:54:08 by ttx)