From: "Theodore Ts'o" <tytso@mit.edu>
To: James Bottomley <James.Bottomley@hansenpartnership.com>
Cc: ksummit@lists.linux.dev, linux-fsdevel@vger.kernel.org
Subject: Re: [MAINTAINER SUMMIT] Adding more formality around feature inclusion and ejection
Date: Thu, 21 Aug 2025 16:34:07 -0400 [thread overview]
Message-ID: <20250821203407.GA1284215@mit.edu> (raw)
In-Reply-To: <fc0994de40776609928e8e438355a24a54f1ad10.camel@HansenPartnership.com>
On Thu, Aug 21, 2025 at 09:56:15AM +0100, James Bottomley wrote:
> I think the only point of agreement on this topic will be that how
> bcachefs was handled wasn't correct at many levels. I think this shows
> we need more formality around feature inclusion, including a possible
> probationary period and even things like mentorship and we definitely
> need a formal process that extends beyond Linus for deciding we can no
> longer work with someone any more.
I think we are conflating three different things in this discussion
thread, and it would be helpful if we separated them out.
1. What is the process by which a particular feature be included
or ejected?
2. What is the process by which a developer should be excluded
from the deevlopment community? And this goes beyond
Code of Conduct violations, but in the case of a maintainer,
when that person has displayed toxic tendencies which are
sufficiently bad that other deevlopersa and maintainers refuse to
work with the individual, and when that person has been accused of
promoting a toxic environmet which is harming the entire
community?
3. The question of maintainer mentorship, which is very different
from (2) as there are a large set of skills which a much broader
front including avoiding maintainer burnout, the product management
side of being a maintainer (e.g. working with companies to
motivate them to invest in a featrue which benefits not only the
companies' business interest, but the community as a whole),
managing volunteer, etc.
(2) is a very hard problem, and so there is a tendency to focus on
solving problems (1) and (2). However, using bcachefs and its
maintainera as a motivating case for solutions to address (1) and (3)
very likely going to result in skewing the discussion around the best
ways of addressing (1) and (3).
As far as (2), our baseline way of handling things is quite ad hoc.
At the moment, individual developers will simply refuse to work
someone who is accused of being toxic, by doing things such as:
(a) using mail filters to redirect e-mail from that person
to /dev/null,
(b) telling a higher-level maintainer that because of (a) they
would appreciate it if any pull requests from that individual
include changes to their subsystem or sub-subsysttem,
that those commits should be presumed to be auto-NACK'ed,
and requesting that the PULL request should be rejected,
(c) if the behaviour of said person exasperates a higher-level
maintainer to such an extent that the higher-level maintainer
refuse to accept patches or pull requests from said
individual, and
(d) informing program committees of invite-only workshops and/or
conferences that if that individual attends, they will refuse
to attend because of that individual's toxicity.
I will note that (b) and (c) can be appealed to someone higher up on
the maintainer hierarchy, unless that higher-level maintainer is
Linus, at which point there is no higher level authority to take that
appeal, and that (b), (c), and (d) are effectivly a way that
developers and maintainers are effectively saying, "it's either him or
me!", and as someone who has to manage volunteers, if a sufficiently
large number of volunteers are sufficiently p*ssed off that they are
threatening to withdraw, the wise maintainer (or program committee)
should take heed.
Now, the above is inherently very messy. But fortunately, it's only
happened once in thirty five years, and before we propose to put some
kind of mechanism in place, we need to make sure that the side effects
of that mechanism don't end up making things worse off.
There is the saying that "bad facts make bad law", and the specifics
of this most recent controversy are especially challenging. I would
urge caution before trying to create a complex set of policies and
mechanim when we've only had one such corner case in over 35 years.
Cheers,
- Ted
next prev parent reply other threads:[~2025-08-21 20:34 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-21 8:56 [MAINTAINER SUMMIT] Adding more formality around feature inclusion and ejection James Bottomley
2025-08-21 16:27 ` Steven Rostedt
2025-08-21 17:44 ` James Bottomley
2025-08-21 19:15 ` Steven Rostedt
2025-08-22 7:59 ` James Bottomley
2025-08-21 19:32 ` Paul Moore
2025-08-22 11:39 ` Mauro Carvalho Chehab
2025-08-22 13:15 ` Matthew Wilcox
2025-08-21 20:34 ` Theodore Ts'o [this message]
2025-08-21 20:59 ` Theodore Ts'o
2025-08-21 22:21 ` Matthew Wilcox
2025-08-22 11:29 ` Mauro Carvalho Chehab
2025-08-22 8:09 ` James Bottomley
2025-08-22 12:03 ` Greg KH
2025-08-22 12:08 ` Rafael J. Wysocki
2025-08-22 12:24 ` Theodore Tso
2025-08-22 15:31 ` James Bottomley
2025-08-22 16:09 ` Theodore Tso
2025-08-25 8:20 ` Mauro Carvalho Chehab
2025-08-25 7:57 ` Mauro Carvalho Chehab
2025-08-22 15:19 ` James Bottomley
2025-08-23 1:03 ` dan.j.williams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250821203407.GA1284215@mit.edu \
--to=tytso@mit.edu \
--cc=James.Bottomley@hansenpartnership.com \
--cc=ksummit@lists.linux.dev \
--cc=linux-fsdevel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox