Process: Activate BIP3 #1820

pull murchandamus wants to merge 19 commits into bitcoin:master from murchandamus:2025-04-bip3-activation changing 190 files +969 −1254
  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.

    Waiting for:

    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)
    • Enforce order of headers in Preamble and fix order in BIPs that don’t conform
  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. process: Activate BIP3, close BIP2 517c38a5e1
  22. process: Update README to match BIP3 bf478c0d7a
  23. process: Clarify handling of controversial BIPs
    It is preferable to close PRs over having them stuck in controversy
    limbo indefinitely.
    998f46e408
  24. 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
    ```
    38bb704829
  25. 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
    ```
    8fcc7809d9
  26. 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
    ```
    4a7f356855
  27. 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
    e0d3a9ac74
  28. murchandamus force-pushed on Jul 8, 2025
  29. 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.
    9a7098560d
  30. 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-0010.mediawiki
    - 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
    21ba9e0bde
  31. BIP135: Move discussion to correct header f9c2d9004b
  32. 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
    ```
    18b4fc1ea9
  33. 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.
    8cec8f214f
  34. process: Allow Deputies header e65a8aba20
  35. process: Increase title limit ec6125be9b
  36. process: Update license check 656bd33f84
  37. 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.
    0654b2b890
  38. process: Drop unused Discussions-To Header 77e4087f72
  39. editor: Remove outdated comment from README table 321e89527c
  40. murchandamus force-pushed on Jul 8, 2025
  41. 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?
  42. 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.

  43. 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.
  44. Allow `Version` field in checks as per BIP 3 bc7dc8ca35
  45. 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.
  46. 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.

  47. murchandamus added the label PR Author action required on Jul 16, 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-07-29 16:10 UTC

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