Good idea, exactly what I do with cups-filters. I also started as you are doing currently, 1.0.xx and every time increasing xx independent whether I have a feature release or bug fix release.

Then I realized the meaningless 2 first components and the ridiculously increasing third component and switched to the following (hopefully standard) rules:

1. The first component is the generation. To be increased only on significant architecture changes. In cups-filters I increasing from 1 to 2 currently as I am moving from print filters (file format conversion filters) from separate executables (as CUPS was using them) to library functions (as the upcoming New Architecture is using them, like Printer/Scanner Applications which emulate IPP network devices).

2. The second component I use for feature additions. For example I raised it when I added a filter for generating the PCLm file format.

3. The third component is for bug fixes, for example if a filter crashed or did not work on a certain file it should work with.

For distros it is easy then. Increases in the first and second component can be accepted only before Feature Freeze and increases of the third also after.

   Till

https://github.com/OpenPrinting/cups-filters/blob/master/NEWS#L2501
https://github.com/OpenPrinting/cups-filters/blob/master/NEWS#L2470


On 27/12/2021 18:04, Povilas Kanapickas wrote:
Hello,

The current versioning scheme does not allow proper bugfix releases of
SANE backends. That is, only 3 components in the version are supported
properly in the build scripts and elsewhere. For example version codes
for 1.0.33.1 would be identical to 1.0.33. Version codes are the only
thing that I found, there are likely other problems because people
writing code did not expect a 4-component version.

The above is bad, because e.g. if we release 1.0.33 and notice a serious
problem, we can't release a bugfix without risking breakage in various
places even if it's a single line change.

Fixing all the code that expects 3-component version is probably not
good use of the time we have.

Therefore I propose we switch to increasing the second version component
instead of the third for future releases of SANE. E.g. instead of
1.0.35, 1.0.36 and 1.0.37 we will have 1.2.0, 1.3.0 and 1.4.0 releases.
This way we would have the third version component reserved for bugfix
releases.

I also propose to apply the proposal to the upcoming 1.0.33 release and
use 1.1.0 version for it.

Please let me know what you think.

Regards,
Povilas


Reply via email to