mirror of
https://github.com/semver/semver.git
synced 2026-07-11 05:12:48 -05:00
Formalizing 0.y.z releases #229
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @DannyBen on GitHub (Jun 30, 2016).
Hello,
There is a chance this was considered or discussed sometime in the past, but since I could not find any reference, I thought I'd share my thoughts on this.
As there are many libraries out there that choose to stay at the 0.y.z stage of their development for a long time, I would like to propose a simple rule, that can be either formalized in the next SemVer spec, or to serve as an alternative answer to the "How should I deal with revisions in the 0.y.z initial development phase?" question in the FAQ section.
The logic I am proposing is simple:
At the 0.y.z stage, everything is the same, only "shifted" to the right.
It looks like some of the packages in the wild are already doing this intuitively. This allows developers who depend on such libraries, to distinguish between breaking and non breaking changes in their dependencies.
If this will be formalized, we will even get the added advantage of being able to set our package manager to bring updates, but not breaking updates - even for 0.y.z releases - to borrow an example from ruby, it will look something like
gem 'simplecov', ">= 0.11", "<0.12"Finally - if this sounds too limiting, or too similar to 1.y.z - then I would like to suggest finding some meaning to the Y and Z in a 0.y.z release - either in the formal spec, or in the form of guidance in the FAQ.
@FichteFoll commented on GitHub (Jun 30, 2016):
This should either be turned into a spec or not mentioned at all, imo. Having it in the FAQ is not restrictive enough.
@tdpsk commented on GitHub (Jul 1, 2016):
I believe if an API decides to stay in the 0.y.z branch after public release they have already decided not to follow the convention laid out in SemVer. Treating 0.y.z differently in the standard because of these APIs would only cause confusion and not add much benefit for them or anybody who decides to follow SemVer. After all SemVer is an opinionated convention for versioning, not a mandatory standard that has to fit all edge cases.
For reference, also refer to point 5:
Version 1.0.0 defines the public API. The way in which the version number is incremented after this release is dependent on this public API and how it changes.@JacksonBailey commented on GitHub (Jul 11, 2016):
#221 discusses also.
@DannyBen commented on GitHub (Jul 11, 2016):
Thanks for referencing, looks like a long and meaningful discussion.
@jwdonahue commented on GitHub (Dec 1, 2017):
@DannyBen, if you do not intend to pursue this further, please close this issue.