Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

policy: Add refactor carve out #1945

Merged
merged 1 commit into from Aug 1, 2023

Conversation

tcharding
Copy link
Member

@tcharding tcharding commented Jul 18, 2023

I have managed to burn out or bore our reviewers/maintainers. Getting two acks is becoming increasingly difficult. I've pestered everyone to the limit that I feel socially comfortable doing so, and as such, am requesting a carve out to the 2-ACK before merge rule.

The primary justification is that I feel we should have a bit more of BDFL and a bit less total consensus if we are to push forwards.

Example PRs where this change would apply

I have managed to burn out or bore our reviewers/maintainers. Getting
two acks is becoming increasingly difficult. I've pestered everyone to
the limit that I feel socially comfortable doing so am requesting a
carve out to the 2-ACK before merge rule.

The primary justification is that I feel we should have a bit more of
BDFL and a bit less total consensus if we are to push forwards.
Copy link
Member

@apoelstra apoelstra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 55be538

@apoelstra
Copy link
Member

Good luck getting other ACKs on this :).

@yancyribbens
Copy link
Contributor

In my experience with bitcoin core, if you don't get enough ACKs, it just gets closed instead of merged. I don't know why rust-bitcoin should be different?

@apoelstra
Copy link
Member

@yancyribbens the main reason to be different is that Bitcoin Core is much more "feature complete" than this library. As far as its role of being a p2p node enforcing the exact consensus rules, it's more-or-less done. With a few big exceptions, like BIP-324, which are self-contained projects that nonetheless take multiple years to spec and implement.

Another reason is that Bitcoin Core, as developer-starved as it is, actually has more active maintainers and contributors than rust-bitcoin.

Finally, despite both these reasons, Core does struggle with a lack of momentum on its non-core functionality. And there's a lot of effort being put into separating out the wallet, GUI, RPC, etc., into separate binaries and eventually even separate repos, so that these other things can move more quickly. It's acknowledged that the Core "most things die on the vine" development model is maybe alright for the core consensus stuff but it's not the right model for less-critical user-facing stuff.

I'd argue that rust-bitcoin doesn't have anything like "core consensus stuff" (maybe the libsecp bindings come close) and that the whole project probably should shift toward a faster-moving model.

@tcharding
Copy link
Member Author

tcharding commented Jul 18, 2023

Good luck getting other ACKs on this :).

Some mentions and further arguments to back up this PR and attempt to get it in:

  • @stevenroose suggested that we move too fast and that he wants time to NACK, this fits in with that because it gives two weeks for NACKs
  • @TheBlueMatt mentioned by email that he is too busy so this PR should be ok with him
  • @sanket1729 mentioned here on github that he is allocating some time to reviews, 2 weeks should be enough for him to see the things he wants to and ignore the things he does not
  • @RCasatta, IIRC said he is bored of all the refactoring
  • @Kixunil is on holiday at the moment
  • @elichai I can't remember your position on this whole thing :)

Copy link
Member

@sanket1729 sanket1729 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 55be538. Same reasons as apoelstra. And this is only for re-factors that are not adding any new features.

@sanket1729
Copy link
Member

I guess this PR needs more than 2 ACKS :)

@apoelstra
Copy link
Member

Yes, I think we should leave this open for 2 weeks to wait for NACKs.

@tcharding
Copy link
Member Author

tcharding commented Jul 18, 2023

I will email all maintainers to flag this PR, that way any that do not see notifications will not get rugged by this. I sure wish we had a public mailing list so there was public proof that I send the email.

Sent Email

(Email addresses removed.)

Date: Wed, 19 Jul 2023 09:20:27 +1000
From: Tobin Harding
To: <The 8 maintainers>
Subject: 2-ACK before merge refactor carve out
X-Mailer: Mutt 2.1.4 (2021-12-11)

Hi lads,

I have put up a PR proposing a carve out to the 2-ACK before merge
policy on rust-bitcoin.

https://github.com/rust-bitcoin/rust-bitcoin/pull/1945

Trying to find a balance between spamming all you guys and making
forward progress on all the refactoring and API bikeshedding.

I wanted to email you all so that if it does merge no one feels
like they missed seeing the PR. Please NACK at will.

Thanks for your patience,
Tobin.

@yancyribbens
Copy link
Contributor

For the reasons @apoelstra mentioned, it makes sense for rust-bitcoin to be more permissive than bitcoin. However I don't think two acks is very uncommon in my experience with other projects and I don't understand why it's so difficult to get two acks here. Maybe there needs to be more dedicated maintainers? I'm not sure what the process is to becoming a maintainer.

@elichai
Copy link
Member

elichai commented Jul 19, 2023

I agree this makes sense for refactors ACK 55be538

@tcharding
Copy link
Member Author

I don't understand why it's so difficult to get two acks here.

You could read over the 600 patches that I did in the last 18 months and see if you are still enthusiastic about reviewing refactor work :)

@yancyribbens
Copy link
Contributor

You could read over the 600 patches that I did in the last 18 months and see if you are still enthusiastic about reviewing refactor work :)

I'm fine to help review. I'm not a maintainer so my acks don't matter however :)

Copy link
Collaborator

@RCasatta RCasatta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK 55be538

@stevenroose
Copy link
Collaborator

Yeah I think I can ACK this. I was indeed saying I think a minimim review period would be good. I actually think 2 weeks + 1 ACK is a way saner merge policy than any 2 ACKs (I've seen merge times of less than a day 😅)

@yancyribbens
Copy link
Contributor

Ack 55be538

@tcharding
Copy link
Member Author

tcharding commented Jul 25, 2023

That is an ack from every maintainer except @Kixunil who hasn't been seen around for awhile, I believe he is on holidays.

@tcharding
Copy link
Member Author

tcharding commented Aug 1, 2023

Can we merge this @apoelstra? I believe that the following three PRs are also good examples of minor fixes that no one cares enough about to review and are harmless to merge.

Do we want to add some way that maintainers can come back at a later date and see which PRs were merged with one ack? Labels are no good because they will likely get forgotten. I can't think of another way ATM.

@apoelstra
Copy link
Member

Yes, but I also can't think of a way.

And sure, I'll merge this. We are technically 6 hours short of 2 weeks here :P. But we are only waiting on Kix's approval, and I don't think his absense should override six ACKs.

@apoelstra apoelstra merged commit 1b952de into rust-bitcoin:master Aug 1, 2023
29 checks passed
@apoelstra
Copy link
Member

I have reduced the number of github-required ACKs to 1. However, for nontrivial PRs or PRs that have been ACKed for less than 2 weeks, we still require 2 ACKs.

@tcharding
Copy link
Member Author

Awesome, onwards and upwards!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

8 participants