Skip to content

Process: Activate BIP3 #1820

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

Draft
wants to merge 19 commits into
base: master
Choose a base branch
from

Conversation

murchandamus
Copy link
Contributor

@murchandamus murchandamus commented Apr 12, 2025

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

@murchandamus murchandamus added Pending acceptance This BIP modification requires sign-off by the champion of the BIP being modified Process Trying to update process or stuck due to disagreement about Process labels Apr 12, 2025
@murchandamus murchandamus force-pushed the 2025-04-bip3-activation branch from 376ef0c to 4c67644 Compare April 12, 2025 03:34
@murchandamus murchandamus force-pushed the 2025-04-bip3-activation branch 2 times, most recently from 9a0c662 to 11714c5 Compare April 14, 2025 21:02
@murchandamus
Copy link
Contributor Author

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.

@murchandamus
Copy link
Contributor Author

Rebased on the latest version of #1819.

@murchandamus murchandamus force-pushed the 2025-04-bip3-activation branch 6 times, most recently from ec134fb to 5e776c4 Compare June 21, 2025 00:23
Copy link
Contributor Author

@murchandamus murchandamus left a comment

Choose a reason for hiding this comment

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

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.

@ajtowns
Copy link
Contributor

ajtowns commented Jul 1, 2025

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

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

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).

@ajtowns
Copy link
Contributor

ajtowns commented Jul 1, 2025

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)

@murchandamus
Copy link
Contributor Author

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.

It is preferable to close PRs over having them stuck in controversy
limbo indefinitely.
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
```
```
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
```
```
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
```
sed -z -i 's/Superseded-By: /Proposed-Replacement: /' bip-0*.md
sed -z -i 's/Superseded-By: /Proposed-Replacement: /' bip-0*.mediawiki
@murchandamus murchandamus force-pushed the 2025-04-bip3-activation branch from 5e776c4 to f4dc0fa Compare July 8, 2025 01:44
```
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.
```
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
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
```
```
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.
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.
@murchandamus murchandamus force-pushed the 2025-04-bip3-activation branch from f4dc0fa to 321e895 Compare July 8, 2025 01:50
@murchandamus
Copy link
Contributor Author

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?

@ajtowns
Copy link
Contributor

ajtowns commented Jul 8, 2025

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.

@murchandamus
Copy link
Contributor Author

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.

@murchandamus
Copy link
Contributor Author

Cherry-picked the commit from #1891 to add support for the Version field to scripts/buildtable.pl, thanks @nothingmuch.

@real-or-random
Copy link
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.

@murchandamus murchandamus added the PR Author action required Needs updates, has unaddressed review comments, or is otherwise waiting for PR author label Jul 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Pending acceptance This BIP modification requires sign-off by the champion of the BIP being modified PR Author action required Needs updates, has unaddressed review comments, or is otherwise waiting for PR author Process Trying to update process or stuck due to disagreement about Process
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants