.. This document is © Martin F. Krafft <mail@martin-krafft.net>
   It is available under the terms of the Creative Commons
   Attribution-NonCommercial-ShareAlike Licence 2.5

==========================================================================
Debian etch: how to scratch the itch
==========================================================================
Why we have not yet released and what you can do about it
--------------------------------------------------------------------------

.. |event| replace:: Skycon, University of Limerick, Ireland
.. |talkdate| replace:: 18 Feb 2007
.. |author| replace:: Martin F. Krafft
.. |authoremail| replace:: madduck@debian.org
.. |footer| replace:: |event| |bull| |talkdate|

.. container:: author

  |author| <|authoremail|>

  * Developer with the `Debian`_, `Zope`_, and `Plone`_ projects
  * Author of the book `The Debian System — Concepts and Techniques`_
  * `Ph.D. student`_, `Lero`_, `CSIS`_, `University of Limerick`_, Ireland

.. _Debian: http://debian.org/
.. _Zope: http://zope.org/
.. _Plone: http:/plone.org/
.. _Ph.D. student: http://martin-krafft.net/phd/
.. _Lero: http://lero.ie/
.. _CSIS: http://www.csis.ul.ie/
.. _University of Limerick: http://ul.ie/
.. _The Debian System — Concepts and Techniques: http://debiansystem.info/

.. container:: event

  |event|
  |talkdate|

Overview
========

- Debian and its release cycle
- Release blockers
- What you can do
- What you'll get

Overview
========

.. class:: current

  - Debian and its release cycle

- Release blockers
- What you can do
- What you'll get

Debian: the hard facts
======================

.. class:: incremental

  - (second-)oldest GNU/Linux distribution: 14 years
  - among the largest OSS projects:

    - 1,050 developers + 2,500 contributors
    - 19,000 packages, 11 architectures
    - over 100 derivatives

  - conservative: prefer solid solutions to quick 'n' dirty ones
  - robust, secure, stable
  - 100% Free
  - volunteers, flat hierarchy, meritocratic

Who's behind it?
================

.. container:: center

  .. image:: developers-map.jpg

(source: http://www.debian.org/devel/developers.loc)

Debian releases
===============

.. container:: center

  .. image:: timeline.png

.. image:: sarge.png
   :class: floatright

* Current release: Debian 3.1r5 "sarge" |nl|
  released 6 June 2005, revised 17 February 2007

* Named after toy story characters

.. image:: etch.png
   :class: floatleft

* In preparation: Debian 4.0 "etch" (originally planned for 4 Dec 2006)

Debian stable
=============

* Debian "stable" is known to be rock-solid |hellip|

..

  "Look, this is Debian. They don't release things until you have to fire
  rockets at the thing to stop it from working." (Slashdot quote)

|hellip| and outdated:

  "Debian releases are out of date the minute they are published" (common
  prejudice)

Release process
===============

* ``unstable`` - ``testing`` - ``stable``

  * Current ``stable``: "sarge", current ``testing``: "etch",
    ``unstable``: "sid"

  * Next ``stable``: "etch", next ``testing``: "lenny",
    ``unstable``: "sid"

* Automatic transition from ``unstable`` to ``testing``.

* Manual tagging of a frozen ``testing`` as ``stable``.

Package cycle
==============

.. container:: center

  .. image:: package-cycle.png

Freeze process
==============

.. class:: incremental

  * Long freeze process due to complexity

    - five categories: essential, required, standard, optional, extra
    - frozen one after the other, then stabilisation period

  * "etch" has been frozen since 11 December 2006.

  * Implications:

    - no automatic migrations to ``testing``: extra work for RMs
    - no new upstream version in ``unstable``: losing the cutting edge

RC bugs
=======

.. class:: incremental

  - Release-critical bugs (RC bugs) prevent a package from entering stable
  - *This is what makes Debian be Debian*
  - Packages with RC bugs are either fixed or removed
  - Exceptions are possible on a case-by-case basis (``etch-ignore``)

Current status
==============

.. container:: center

  .. image:: rc-bugs.png

From: http://bugs.debian.org/release-critical/

(Not entirely accurate because does not respect version tracking)

Overview
========

- Debian and its release cycle

.. class:: current

  - Release blockers

- What you can do
- What you'll get

So why haven't we released yet?
===============================

  Reason #17: because Martin is off writing talks about why etch hasn't
  been released, instead of fixing RC bugs. ;)

  — Steve Langasek, |nl|
    release manager

No really, why haven't we released yet?
=======================================

  Because we aren't ready yet. |nl|
  (I know you didn't want to hear that)

Poll: should Debian:

- release every X months?
- aim for a release every X months, but give priority to QA?
- not release at all?

Release blockers: the technical reasons
=======================================

.. class:: incremental

  - Still over 100 RC bugs and stagnating tendency

  - No usable kernel (which accounts for about 30% of RC bugs)

  - debian-installer stalled by kernel

  Good news: `kernel frozen as of 9 Feb 2007
  <http://lists.debian.org/debian-kernel/2007/02/msg00188.html>`_.

Management reasons
==================

.. class:: incremental

  - Kernel team currently lacks release management

  - Ambitious/unrealistic release date

  - Schedule by RC bug count, but kernel much bigger blocker

  - Ignore RC bug trends during previous releases

  - Bug count monitoring confusing, three sources

  - Too early freeze (116 RC bugs), major slowdown

  - Unrealistic assumptions about freeze cycle length

Social reasons
==============

.. class:: incremental

  - Disagreement over dunc-tank, creation of dunc-bank

  - Time wasted in discussions

  - Demotivation of developers

    .. class:: incremental

      - Being late
      - Infrastructural bottlenecks not being solved
      - Perceived lack of trust between DDs
      - Questioning of decision-making powers

Dunc-tank
=========

.. class:: incremental

  - attempt to speed up release by paying RMs through donations

  - outside of the project, but involving prominent DDs, including DPL

  - *very* controversial, caused *a lot* of discussion and flames

  - Demotivation/reprioritisation of/by DDs (DWN, |hellip|)

  http://www.dunc-tank.org/

Dunc-bank
=========

  The Dunc-Bank is an experiment to see how aggressive bug
  reporting can delay the release of Debian Etch. [|hellip|]
  We think that overall quality is more important than keeping release
  promises others did for us.

.. container:: center space-top

  .. image:: reportbugs.png

http://dunc-bank.zoy.org/

Assessing the effects
=====================

.. class:: incremental

  - Dunc-bank had good QA effects, latent RC bugs
  - Dunc-tank-paid RMs caused sharp decline in RC bug count
  - But unable to isolate/quantify effects by dunc-tank/-bank.
  - Delay because of the debate? Not sure |hellip|
  - Those flaming would have flamed elsewhere

  Steve's midterm report:
  http://web.dodds.net/~vorlon/wiki/blog/midterm_report.html

Overview
========

- Debian and its release cycle
- Release blockers

.. class:: current

  - What you can do

- What you'll get

What you can do
===============

.. class:: incremental

  - Fix bugs
  - Try to reproduce bugs, research the problems
  - Fix kernel bugs
  - Tend to the documentation/website, release notes, translations
  - Coordinate complex teams, such as the kernel team (delicate task)

Let's fix a bug
===============

.. class:: incremental

  - Use http://bts.turmzimmer.net/details.php to select a bug to fix

    - pick a bug older than 7 days
    - watch out for comments and claims

  - contact the maintainer
  - fix the bug, making only relevant changes, and keeping the diff small
  - test (!)
  - prepare an NMU (non-maintainer upload)
  - upload or seek sponsorship
  - lather, rinse, repeat

  http://wiki.debian.org/BSP/BeginnersHOWTO

I tried |hellip|
================

.. class:: incremental

  Original plan: fix `#410946 <http://bugs.debian.org/410946>`_ during talk

  No consensus in four days of discussion, thus cannot upload

    .. class:: incremental

      If I were you, I wouldn't make such an unnecessary change in an NMU. Oh,
      no, if I were you, I wouldn't consider an NMU here at all.

      |hellip|

      Frankly, I'm somewhat pissed that I've spent a couple of minutes on
      writing this message, instead of working on the bug itself.

  I gave up.

Overview
========

- Debian and its release cycle
- Release blockers
- What you can do

.. class:: current

  - What you'll get

New in etch
==============

- SecureAPT
- Graphical installer, incl. dm-crypt and complex languages
- UTF-8 (on new installs)
- ``udev`` by default (on new installs)
- Xen/Vserver, Sun Java, Tomcat, LTSP
- Firefox vs. Iceweasel
- ``debtags``
- ``dbconfig-common``

For the complete list: http://wiki.debian.org/NewInEtch

Hot air?
=========

.. container:: center

  **So when will you release "etch"???**

Just remember the Irish way
===========================

.. container:: center

  .. image:: guinness.png

We'll release when it's ready. (I don't think this will ever change.)

(Logo by Neil McGovern)

Come to debconf7!
=================

- 16 June (Saturday) 2007 : Debian Day ("for the masses")
- 17 — 23 June: talks, workshops, development, social activities
- In Edinburgh, Scotland
- Attendance is free, but registration is required.

More info: http://debconf7.debconf.org

My Ph.D. research
=================

  Method diffusion in large open source projects

* Debian processes somewhat antiquated, compare with the agility of e.g. Plone

* Volunteers don't like to be told what to do

* Methods exist to improve asynchronous global collaboration

* How do you make sure people adopt these?

http://martin-krafft.net/phd/

Thank you
=========

.. container:: author

  |author| <|authoremail|>

  * http://people.debian.org/~madduck/
  * http://martin-krafft.net/phd/

I received valuable input for this talk from: Steve Langasek, Sam Hocevar,
Frans Pop, Brian May, Anthony Towns, Theodore Ts'o, Thomas Viehmann, and the
other folks of ``#debian-devel``. Thank you all!

.. include:: licence.en.rst
.. include:: common.inc
.. footer:: |footer|
