dev3 ·
I understand MAJOR.MINOR.PATCH in theory, but in practice I am never sure what counts as breaking. How should I apply semantic versioning to a library or an app?
0
DEV3 Developer Forum
Every post is reviewed first. Usually reviewed within 24 hours.
I understand MAJOR.MINOR.PATCH in theory, but in practice I am never sure what counts as breaking. How should I apply semantic versioning to a library or an app?
Short answer: semantic versioning is a promise about compatibility for people who depend on your public API. Bump based on what that promise covers.
Whatever users are meant to rely on: exported functions and types, CLI flags, configuration keys, HTTP endpoints and response formats, database migrations for an installable product. Internal modules are not part of it unless you documented them.
CHANGELOG with sections for added, changed, deprecated, removed and fixed.v1.4.2).2.0.0-beta.1.When in doubt, ask: could an existing user's code or setup break after upgrading? If yes, it is major.