Re: Maintainerless Hive-Mind? (was Re: Replace the TC power to depose maintainers)

2016-12-09 Thread Raphael Hertzog
On Thu, 08 Dec 2016, Guillem Jover wrote:
> It is not only not obviously right to me, instead it seems obvious
> it carries a set of different problems with it. I feel this carries
> so many assumptions of how the proposers feel about how *they* work
> or might like to work and ignores how *others* do that. :/

I don't think that entirely abolishing maintainership is a good move.
But we should change our process so that by default we have no hard
lockin on most packages.

For packages where the persons doing the work have special requirements,
they should document those requirements in debian/README.maintainers (or
README.contributors).

In that file they could:
- ask to review changes prior to upload (and give some delay in which
  they usually respond)
- define some package-policy to follow (conventions, procedures)
- document upstream related things that are good to know
- explain their plan for the next upstream release wrt to Debian's release
- etc.

Team maintained packages could just add a pointer to the team policy.

With such a system, it makes sense to drop the Maintainer/Uploaders from
the package and have it dynamically generated from persons actually
working on the package.

We don't need a sole maintainer to make decisions, everyone is entitled to
make decisions provided that they follow the rules defined by the active
maintainers. And rules can be changed through discussion between active
contributors when reaching a consensus...

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Support Debian LTS: http://www.freexian.com/services/debian-lts.html
Learn to master Debian: http://debian-handbook.info/get/



Maintainerless Hive-Mind? (was Re: Replace the TC power to depose maintainers)

2016-12-07 Thread Guillem Jover
On Thu, 2016-12-01 at 19:20:36 +0100, Stefano Zacchiroli wrote:
> On Thu, Dec 01, 2016 at 03:46:05PM +, Ian Jackson wrote:
> > 3. Abolish maintainership entirely.
> 
> This is the obviously right solution.

It is not only not obviously right to me, instead it seems obvious
it carries a set of different problems with it. I feel this carries
so many assumptions of how the proposers feel about how *they* work
or might like to work and ignores how *others* do that. :/

If Debian was operated by a hive-mind, this would be the obvious
solution. But Debian is not (and it should not become a hive-mind IMO),
instead its distributed, independent and diverse nature is one of its
greatest strengths. In addition Debian is in great part a volunteer
based project. The dynamics on a volunteer vs a paid environment can
be entirely different (they are for me, there are things I'm willing
to do or scenarios I'm willing to accept/tolerate on paid-basis, I'd
never do on a volunteer one).

Few problems that come to mind on a fully maintainerless project:

* Encourages one-off upload-and-forget for dependencies of stuff one
  might want to package.
* More difficult to track (in and outside of Debian) if there is
  supposedly someone taking care of those package (would require
  accessing subscribers from the PTS or tracker or similar?). Is
  someone supposedly taking care of orphaned packages? Well perhaps,
  no one know until there's an upload. Is someone maintaining a
  maintained packages, in the normal case, yes.
* No one will have a "vision" of where each of those packages is or
  should go? Will this vision need to be agreed by the whole project?
  For each package!?
* Assumes stable and interpersonal relationships with upstreams are
  perhaps not important? Everytime someone different might contact
  upstream with a different style, etc?
* Assumes that everyone enjoys working with the same tools, with the
  same workflows: what about cdbs vs dh vs dehelper, git vs the rest,
  VCS layouts (debian-only, full-upstream, pristine-tar), source format
  1.0 vs 3.0, etc, etc. (f.ex. there are several VCSs, source layouts,
  helpers, etc. I'm so uncomfortable working with, to the point I just
  don't feel like co-maintaining packages using those, or join teams
  that have those as their team policy).
* Assumes everyone is pulling Debian in the same direction, and that
  there are never potentially opposite goals (at least initially).
* Assumes everyone can work with everyone else on a close and personal
  level (f.ex. I'll accept technical contributions from anyone based
  on the merits of those contributions, but there are people I'd rather
  not have to work with closely).
* Assumes an extrovert worldview. Sole-maintainership is not necessarily
  about control, authority and power (inbalanace!?) it can also be a
  sanctuary of tranquility, having to coordinate with a team or the whole
  project can imply an additional overhead and energy toll for introverts,
  in addition to the required coordination and interactions we are
  supposed to carry on as normal duty towards others and the project.
  Or it can be a space of freedom where one can do (within the
  distro-wide technical and socual rules and policies) anything one
  can imagine.
* Assumes everyone has the same personal packaging policies and
  commitment of effort. For example whether to strive for 0-divergence
  against upstream, or whether to patch upstream with no remorse
  whenever it seems needed. (I'm on the latter camp, but I'd never
  impose that vision on people on the first camp, because that would
  imply I'm deciding on a work committment for them).
* Assumes everyone perceives and feels their time and effort involvement
  on tasks in the same way. While the motivations and rewards are so
  subtle and diverse, probably as the number of people we have involved.
* With less and less people checking central development communication
  channels, many global distribution-wide changes have no way to be
  considered by the majority of affected people. While being able to
  do distro-wide changes, in say, a mass upload, might be very
  convenient, having independent maintainers that *know* the details
  of the packages they maintain means there are more sanity checks in
  place, and that you need to convince people your ideas are correct.
* Could discourage experimentation, using new tools, helpers, techniques,
  workflows, because it might interfere with others wanting to work
  also on those packages (it would go against the hive-mind!).

I've worked on teams or group efforts that are great, with great peers
that I resonate with on an interpersonal level, where I might or might
not agree on the technical level, but technical discussions are still
very much enjoyable. I've also worked on teams that were such an
energy drain that they were very unpleasant to work in.

I think all of sole-maintainership, team maintainership, and even
maintainerless packages have