You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-on to #17505 to restart the discussion and hopefully have a final decision by summer.
Three main possibilities for a date-based approach to version numbers
simply bump the major version every year (the GCC approach). Minimum change to existing practice, the December 2025 release becomes 6.0.0.
two digit major version corresponding to the last two digits of the year
four digit major version for the year
Previous discussion was largely against trying to use anything finer-grained than years, e.g. making the summer release N.6. Overall consensus seemed to be to retain the odd-dev, even-stable minor version numbers.
There was some talk of a possible disconnect from calling the December 2024 release version 2025.0, but it is in fact common to have a "Year N" version late in year N-1 (not just for automobiles, various other raw converters already had their first 2025 releases in Nov/Dec 2024).
Overall, this would give us version 6.0/26.0/2026.0 for the December 2025 release and 6.2/26.2/2026.2 for the summer 2026 release.
One other alternative to date-based versioning would be to simply declare each feature release a new major version (the clang/LLVM approach), patch releases N.1/N.2/etc, and call dev for the next feature release version N.9 which becomes (N+1).0 on release. So we could have 6.0 for summer 2025, 7.0 for December 2025, 8.0 for summer 2026, etc.
The text was updated successfully, but these errors were encountered:
I'll add another possible scheme. In fact, we want to move away from numbering, which looks like semantic versioning, but in reality it's not. We can replace <major>.<minor>.<patch> of our current numbering scheme with <major>*10+<minor>.<patch>. That is, the summer release of 2025 will be 52.0, the winter release of 2025 will be 54.0. When the numbering reaches 58.0, the next version will naturally be 60.0, since now the versions are a single number, with even numbers corresponding to stable releases.
Or you can go with Linux kernel style version numbering, when you increase the major version whenever the minor grows too big to look nice. This essentially changes nothing from current scheme and hopefully avoids this bike-shedding discussion altogether. Really, people, version numbering doesn’t matter, like, at all, as long as it monotonically grows over time. This shouldn’t be a committee decision…
Follow-on to #17505 to restart the discussion and hopefully have a final decision by summer.
Three main possibilities for a date-based approach to version numbers
Previous discussion was largely against trying to use anything finer-grained than years, e.g. making the summer release N.6. Overall consensus seemed to be to retain the odd-dev, even-stable minor version numbers.
There was some talk of a possible disconnect from calling the December 2024 release version 2025.0, but it is in fact common to have a "Year N" version late in year N-1 (not just for automobiles, various other raw converters already had their first 2025 releases in Nov/Dec 2024).
Overall, this would give us version 6.0/26.0/2026.0 for the December 2025 release and 6.2/26.2/2026.2 for the summer 2026 release.
One other alternative to date-based versioning would be to simply declare each feature release a new major version (the clang/LLVM approach), patch releases N.1/N.2/etc, and call dev for the next feature release version N.9 which becomes (N+1).0 on release. So we could have 6.0 for summer 2025, 7.0 for December 2025, 8.0 for summer 2026, etc.
The text was updated successfully, but these errors were encountered: