Continuing the discussion from Issues to address to get out of beta:
As a user, I’d like to emphasize this. The current version numbering of Duplicati is not good.
In my opinion, you should not use the same set of leading number for stable, beta, experimental and canary releases.
The 2.0.4.23 release is an example of bad numbering. According to the version number, I expect it as a user to include all changes <= 2.0.4.23.
The main problem is as said previously, that there is no clear numbering scheme, so the version numbers are unpredictable and no milestone can be created based on a future version number
One proposition: assuming a version number W.X.Y.Z
,
- increment W only for major new versions (potential Duplicati 3, in practice W is lost for versioning purpose in the current usage)
- increment X after every stable release
- increment Y after every beta release
- increment Z after every experimental or canary release
Reset all lower numbers to 0 for subsequent builds every time a higher level get incremented.
So given a chronological sequence of releases, this could look like this:
- 2.0.4.29 canary release
- 2.0.4.30 experimental release
- 2.0.4.31 beta release of the 2.0.4 branch
(— experimental and canary must increment Y after that point —) - 2.0.5.0 canary release
- 2.0.5.1 canary release
- 2.0.5.2 canary release
- 2.0.5.3 experimental release
- 2.0.5.4 canary release
- 2.0.4.32 urgent bugfix on beta of the 2.0.4 branch release (does not include changes from 2.0.5.*)
- 2.0.5.5 canary release
- 2.0.5.6 experimental release
- 2.0.5.7 beta release of the 2.0.5 branch with all changes from <= 2.0.5.7
(— experimental and canary must increment Y after that point —) - 2.0.6.0 canary release for the new 2.0.6 branch
- 2.0.5.8 stable release of the 2.0 branch with all changes from <= 2.0.5.8,
(— beta, experimental and canary must increment X after that point —) - 2.1.0.0 canary release for the new 2.1.0 branch
- 2.1.0.1 canary release
- 2.1.0.2 experimental release
- 2.1.0.3 beta release of the 2.1.0 branch with all changes from <= 2.1.0.3
(— experimental and canary must increment Y after that point —) - 2.1.1.0 canary release for the new 2.1.1 branch
- 2.1.1.1 canary release
- 2.1.1.2 experimental release
- 2.1.1.3 beta release of the 2.1.1 branch with all changes from <= 2.1.1.3
(— experimental and canary must increment Y after that point —) - 2.1.2.0 canary release for the new 2.1.2 branch
- 2.1.2.1 canary release
- 2.1.1.4 bugfix on beta release for the previous 2.1.1.* branch
- 2.0.5.9 bugfix on stable release for the previous 2.0.5.* branch
- 2.1.2.2 canary release
- 2.1.2.3 experimental release
- 2.1.2.4 beta release
(— experimental and canary must increment Y after that point —) - 2.1.3.0 canary release for the new 2.1.3 branch
- 2.1.2.5 stable release of the 2.1 branch with all changes from <= 2.1.2.5
(— beta, experimental and canary must increment X after that point —) - 2.2.0.0 canary release for the new 2.2.0 branch
- 2.2.0.1 canary release
…