-
Notifications
You must be signed in to change notification settings - Fork 35.7k
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
build: Drop the leading 0 from the version number #20223
Conversation
Concept ACK |
Concept ACK: a.) number go up is good, and b.) big number going up is obviously better than small number going up! :) |
7559b3c
to
ac38a0a
Compare
Concept ACK for 0.22.0 -> 22.0 |
1 similar comment
Concept ACK for 0.22.0 -> 22.0 |
Concept ACK Redundancy is generally worth considering but this 0.x redundancy seems unnecessary for all possible future scenarios. I'm assuming we don't need to look as far ahead as v99, v100... :) |
Concept NACK, we should stick to a standard versioning system. Either semver (0.features.bugfixes or features.0.bugfixes) or calendar versioning (yy.mm.bugfixes). Whatever we do, CLIENT_VERSION and the UA should reflect it properly. If we go with calendar versioning, replacing 0.21 with 20.11 would make a smoother migration than a 21.N following 0.21. |
Following the discussion in the meeting today I am somewhat indifferent towards making a change. I guess I just have not been asked about a 1.0 enough ;) But if we do change anything I strongly prefer this to all the other approaches that were discussed because it's a simple change and simple to explain to outsiders. |
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers. ConflictsReviewers, this pull request conflicts with the following ones:
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first. |
I'd prefer if we track the calendar, e.g. 20.11 for a november 2020 release as luke suggests. But if it's too late to make that happen I am happy to just drop the 0. |
Concept ACK Assigned 22.0 milestone |
Concept ACK This was discussed in yesterday's meeting: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2020/bitcoin-core-dev.2020-10-22-18.59.log.html#l-122 Current status (please correct me if I'm wrong and I'll update): Concept ACKs (10): @achow101, @laanwj, @practicalswift, @hebasto, @Emzy, @michaelfolkson, @JeremyRubin, @MarcoFalke, @jnewbery, @sipa |
I tend to agree with @luke-jr here. |
Concept ACK. No strong opinion if it should be this release. It makes sense to me because versions like 0.19.0.1 wouldn't exist. |
Do you mean in the NACK sense ("don't drop the leading zero"), or in the use calendar version sense ("20.11" would be November 2020)? :) |
0.19.0.1 is fundamentally different from typical bugfix releases, which are normally using the 3rd int. |
@luke-jr fundamentally different? At the time, if it was 19.0.0, we would just tag 19.0.1, or am I wrong? |
@promag Anything is possible with such hypotheticals. If we had 19.0.0, we should never have 19.1.0 because we don't do minor feature releases... |
(Hmm, unless we decide softforks count as minor features?) |
Is there any strong fundamental long-term drawback on the calendar versioning, i.e. yy.mm.bugfixes (as suggested by JeremyRubin, luke-jr), other than "dropping the zero is simpler"? If not, I'd prefer the calendar versioning as well, it's just nice that you can immediately deduce when a client/node has been last updated by looking at the version, w/o having to look up the version history. |
@theStack Calendar versions don't do that... 2020.11.5 may very well have been released in 2022 and up to date. |
review ACK 8f7b930 🎻 Show signature and timestampSignature:
python: error while loading shared libraries: libpython3.8.so.1.0: cannot open shared object file: No such file or directory |
(also tested that |
Use proper RPCHelpMan framework for submitwork and trackedgames, as that is now mandatory. Includes a revert of bitcoin/bitcoin#20223, so that we continue with 1.x versioning of "major" releases.
68c2ef1 Fix version string in Windows and Mac installers (Andrew Chow) Pull request description: Apparently NSIS requires a 4 digit version number, and #20223 dropped the 4th digit. So this adds a 4th 0 digit so that building the Windows installer doesn't fail. Also fixes a typo in that version string that was also present in a plist file. ACKs for top commit: fanquake: ACK 68c2ef1 laanwj: Code review ACK 68c2ef1 hebasto: Approach ACK 68c2ef1, tested on Linux Mint 20 (x86_64, nsis 3.05-2). Tree-SHA512: 845560ff176eae8081096426790c928a773fa75d366f42a2a4631c1be2ae9234d7a5b72854ccfaa7fa1a32002b937ca393b12168ffacf9a5e3e311a76725483a
68c2ef1 Fix version string in Windows and Mac installers (Andrew Chow) Pull request description: Apparently NSIS requires a 4 digit version number, and bitcoin#20223 dropped the 4th digit. So this adds a 4th 0 digit so that building the Windows installer doesn't fail. Also fixes a typo in that version string that was also present in a plist file. ACKs for top commit: fanquake: ACK 68c2ef1 laanwj: Code review ACK 68c2ef1 hebasto: Approach ACK 68c2ef1, tested on Linux Mint 20 (x86_64, nsis 3.05-2). Tree-SHA512: 845560ff176eae8081096426790c928a773fa75d366f42a2a4631c1be2ae9234d7a5b72854ccfaa7fa1a32002b937ca393b12168ffacf9a5e3e311a76725483a
Fixes the closed-since-April #9653. Not sure what changed, but I'm happy about the decision obviously. |
I wouldn't say anything changed. When it comes to user experience, p2p features, bugfixes, hardening, testing improvements, and literally everything else, the leading 0 in the version is an insignificant stylistic choice. We have enough "real" issues so that tracking issues for stylistic questions are probably eating away resources from more important topics ( #9653 (comment) ) |
I'm surprised nobody mentioned the obvious implication here: Bitcoin Core is now officially out of beta! 🚀 |
It hasn't had a "beta" label since 2014 (see #4221), and even then it was already hardly applicable. |
From #4221:
So are we now saying that the system is mature? 😄 Typically software projects use version numbers less than 1.0 to denote that their software is not yet production-ready. Advancing the version number to something greater than 1.0 sends the signal that the software is now ready for prime time. |
And that's exactly what we wanted to avoid, by not going to 1.0, and instead just dropping the zero. We have for years been calling the X in 0.X.Y the major release number. I don't know what mature means, but Bitcoin Core has had a release process with test procedures, multiple release candidates, goals of compatibility, ... for a better part of a decade now. There is no dramatic change here, no big milestone, and no need for celebrations or whatever. It's just dropping a zero that was redundant. |
Guess we'll need to update https://bitcoincore.org/en/lifecycle/ now that |
@davidlj95 Yes I think it can be updated. Maybe try opening a issue/pull-request in https://github.com/bitcoin-core/bitcoincore.org/ |
Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number. The CLIENT_VERSION remains the same format as previous as previously, the Major version was 0 so that was never a factor in CLIENT_VERSION. Github-Pull: bitcoin#20223 Rebased-From: 8f7b930
8f7b930 Drop the leading 0 from the version number (Andrew Chow) Pull request description: Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number. The CLIENT_VERSION remains the same format as previous as previously, as the Major version was 0 so it never actually got included in it. The user agent string formatter is updated to follow this new versioning. *** Honestly I'm just tired of all of the people asking for "1.0" that maybe this'll shut them up. Skip the whole 1.0 thing and go straight to version 22.0! Also, this means that the terminology we commonly use lines up with how the variables are named. So major versions are actually bumping the major version number, etc. ACKs for top commit: jnewbery: Code review ACK 8f7b930 MarcoFalke: review ACK 8f7b930 🎻 Tree-SHA512: b5c3fae14d4c0a9c0ab3b1db7c949ecc0ac3537646306b13d98dd0efc17c489cdd16d43f0a24aaa28e9c4a92ea360500e05480a335b03f9fb308010cdd93a436
68c2ef1 Fix version string in Windows and Mac installers (Andrew Chow) Pull request description: Apparently NSIS requires a 4 digit version number, and bitcoin#20223 dropped the 4th digit. So this adds a 4th 0 digit so that building the Windows installer doesn't fail. Also fixes a typo in that version string that was also present in a plist file. ACKs for top commit: fanquake: ACK 68c2ef1 laanwj: Code review ACK 68c2ef1 hebasto: Approach ACK 68c2ef1, tested on Linux Mint 20 (x86_64, nsis 3.05-2). Tree-SHA512: 845560ff176eae8081096426790c928a773fa75d366f42a2a4631c1be2ae9234d7a5b72854ccfaa7fa1a32002b937ca393b12168ffacf9a5e3e311a76725483a
8f7b930 Drop the leading 0 from the version number (Andrew Chow) Pull request description: Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number. The CLIENT_VERSION remains the same format as previous as previously, as the Major version was 0 so it never actually got included in it. The user agent string formatter is updated to follow this new versioning. *** Honestly I'm just tired of all of the people asking for "1.0" that maybe this'll shut them up. Skip the whole 1.0 thing and go straight to version 22.0! Also, this means that the terminology we commonly use lines up with how the variables are named. So major versions are actually bumping the major version number, etc. ACKs for top commit: jnewbery: Code review ACK 8f7b930 MarcoFalke: review ACK 8f7b930 🎻 Tree-SHA512: b5c3fae14d4c0a9c0ab3b1db7c949ecc0ac3537646306b13d98dd0efc17c489cdd16d43f0a24aaa28e9c4a92ea360500e05480a335b03f9fb308010cdd93a436
68c2ef1 Fix version string in Windows and Mac installers (Andrew Chow) Pull request description: Apparently NSIS requires a 4 digit version number, and bitcoin#20223 dropped the 4th digit. So this adds a 4th 0 digit so that building the Windows installer doesn't fail. Also fixes a typo in that version string that was also present in a plist file. ACKs for top commit: fanquake: ACK 68c2ef1 laanwj: Code review ACK 68c2ef1 hebasto: Approach ACK 68c2ef1, tested on Linux Mint 20 (x86_64, nsis 3.05-2). Tree-SHA512: 845560ff176eae8081096426790c928a773fa75d366f42a2a4631c1be2ae9234d7a5b72854ccfaa7fa1a32002b937ca393b12168ffacf9a5e3e311a76725483a
Removes the leading 0 from the version number. The minor version, which we had been using as the major version, is now the major version. The revision, which we had been using as the minor version, is now the minor version. The revision number is dropped. The build number is promoted to being part of the version number. This also avoids issues where it was accidentally not included in the version number.
The CLIENT_VERSION remains the same format as previous as previously, as the Major version was 0 so it never actually got included in it.
The user agent string formatter is updated to follow this new versioning.
Honestly I'm just tired of all of the people asking for "1.0" that maybe this'll shut them up. Skip the whole 1.0 thing and go straight to version 22.0!
Also, this means that the terminology we commonly use lines up with how the variables are named. So major versions are actually bumping the major version number, etc.