On 05/07/23 03:03 AM, Michael Folkson via bitcoin-dev wrote:
> The decision process for adding a new maintainer was according to the IRC
> meeting that the maintainers decided privately there was a need for a
> maintainer “who understood our interfaces and modularization efforts well”
> and that ryanofsky was a “good fit for that”. I don’t know whether this was
> decided in a private IRC channel or was decided at the recent in person Core
> Dev meeting. Regardless, many have had no input into the discussion on what
> kind of maintainer the project needs going forward and it seems the
> maintainers do not want to discuss that aspect of the decision.
Since the project began, the decision to seek out and then add a maintainer has
always been made by existing maintainers. When the maintainers feel that there
is a need for additional maintainers, they may have an open call for
volunteers, or may have a candidate already in mind and suggest that specific
person for maintainership. Contributors generally are not consulted in the
decision to seek a new maintainer as they would not know whether there are
things that are being overlooked or that there is maintainership load that
needs to be distributed. Even so, it wouldn't be appropriate to add a
maintainer if many contributors disagreed with it, just as with any other PR.
We can take a look at how previous maintainers were added to see how this has
played out in the past. I think our modern concept of maintainers with nominal
scopes began in 2015 with Jonas Schnelli. Both Jonas Schnelli and Marco Falke
were simply announced by Wladimir. There was no public discussion, and some IRC
logs refer to private emails between the them and the current maintainers at
that time. After that, meshcollider was added as a maintainer after a public
"call for maintainers" where a recurring topic for a while was finding a
maintainer for the wallet. He had volunteered to do it by contacting Wladimir
privately before it was discussed during an IRC meeting and then on Github.
Fanquake was added as a maintainer during a CoreDev event in Amsterdam during a
discussion initiated and led by the maintainers. This was also "private"
insofar as the discussion was limited to those in attendance, although there
was some opportunity for public discussion in the PR opened on Github. For
myself, it was also initially private as I messaged Wladimir to volunteer for
it after meshcollider stepped down. There was some discussion on IRC and on
Github, but it was also obvious that many already expected me to be the wallet
maintainer after meshcollider. Hebasto was added with basically no fanfare or
discussion - the only mention I can find is the PR itself. My understanding is
that the maintainers asked him he wanted to do it before the PR was opened.
Glozow was nominated to be a maintainer by some of the current maintainers, and
her nomination was really the first time that there was significant public
discussion about it.
Of the past 7 maintainer additions, 5 were nominations/announcements from the
current maintainers, one was volunteering following an actual "call for
maintainer", and one was an obvious successor. It's obvious and common sense
that the maintainers decide when they need help shouldering the load, and then
find somebody to help them. There was and always will be some level of private
communication prior to any public announcement of the nomination or
volunteering of a maintainer. It doesn't make sense to blindside somebody with
a nomination without talking to them beforehand. The fact that most of these
were non-controversial speaks to how well the maintainers were considering
their nominations before publicly announcing them.
It's also clear that we have been moving towards more open discussion about
maintainership and who should be maintainers. The process is fundamentally more
public than it was previously. We now have public discussion with contributors
about the merits of a person, even if that results in said person not becoming
a maintainer. Over time, there's been more public participation in the PRs and
on IRC meetings when maintainer nominations are brought up. We have nominations
as topics during meetings now when they occur. The PRs to add keys are left
open for longer to get more discussion.
Ultimately, if you disagree with how the project operates, then you are free to
leave and start your own fork that is run in a way that you think is
appropriate. This is open source software, no one is beholden to you, and no
one is required to do anything.
***
Since you are intent on discussing and re-litigating the decision about Vasil,
I will agree that we (the maintainers) could have done a better job of
communicating. However we stand by the decision that was made in the end, and
we did have a chat with him about it during CoreDev.
It really boils down to three things: 1) we did not ask for a P2P maintainer,
2) some of those who have reviewed Vasil's work expressed discomfort with him
being a maintainer, and 3) some contributors and maintainers were uncomfortable
with his responses about how he would merge things. You repeatedly insist that
it's only the current maintainers who blocked Vasil, but that is not the case.
There were concerns brought up by other contributors that contributed to the
decision to ultimately NACK his nomination.
> One of the justifications for blocking Vasil Dimov as a new maintainer
> despite many initial ACKs from maintainers (including Andrew Chow) and long
> term contributors was according to Andrew [2]:
To be honest, my initial ACK was given without knowing enough information. It
was given when he was mostly a name that showed up in my notification emails,
and his work had seemed to be fine with me. At that time, I did not think we
had a need for a P2P maintainer, but I also did not think that having one would
be harmful. However I later spoke to a few others privately who were more
familiar with Vasil's work and they had told me that they were not comfortable
with Vasil being P2P maintainer.
> “Maintainers inherently need to look at the things that everyone else has
> already looked at, if only to give it a final once over before merging (but
> hopefully, an actual review, not just looking it over).”
>
> I follow the Bitcoin Core repo pretty closely and I haven’t seen ryanofsky do
> this any more than Vasil does. This is not a criticism of ryanofsky, just as
> I wouldn’t use it as a criticism for Vasil. It would get pretty annoying if
> everyone who wasn’t a maintainer posted an ACK once many long term
> contributors had already ACKed to display supposed “desired maintainer
> traits”. Especially if you are essentially just ACKing that others have done
> the work to review the PR and you just want to get your ACK on it to increase
> your ACK count without doing a fraction of what previous reviewers have done.
This opinion was formed not from observing his behavior towards ACK'ing, but
rather from his responses to questions about reviewing, in addition to thoughts
shared by other contributors.
From having received plenty of reviews from ryanofsky, I can certainly say that
his reviews are in depth. He has pointed out subtle bugs, asks questions about
very low level details, and has well reasoned critiques and discussions about
design decisions. His reviews are high quality, and he's not afraid of being
the first person to ACK a pr, the last person to ACK it, or the person to
prevent one from being merged even when it already has a few ACKs. We also had
a separate discussion with ryanofsky about his approaches to reviewing and
merging.
> “I also want to mention that the people who have become maintainers in the
> past have had this kind of maintainer attitude towards review prior to
> becoming a maintainer”
>
> Assuming ryanofsky hasn’t had this maintainer attitude in the past (again not
> a criticism from me at least) does this mean this was a reason to block Vasil
> but not a reason to block ryanofsky? That seems inconsistent to me.
I don't know why you assume the ryanofsky hasn't had this maintainer attitude?
Your claim of inconsistency stems from this assumption that ryanofsky doesn't
have a maintainer attitude, but I would argue that he does, as I mentioned
above. The idea of adding him as a maintainer has been floated around before,
although never really seriously proposed until now, AFAIK.
> When you’re anointed you don’t need to meet requirements but when you’re
> blocked these requirements will be used to block your addition as a new
> maintainer?
It seems obvious to me that when the current maintainers approach and nominate
a contributor to be a maintainer that that person already meets these
requirements. I don't know why you would assume bad faith in that someone who
isn't qualified would be nominated by the current maintainers. It's quite
frustrating that you seem to just jump straight to the negative conclusion
rather than considering that there might be actual reasons based on the merits
of the person.
> On a more positive note there does seem to be more energy and momentum for
> collaboration and open communication on the project since I discussed
> communication in a previous post [3]. Hopefully this will continue. It
> doesn’t address my concerns on maintainers and ultimately merge decisions but
> it definitely seems to me to be a step in a positive direction for the
> project.
Don't take credit for what you didn't do. The group-wide effort to move towards
public discussion again is the result of a discussion that was had at CoreDev.
Many cited your behavior as a primary reason to stop discussing things
publicly, with things such as dragging project meta discussions onto the
mailing list and twitter. These have invited abuse towards maintainers and
contributors, which in turn makes them takes those discussions to more private
settings. People feel like they're getting sealioned by you (and a few others)
when they post publicly, and so they have stopped doing so.
Andrew
_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev