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
-
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