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

Require BIPs be "beyond the ideation phase" before being merged #1570

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

TheBlueMatt
Copy link
Contributor

As the BIP process restarts, one general risk in the BIPs is that they become (even more of) a dumping ground for half-baked ideas which even the BIP champion does not work on after the BIP is assigned. While simply never merging new BIPs addresses this issue, this isn't particularly sustainable, and we should instead have some concrete criteria here.

BIPs generally fall into a few categories with respect to when they should be considered ready for merge:

  • they're not particularly controversial (and not about consensus) and move forward towards adoption in several ecosystem projects relatively quickly or,
  • they generate lots of discussion, lots of feedback, the champion actively pushes the BIP forward and makes sustained arguments for adoption over some extended time period (this generally applies to consensus changes).

As long as the BIP champion is relatively actively pushing for adoption (i.e. active on the BIP outside of the BIP text itself) and actively addressing feedback on the BIP, the BIP should be merged, however if the BIP hasn't seen any adoption anywhere (outside of maybe one project the author wrote) and the BIP champion is off doing other things, I'd argue it clearly should simply be closed.

This commit adds some trivial but flexible text to that effect, requiring roughly the above criteria for merge.

I'd humbly suggest that we apply this criteria to new BIP number assignments (or at least BIP merges, even if they get a temporary number pre-merge) while we hash out whether this criteria makes sense.

As the BIP process restarts, one general risk in the BIPs is that
they become (even more of) a dumping ground for half-baked ideas
which even the BIP champion does not work on after the BIP is
assigned. While simply never merging new BIPs addresses this issue,
this isn't particularly sustainable, and we should instead have
some concrete criteria here.

BIPs generally fall into a few categories with respect to when they
should be considered ready for merge:
 * they're not particularly controversial (and not about consensus)
   and move forward towards adoption in several ecosystem projects
   relatively quickly or,
 * they generate lots of discussion, lots of feedback, the champion
   actively pushes the BIP forward and makes sustained arguments for
   adoption over some extended time period (this generally applies
   to consensus changes).

As long as the BIP champion is relatively actively pushing for
adoption (i.e. active on the BIP outside of the BIP text itself)
and actively addressing feedback on the BIP, the BIP should be
merged, however if the BIP hasn't seen any adoption anywhere
(outside of maybe one project the author wrote) and the BIP
champion is off doing other things, I'd argue it clearly should
simply be closed.

This commit adds some trivial but flexible text to that effect,
requiring roughly the above criteria for merge.
@kanzure
Copy link
Contributor

kanzure commented Apr 22, 2024

"Has to exist for a while" is a good improvement. It doesn't solve advanced persistent threats, but it is a modest improvement.

Copy link
Contributor

@jonatack jonatack left a comment

Choose a reason for hiding this comment

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

Concept ACK

@@ -54,6 +54,7 @@ For a BIP to be accepted it must meet certain minimum criteria.
It must be a clear and complete description of the proposed enhancement.
The enhancement must represent a net improvement.
The proposed implementation, if applicable, must be solid and must not complicate the protocol unduly.
BIP drafts should not be merged until the idea has materially progressed beyond the ideation phase - it should have multiple implementations from independent authors released in different software packages, and/or have received material public discussion feedback from diverse contributors with the BIP champion actively working towards adoption for an extended time period. While BIPs are author documents which must only meet certain minimum criteria, the BIP editors should strive to ensure there are not an unnecessary number of BIPs which never progress into broad implementation across the bitcoin ecosystem.
Copy link
Contributor

Choose a reason for hiding this comment

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

Agree with the premise. I interpret the added text as partially redundant with lines 34-46 above, but not completely, and it provides a clarifying counterweight to line 51 ("The BIP editors will not unreasonably reject a BIP"). As such, I think could be helpful to editors as a guideline.

Copy link
Contributor

Choose a reason for hiding this comment

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

@TheBlueMatt Do you think this line in the repo README would need to be updated as part of this change?

"We are fairly liberal with approving BIPs, and try not to be too involved in decision making on behalf of the community."

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I think that line still makes sense - the editors are still not "making decisions" though I'd argue that the line in the readme may need to be stronger, bolt, and at the very top - even with this proposed change there will still be BIPs that are bad ideas and that people shouldn't implement, that that should be clear to anyone casually glancing at the repo.

@luke-jr
Copy link
Member

luke-jr commented Apr 22, 2024

Once there's multiple implementations, it's Final... seems like this would negate the Draft/Proposed stages?

@TheBlueMatt
Copy link
Contributor Author

In some cases, yes, but in the general case no as we also allow something to be "beyond the ideation phase" as long as the author has gotten material feedback and has been actively working on it for a while. Its really about avoiding things getting merged that had someone post a bip, got no feedback, then the author moved on to other things.

@ajtowns
Copy link
Contributor

ajtowns commented Apr 23, 2024

"it should have multiple implementations from independent authors released in different software packages" How are the multiple implementers meant to implement the same thing if they don't have a spec to reference?

Likewise, "the BIP champion actively working towards adoption for an extended time period" seems to put the cart before the horse: "you should adopt my proposal so that it can be assigned a BIP number".

OTOH, "have received material public discussion feedback from diverse contributors" is pretty reasonable at least. Could consider something along the lines of "proposals should not be assigned a BIP number if specification sections are incomplete or important details are absent making the proposal impossible or unnecessarily difficult to implement".

@TheBlueMatt
Copy link
Contributor Author

I believe you missed the or in the sentence :). The "have multiple implementations" thing is really just an escape valve such that if you have a few implementations already even if there wasn't much discussion (because it wasn't controversial) it can just be merged as a BIP. This was also explained in the PR description.

Likewise, "the BIP champion actively working towards adoption for an extended time period" seems to put the cart before the horse: "you should adopt my proposal so that it can be assigned a BIP number".

More generally, however, no one should be waiting to encourage people to adopt their protocol just because its waiting to be merged as a BIP?!

@ariard
Copy link
Member

ariard commented Apr 25, 2024

I think this shall be proposed as a new BIP of type “process”. And not an edit of BIP2.

The “multiple implementation” makes only sense if it’s related to consensus / p2p / wallet / cryptography scheme etc.

@katesalazar
Copy link
Contributor

katesalazar commented Apr 25, 2024 via email

@murchandamus murchandamus added the Process Trying to update process or stuck due to disagreement about Process label May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Process Trying to update process or stuck due to disagreement about Process
Projects
None yet
8 participants