darktable icon indicating copy to clipboard operation
darktable copied to clipboard

RFC: date-based version numbering? (2025 edition)

Open ralfbrown opened this issue 11 months ago • 7 comments

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.

ralfbrown avatar Jan 05 '25 20:01 ralfbrown

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.

victoryforce avatar Jan 05 '25 21:01 victoryforce

Why help some dubious review sites that their AI based review generation doesn‘t interpret a x.0 as a groundbreaking major release ;)

MStraeten avatar Jan 06 '25 06:01 MStraeten

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…

parafin avatar Jan 06 '25 06:01 parafin

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Mar 08 '25 00:03 github-actions[bot]

I like the Emacs version scheme. It neatly circumvents the whole even/odd and what about December discussion.

A version number with two components (e.g., ‘28.1’) indicates a released version; three components indicate a development version (e.g., ‘29.0.50’ is what will eventually become ‘29.1’).

Donatzsky avatar Mar 09 '25 19:03 Donatzsky

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar May 09 '25 00:05 github-actions[bot]

I guess I'm not sure what problem we are trying to solve. Everyone understands the numbering scheme as it is and no one seems to have a problem with it.

What do we gain by changing it?

wpferguson avatar Jun 24 '25 01:06 wpferguson

This issue has been marked as stale due to inactivity for the last 60 days. It will be automatically closed in 300 days if no update occurs. Please check if the master branch has fixed it and report again or close the issue.

github-actions[bot] avatar Aug 25 '25 00:08 github-actions[bot]