Evolving away from source package realms
(This is the continuation of an unspecified thread in the debian-private list
that generated enough positive content that I deemed it smart enough to jump
off from it, to a public mailing list. I'm not quoting anything from anyone,
but there's certainly inspiration from various participants, so thanks for
that!)
So. We should be having a public discussion about our per-source ownership,
_and_ about spread responsibilities. A long-established specificity of Debian
development is that we have had only one, super-powerful, authorization
scheme to the archive: become an uploading DD and get unrestricted,
unsupervised upload right upon all packages. We solved the social friction
using processes, documentation, etc. (Yes, DM status opened restricted upload
rights to limited package sets). There are two sides to that.
As all uploading DDs _can_ upload, we get (theoretical) built-in failover:
when one goes emeritus (the ideal case), they can be replaced by any other
without much process. We also get low-cost emergency fixups; if I upload
something broken just before going (explicitly) VAC, anyone can revert and
upload. Not having explicit barriers in place is (was?) a nice way to reduce
administrativia, and to address ownership disputes in the open; the only
restrictions on NMUs, orphaning and package salvaging, etc, are social, not
technical. And by the nature of being social, we address them with processes,
documentation, policy (and committees enforcing some of the rules). In other
words, no technical barriers prevent me from uploading a broken src:base-files;
but I will face social backlash (and possibly administrative measures),
because I would have broken agreed-upon social norms.
The flip-side of this is also that we all _care_; as I _can_ upload src:base-
files, I feel partly responsible for it. I argue that uploading DDs care about
all of Debian packages, not only because they care about Debian, but also
because they have the needed authorization (power) to fix any and all of them.
What matters is not that the power is exercised, but that it exists. The set
"all Debian source packages" is a concern for all of us; we're one large team
for one _very_ large set. Attempts to split this set has worked by interest-
groups so far; language-specific, desktop-environment-specific, etc. (And it
has worked quite well for these groups, also because the subsets they care
about are reasonably self-contained). But as we all care, we are also all
entitled to opinions (that might be conflicting) about OS-level design
decisions which (as was amply demonstrated by this mega-thread) cannot
reasonably be addressed by source-level ownership. Deciding that /lib is going
to be a symlink cannot (and, for the avoidance of doubt, has not) be a single
source package maintainer(s)' decision. But as things currently work, it ends
up being implemented and steered as such, with our source-package-level
conflict-handling processes (TC, etc, etc).
So, we have eachothers' backs, and we all care, how to move from there?
Looking at how Ubuntu is structured (with topic teams) made me wonder if some
variation of that couldn't reasonably be applied to Debian, by dividing our
giant set in subsets (topic teams, baskets, ...), under clearer team's
responsibilities, and onboarding processes. That would imply that certain
people would have more power: the "PostgreSQL server" subset team would
have authority and (technical) upload rights upon their packages. And others
would have less power: not being able to upload these anymore. The flip-side
of such a setup, in which a large set of uploading-DDs would see their power
over the "PostgresSQL server" set largely reduced, is that they would also
"care less" (why investigating an RC bug if I can't NMU anyway). FWIW, I'd
happily limit my uploading rights to forbid me to upload a Gnome package, a
kernel package, or a PostgreSQL package, provided that there would be
documented onboarding processes, should that ever interest me.
But I argue that we're already _socially_ in such an environment: all
contributors (including uploading DDs) not already in any given team go
through onboarding processes, Salsa MRs' reviews, vetting and review before
they do upload directly (modulo NMUs, of course). It's just not enforced by
the archive.
The last aspect would also be to completely remove the source-package-level
realms; within a subset, there would be no package-specific maintainers or
vetoes; disputes would move "out" from source-package-level to subset-level.
That's not to say that within-subset disputes wouldn't happen nor could be
escalated; it's rather to stipulate that the realms' boundaries wouldn't be
the source-packages', but the subset's.
In the current situation in which there's quite some friction around "merged-
usr/" (and in the lingering situation around init systems), I'd see a "Debian
core" subset made of base-files, libc, authority over the filesystem layout,
dpkg, apt; and a "Debian system core" subset with authority over supported and
default init systems, kernel, initramfs, firmware*.
Was I rumbling in my bubble, or does any of this make sense?
Best,
OdyX
P.S. I'll be away from Debian lists next week, so don't take absence of
response for disdain!
P.S.2. Sorry if I mixed "DD" with "uploading DDs"; as we're talking source
packages, it probably went easier without specifying it everytime. Non-
uploading DD, know that your work and opinion is valued and respected!
Reply to: