##(see the SpecSpec for an explanation) * '''Launchpad Entry''': UbuntuSpec:server-maverick-papercuts * '''Created''': 2010-05-19 * '''Contributors''': ThierryCarrez * '''Packages affected''': - == 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 UbuntuSpec: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 * Nomination and review process * "also affects" server-papercuts project, worked well * Assignment * Not too many people fixed them * https://launchpad.net/server-papercuts/+milestone/lucid-beta-1 * https://launchpad.net/server-papercuts/+milestone/lucid-beta-2 * Publicity * Could make server bugs fixed more, most are easy * YokoZar to blog as well as others * knowledge of the project can have more people file server-usability bugs * 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