On Wed, 2 May 2018 02:03:14 -0700 Liviu Ionescu <i...@livius.net> wrote:
> On 2 May 2018 at 11:13:49, Thomas Huth (th...@redhat.com) wrote: > > > https://qemu.weilnetz.de/doc/qemu-doc.html#Deprecated-features > > Thank you, Thomas. > > > It took quite a while to get a consensus on that policy, so I don't > > think that we want to sacrifice that for semver. > > ok, this might be a point. > > thinking twice, I'm not sure it is a real sacrifice; I think that the > problem here is the strict definition: > > "The feature will remain functional for 2 releases prior to actual removal." > > if it were: > > "The feature will remain functional for _at least_ 2 releases prior to > actual removal. " > > or even better: > > "The feature will remain functional for _at least_ 2 _major_ releases > prior to actual removal. " > > > it would allow to postpone incompatible removals to relatively seldom > major releases, add new features during more often minor releases, and > fix bugs during regular patch releases. Ugh, no. That would mean we have to drag around ill-conceived interfaces for way too long. > > major releases can be scheduled every 1-2 years, for example, minor > releases every 3-6 months, and patch releases when needed. > > > from a use perspective, I don't think that updating the deprecation > policy would be objected, so that would not be perceived as a > sacrifice; on the contrary, such a mechanism would allow both a > faster/flexible release cycle, and give the users a more educated > guess when it is time to upgrade; both beneficial. How on earth is that supposed to speed things up? And really, time to upgrade is either "bugs have been fixed", "a feature I want has been introduced", or "my distro pushed a new package". Not a magic number. > > for the developers/maintainers... I agree that it would require some > more discipline and responsibility. I just don't see any benefits from that. > > not to mention that even before semver, in most versioning schemes it > was somehow expected that while the first version number remains the > same, compatibility is more or less preserved. I don't like semver. For development as it is done in many projects today, you're just doing incremental updates all the time, probably with a stable branch on the side. Meaningful version numbers just get us to stupid discussions about what is a bugfix, what a minor feature, and what a major feature. IOW, I think *any* versioning scheme that does not assign interface/feature expectations to version numbers (beyond "a suffix means a stable update" or something like that) is what would work for us.