My team has this one shared component that gets involved in like every feature’s development. This year, we’re loading like 5 different features onto it, all with different timelines, and my head’s about to explode trying to figure out how to make it all fly.
How does everyone else do their software releases? Do you freeze prod and then do one big release later? Throw everything into prod during dev, hope no one sees the unreleased stuff, and just announce it later? Or something else entirely?
Nobody has suggested it by name, but semantic versioning.
Software MUST have a public API
Version of software must be defined like this:
X.Y.Z
X is major version number. Increment when introducing Breaking API changes (removal of deprecated API for example).
Y is minor version number, increment when introducing backwards compatible changes like new features.
Z is patch version number, increment when fixing bugs in backwards compatible manner.
Source: https://semver.org
There is also zero versioning which I consider a more practical modern branch of semver.
0ver.org