Semantic Versioning #203
Closed
BiagioFesta
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Context
Following semver specification, the release versioning of this library (
major.minor.patch
) has involved incrementing thepatch
field for each release:0.1.1
,0.1.2
, ...,0.1.13
, and so on. This was done even if the release included a breaking change.As specified in semver, a major version of zero (
0.y.z
) is for initial development. During this phase, anything may change at any time, and the public API should not be considered stable.However,
Cargo
(package and build manager inRust
) still considers all versions to be compatible because Cargo follows the convention that only changes to the left-most non-zero component indicate an incompatible change.Problem
This leads to a situation where users of the
wtransport
library can experience uncontrollable breaking changes, forcing them to enforce a specific version in their project manifest (see an example here)Proposal
Going forward,
wtransport
will adjust its versioning to align with how Cargo handles compatibility. Until we reach a stable version (i.e.,1.y.z
), each intermediate release that includes a breaking change will result in an increment to the minor field.Beta Was this translation helpful? Give feedback.
All reactions