public inbox for bitcoindev@googlegroups.com
 help / color / mirror / Atom feed
From: Andrew Chow <lists@achow101.com>
To: bitcoin-dev@lists.linuxfoundation.org
Subject: Re: [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions
Date: Wed, 10 May 2023 21:24:52 +0000	[thread overview]
Message-ID: <d03b42fb-ffbf-1bc4-16c0-746acd3b73c4@achow101.com> (raw)
In-Reply-To: <qLlgx_AotByY1ZZHTCn3BBK7x1spKEYYd3UP4txYq-RceoclKdVAB1E5MJ4FTV7bWVP1Ilsdbmn43dkrOfqw84EUUQAvnkztN9FY1R5oDOA=@protonmail.com>

[-- Attachment #1: Type: text/plain, Size: 10029 bytes --]

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

[-- Attachment #2: Type: text/html, Size: 13852 bytes --]

  parent reply	other threads:[~2023-05-10 21:25 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-18 12:40 [bitcoin-dev] Bitcoin Core maintainers and communication on merge decisions Michael Folkson
2023-04-19  0:56 ` Erik Aronesty
2023-04-19 10:09   ` Michael Folkson
2023-04-19 12:24 ` alicexbt
2023-04-19 13:33   ` Michael Folkson
2023-04-19 21:13     ` alicexbt
2023-04-19 15:17 ` Aymeric Vitte
2023-04-19 21:33 ` Andrew Chow
2023-04-20  8:45   ` Michael Folkson
2023-04-20 10:54   ` Aymeric Vitte
2023-04-20 13:59     ` Erik Aronesty
2023-04-20 14:25       ` Aymeric Vitte
2023-04-20  2:27 ` Anthony Towns
2023-04-20  9:24   ` Michael Folkson
2023-05-07  7:03 ` Michael Folkson
2023-05-07 17:35   ` David A. Harding
2023-05-08  9:36     ` Michael Folkson
2023-05-08 12:03     ` Bryan Bishop
2023-05-10  2:44       ` Steve Lee
2023-05-10 15:55         ` Michael Folkson
2023-05-10 16:36           ` Steve Lee
2023-05-10 17:22             ` Michael Folkson
2023-05-10 18:29               ` Steve Lee
2023-05-10 21:24   ` Andrew Chow [this message]
2023-05-11 12:34     ` Michael Folkson
2023-05-11 16:49     ` alicexbt
2023-05-11 18:04       ` Steve Lee
2023-05-11 18:48         ` Erik Aronesty

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=d03b42fb-ffbf-1bc4-16c0-746acd3b73c4@achow101.com \
    --to=lists@achow101.com \
    --cc=bitcoin-dev@lists.linuxfoundation.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