2. Use alpha versioning during initial development¶
Date: 2023-11-07
Status¶
Accepted
Context¶
Semantic versioning is a (sometimes) helpful communication tool to help users know when to expect they’ll need to respond to, or at least be aware of, changes that break an API. Semantic versioning communicates a different set of concepts altogether than calendar versioning, and although it leaves room for subjectivity and human error is currently the prevailing approach.
During initial development of a project, many changes may be breaking changes. If semantic versioning is followed well during this phase, the outcome is a fast-increasing version number. By the time the project stabilizes, there may already have been tends or even hundreds of breaking changes.
Choosing the right semantic version also carries a mild cognitive burden and can create points of drawn out discussion. Left to these devices, initial development can be slowed by too much back-and-forth.
Decision¶
Use alpha versioning during initial development such that all versions are monotonically increasing versions of the form 0.0.XYZ.
Consequences¶
Consumers won’t know when a change is breaking, and should assume every change is breaking
This decision will need to be amended once the project matures into a stable release pattern
There is sometimes confusion about versions like
0.0.996and people try to install0.99.6or similar insteadEvery released change during initial development will simply increase the last portion of the version string by one