Process: Activate BIP3 #1820

pull murchandamus wants to merge 20 commits into bitcoin:master from murchandamus:2025-04-bip3-activation changing 190 files +1171 −1459
  1. murchandamus commented at 3:32 am on April 12, 2025: contributor

    This is a first draft of applying the changes prescribed by BIP 3 in the section Updates to Existing BIPs should this BIP be Activated.

    It also updates the CI-scripts to align with the new formatting.

    Resolved:

    • @real-or-random’s proposal to update the Licensing scheme
    • Enforce order of headers in Preamble and fix order in BIPs that don’t conform

    Planned for follow-up or parallel PRs:

    • Evaluate Informational BIPs regarding update to Specification type
    • BIPs that have had Draft status for extended periods will be moved to Complete or Deployed as applicable in collaboration with their authors.
    • The authors of incomplete Draft BIPs will be contacted to learn whether the BIPs are still in progress toward Complete, and will otherwise be updated to Closed as described in the Workflow section above.
    • Make changes or remove non-existent BIPs 40, 41, and 63 (breaks CI)
  2. murchandamus added the label Pending acceptance on Apr 12, 2025
  3. murchandamus added the label Process on Apr 12, 2025
  4. murchandamus force-pushed on Apr 12, 2025
  5. in bip-0001.mediawiki:4 in 4c67644571 outdated
    0@@ -1,13 +1,11 @@
    1 <pre>
    2   BIP: 1
    3   Title: BIP Purpose and Guidelines
    4-  Author: Amir Taaki <genjix@riseup.net>
    5-  Comments-Summary: No comments yet.
    6-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0001
    7-  Status: Replaced
    8+  Authors: Amir Taaki <genjix@riseup.net>
    


    jonatack commented at 1:00 pm on April 13, 2025:
    Looks like scripts/buildtable.pl will need to be updated for the BIP3 headers changes.

    jonatack commented at 1:04 pm on April 13, 2025:
    e.g. update the required fields, Author -> Authors, remove the comments, update title length, update the licenses, update %MiscField, add checks for new fields like Deputies, etc.

    murchandamus commented at 6:51 pm on April 14, 2025:
    Thanks yes, I’m working on that today.

    murchandamus commented at 9:04 pm on April 14, 2025:
    @jonatack: This should be done
  6. murchandamus force-pushed on Apr 14, 2025
  7. murchandamus force-pushed on Apr 14, 2025
  8. murchandamus commented at 9:03 pm on April 14, 2025: contributor
    I have updated the scripts/buildtable.pl in lock step with each of the changes so that the build script passes for every commit. The remaining tasks should probably be handled in follow-ups as they will take a variable amount of time.
  9. murchandamus force-pushed on Jun 20, 2025
  10. murchandamus commented at 10:46 pm on June 20, 2025: contributor
    Rebased on the latest version of #1819.
  11. murchandamus force-pushed on Jun 20, 2025
  12. murchandamus force-pushed on Jun 20, 2025
  13. murchandamus force-pushed on Jun 20, 2025
  14. murchandamus force-pushed on Jun 21, 2025
  15. murchandamus force-pushed on Jun 21, 2025
  16. murchandamus force-pushed on Jun 21, 2025
  17. murchandamus commented at 0:50 am on June 21, 2025: contributor
    I can’t reproduce the scripts/diffcheck.sh error locally either with the latest commit of this branch, by bisecting, or after merging the latest upstream/master. I’m thinking that the next step is to improve the script with a more helpful error message, but I’m not going to pursue that today.
  18. ajtowns commented at 5:42 am on July 1, 2025: contributor

    You can reproduce the error message and get more info with:

    0$ git checkout 187d8859dce80c8433ff7466d012b5dd78ac3136   # master's parent commit (to avoid the conflict)
    1$ git merge 5e776c4c92d0a33c15311c7289139835132f2fec      # this PR
    2$ scripts/diffcheck.sh
    3...
    4$ diff -u -B5 /tmp/before.diff /tmp/after.diff
    5...
    

    It’s complaining that there are differences in the summaries of BIPs 40 (“Stratum wire protocol”), 41 (“Stratum mining protocol”), and 63 (“Stealth addresses”); which are all changing from “Standard” to “Specification”, but only exist as assigned numbers, with no actual document in the repo. They’re all more than a decade old based on git blame’s output, so could probably just be removed from the README entirely (though doing that would also trigger the same set of errors).

  19. ajtowns commented at 6:39 am on July 1, 2025: contributor
    I wonder if it would be worthwhile splitting the list of BIPs in the README by status. I’ve had a go at that in a gist here, including an update for the perl script: https://gist.github.com/ajtowns/5a8c504b6ef0e91437614be2840921d7#file-test-mediawiki (also changed the link text to be BIP-nnn instead of just nnn, to make searching for “bip-3” easier)
  20. murchandamus commented at 1:28 am on July 8, 2025: contributor

    It’s complaining that there are differences in the summaries of BIPs 40 (“Stratum wire protocol”), 41 (“Stratum mining protocol”), and 63 (“Stealth addresses”);

    Thanks for figuring that out. I was starting to doubt my sanity that evening. :)

    They’re all more than a decade old based on git blame’s output, so could probably just be removed from the README entirely (though doing that would also trigger the same set of errors).

    I guess I should remove or relabel them in a separate PR, then.

    I wonder if it would be worthwhile splitting the list of BIPs in the README by status. I’ve had a go at that in a gist here, including an update for the perl script: https://gist.github.com/ajtowns/5a8c504b6ef0e91437614be2840921d7#file-test-mediawiki (also changed the link text to be BIP-nnn instead of just nnn, to make searching for “bip-3” easier)

    I like the change to “BIP-nnn”; it looks nice. And sorting by status neatly highlights what’s deployed, but it not being sorted by numbers looks awfully strange to me—I have probably been staring at it too long that way. It might get some people motivated to update their BIPs to a more adequate status?

    However, this Pr already has a lot going on, making me concerned that it will get review, I’m not sure I’d want to open up that can of worms in addition, especially being on the fence.

  21. murchandamus force-pushed on Jul 8, 2025
  22. murchandamus force-pushed on Jul 8, 2025
  23. murchandamus commented at 1:53 am on July 8, 2025: contributor
    Thanks @ajtowns! It passes CI now. @real-or-random, what do you think is the best course of action? It would probably make sense to first get the licensing update you propose in?
  24. ajtowns commented at 7:52 am on July 8, 2025: contributor

    I wonder if it would be worthwhile splitting the list of BIPs in the README by status.

    I like the change to “BIP-nnn”; it looks nice.

    However, this Pr already has a lot going on,

    I wasn’t meaning to imply it should be part of this PR; my understanding was further improvements could still be made once BIP-3 was active.

  25. murchandamus commented at 2:39 pm on July 8, 2025: contributor
    Ah sorry, I misunderstood that. Yeah, afterwards sounds good to me, as the reordering of the README table would conflict with all of the changes here.
  26. murchandamus commented at 8:11 pm on July 8, 2025: contributor
    Cherry-picked the commit from #1891 to add support for the Version field to scripts/buildtable.pl, thanks @nothingmuch.
  27. real-or-random commented at 10:03 am on July 9, 2025: contributor

    @real-or-random, what do you think is the best course of action? It would probably make sense to first get the licensing update you propose in?

    See #1892.

  28. murchandamus added the label PR Author action required on Jul 16, 2025
  29. ajtowns commented at 4:26 am on August 27, 2025: contributor
    Is this waiting on anything?
  30. murchandamus commented at 9:55 pm on September 16, 2025: contributor

    Is this waiting on anything?

    Mostly me needing to redo the work here to rebase on top of the many changes. Also #1970.

  31. process: Activate BIP3, close BIP2 edc21d1153
  32. process: Update README to match BIP3 19757e0f50
  33. process: Clarify handling of controversial BIPs
    It is preferable to close PRs over having them stuck in controversy
    limbo indefinitely.
    3adba2fa3d
  34. process: Proposed ↦ Complete
    Amend CI script to new statuses and update existing status field values
    in table and BIPs.
    
    ```
    sed -z -i 's/Status: Proposed/Status: Complete/' bip-0*.md
    sed -z -i 's/Status: Proposed/Status: Complete/' bip-0*.mediawiki
    sed -i 's/| Proposed/| Complete/' README.mediawiki
    ```
    4cb2d064e6
  35. process: Final/Active ↦ Deployed
    ```
    sed -z -i 's/Status: Active/Status: Deployed/' bip-0*.md
    sed -z -i 's/Status: Active/Status: Deployed/' bip-0*.mediawiki
    sed -z -i 's/Status: Final/Status: Deployed/' bip-0*.md
    sed -z -i 's/Status: Final/Status: Deployed/' bip-0*.mediawiki
    sed -i 's/| Active/| Deployed/' README.mediawiki
    sed -i 's/| Final/| Deployed/' README.mediawiki
    ```
    cc2bdb3c81
  36. process: Deferred/Obsolete/Rejected/Replaced/Withdrawn ↦ Closed
    ```
    sed -z -i 's/Status: Deferred/Status: Closed/' bip-0*.md
    sed -z -i 's/Status: Deferred/Status: Closed/' bip-0*.mediawiki
    sed -z -i 's/Status: Obsolete/Status: Closed/' bip-0*.md
    sed -z -i 's/Status: Obsolete/Status: Closed/' bip-0*.mediawiki
    sed -z -i 's/Status: Rejected/Status: Closed/' bip-0*.md
    sed -z -i 's/Status: Rejected/Status: Closed/' bip-0*.mediawiki
    sed -z -i 's/Status: Replaced/Status: Closed/' bip-0*.md
    sed -z -i 's/Status: Replaced/Status: Closed/' bip-0*.mediawiki
    sed -z -i 's/Status: Withdrawn/Status: Closed/' bip-0*.md
    sed -z -i 's/Status: Withdrawn/Status: Closed/' bip-0*.mediawiki
    ```
    
    ```
        sed -i 's/| Deferred/| Closed/' README.mediawiki
        sed -i 's/| Obsolete/| Closed/' README.mediawiki
        sed -i 's/| Rejected/| Closed/' README.mediawiki
        sed -i 's/| Replaced/| Closed/' README.mediawiki
        sed -i 's/| Withdrawn/| Closed/' README.mediawiki
    ```
    3fa1613c68
  37. process: Superseded-By ↦ Proposed-Replacement
    sed -z -i 's/Superseded-By: /Proposed-Replacement: /' bip-0*.md
    sed -z -i 's/Superseded-By: /Proposed-Replacement: /' bip-0*.mediawiki
    5c6cf8789c
  38. process: Standards Track ↦ Specification
    ```
    sed -z -i 's/Type: Standards Track/Type: Specification/' bip-0*.md
    sed -z -i 's/Type: Standards Track/Type: Specification/' bip-0*.mediawiki
    ```
    
    Afetr the scripted changes, the changes to BIP-40, BIP-41, and BIP-63
    were undone, because it breaks CI.
    
    These three BIPs only exist conceptually and their proposal documents
    are missing which causes changes to them ot break the CI. I defer the
    changes to these BIPs to a separate pull request to get CI to pass.
    1a0c9e65b5
  39. murchandamus force-pushed on Oct 8, 2025
  40. murchandamus removed the label PR Author action required on Oct 8, 2025
  41. murchandamus marked this as ready for review on Oct 8, 2025
  42. murchandamus commented at 10:13 pm on October 8, 2025: contributor
    Some hours of resolving merge conflicts, redoing edits, and adding the “Created ↦ Assigned” header update, each commit is now passing the buildtable.pl. This should now be ready to deploy, whenever it has been reviewed and the community is ready.
  43. achow101 commented at 10:24 pm on October 8, 2025: member
    Concept ACK
  44. murchandamus removed the label Pending acceptance on Oct 8, 2025
  45. davidgumberg commented at 11:26 pm on October 8, 2025: none
    Concept ACK, +1 to @ajtowns suggestion of having BIPs organized by status (somewhere, doesn’t necessarily have to replace the numbered list), but I agree with @murchandamus that this should happen in a later PR.
  46. murchandamus commented at 1:19 am on October 9, 2025: contributor

    having BIPs organized by status

    I just took a look at that again, and noticed that the table in the README is already a "wikitable sortable", but a little more search tells me that GitHub only translates the MediaWiki format to Markdown under the hood, and sortable tables are actually not supported. It might simply not be something that we can natively support in the README, but perhaps the bips repo could also be published as a github.io page at some point or something similar. (Just an idea, not signing up to drive that. ;))

  47. polespinasa commented at 0:17 am on October 10, 2025: none

    +1 to @ajtowns and @davidgumberg.

    perhaps the bips repo could also be published as a github.io page at some point or something similar.

    This could be a nice way to do it, something similar to https://bips.dev/status/.

  48. in README.mediawiki:23 in edc21d1153 outdated
    19@@ -20,20 +20,20 @@ Those proposing changes should consider that ultimately consent may rest with th
    20 | Amir Taaki
    21 | Process
    22 | Replaced
    23-|- style="background-color: #cfffcf"
    24+|- style="background-color: #ffcfcf"
    


    polespinasa commented at 0:21 am on October 10, 2025:
    Just curiosity, what do these color changes do? I don’t see any difference in the original file vs. this commit version.

    murchandamus commented at 9:02 pm on October 10, 2025:
    TBH, I think this is another feature that simply doesn’t render in GitHub. Presumably, it does something when you render the MediaWiki files locally.
  49. in README.mediawiki:38 in 3fa1613c68 outdated
    35 |
    36 | BIP process, revised
    37 | Luke Dashjr
    38 | Process
    39-| Replaced
    40+| Closed
    


    polespinasa commented at 0:46 am on October 10, 2025:

    Shouldn’t all closed be background-color: #ffcfcf ? #cfffcf is used for deployed ones if I understood correctly.

    (If so, there are multiple files with the wrong color)


    murchandamus commented at 9:08 pm on October 10, 2025:

    Is it possible that you are getting the grouping of the lines mixed up? Rows start on the lines with |- and the last line belonging to the row has the Status column:

  50. in bip-0135.mediawiki:5 in ebd0e00f00 outdated
    1@@ -2,9 +2,7 @@
    2   BIP: 135
    3   Title: Generalized version bits voting
    4   Author: Sancho Panza <sanch0panza@protonmail.com>
    5-  Comments-Summary: No comments yet.
    6-  Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0135
    7-                https://bitco.in/forum/threads/bip9-generalized-version-bits-voting-bip-genvbvoting.1968/
    8+	  https://bitco.in/forum/threads/bip9-generalized-version-bits-voting-bip-genvbvoting.1968/
    


    polespinasa commented at 0:51 am on October 10, 2025:
    why is this link left here under.

    polespinasa commented at 0:57 am on October 10, 2025:
    Oh I see it’s moved in the next commit ea78303c827c9be35f0bc60a47ac53d3af36b85c Can’t this two just be squashed?

    murchandamus commented at 9:11 pm on October 10, 2025:
    Given the large amount of changes, I would prefer to keep the commits clear in their purpose, but perhaps it would be better to move the fixes to preambles earlier in the sequence of commits, so that this whitespace amendment to make sure the line is indented correctly isn’t as confusing.

    murchandamus commented at 9:26 pm on October 10, 2025:

    I reordered the fix to the Preamble of BIP 135 and the Renaming of Post-History to Discussion to go before dropping the Comments-URI and Comments-Summary, so the sequence of changes should now make more sense.

  51. polespinasa commented at 1:12 am on October 10, 2025: none

    ACK c356d8e1b5ed90bc63e971fb1cb927bcaecec57b

    lgtm, didn’t run scripts locally but checked the changes on github.

  52. murchandamus commented at 9:11 pm on October 10, 2025: contributor
    Thanks for the reviews
  53. BIP135: Move discussion to correct header 9eaee0a615
  54. process: Post-History ↦ Discussion
    Also line up with additional items in the lines below.
    
    ```
    sed -i -z 's/  Post-History: /  Discussion:   /' bip-0*.md
    sed -i -z 's/  Post-History: /  Discussion:   /' bip-0*.mediawiki
    ```
    faed340067
  55. process: Remove Comments-URI and -Summary
    ```
    sed -i '0,/Comments-Summary/{/Comments-Summary/d}' bip-0*md
    sed -i '0,/Comments-Summary/{/Comments-Summary/d}' bip-0*mediawiki
    sed -i '0,/Comments-URI/{/Comments-URI/d}' bip-0*md
    sed -i '0,/Comments-URI/{/Comments-URI/d}' bip-0*mediawiki
    ```
    
    Then reset the BIPs with non-empty comment wikis:
    
    - bip-0037.mediawiki
    - bip-0038.mediawiki
    - bip-0039.mediawiki
    - bip-0042.mediawiki
    - bip-0044.mediawiki
    - bip-0047.mediawiki
    - bip-0049.mediawiki
    - bip-0060.mediawiki
    - bip-0061.mediawiki
    - bip-0074.mediawiki
    - bip-0075.mediawiki
    - bip-0077.md
    - bip-0084.mediawiki
    - bip-0090.mediawiki
    - bip-0118.mediawiki
    - bip-0125.mediawiki
    - bip-0150.mediawiki
    - bip-0151.mediawiki
    - bip-0152.mediawiki
    - bip-0171.mediawiki
    - bip-0172.mediawiki
    - bip-0173.mediawiki
    - bip-0174.mediawiki
    - bip-0176.mediawiki
    - bip-0178.mediawiki
    - bip-0199.mediawiki
    - bip-0322.mediawiki
    - bip-0340.mediawiki
    - bip-0341.mediawiki
    18cbfc7812
  56. process: Author ↦ Authors
    ```
    sed -z -i 's/Author: /Authors: /' bip-0*.md
    sed -z -i 's/Author: /Authors: /' bip-0*.mediawiki
    ```
    
    Also align correctly in case of multiple authors.
    84541cf4e9
  57. process: Allow Deputies header 0f56de33fc
  58. process: Increase title limit 6fc7a2a60d
  59. process: Update license check e46dc52b1d
  60. BIP372: Drop redundant Discussions-To Header
    BIP2 states that the Discussions-To header should only be used if the
    proposal was discussed somewhere else beside the Bitcoin Developer
    Mailing List. Therefore, the only use of the Discussions-To header in
    the repository is unnecessary and can be removed before the header is
    abolished.
    7620e24e8d
  61. process: Drop unused Discussions-To Header 60a814a1b6
  62. editor: Remove outdated comment from README table 2b27e3e348
  63. Allow `Version` field in checks as per BIP 3 335e570e53
  64. process: Created ↦ Assigned
    ```
    sed -z -i 's/Created: /Assigned: /' bip-0*.md
    sed -z -i 's/Created: /Assigned: /' bip-0*.mediawiki
    ```
    dbf2a3f2df
  65. murchandamus force-pushed on Oct 10, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bips. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-10-12 05:10 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me