Categories
Basic

Semantic Versioning

MAJOR.MINOR.PATCH

  • MAJOR version when you make incompatible API changes
  • MINOR version when you add functionality in a backwards compatible manner
    • It MUST be incremented if any public API functionality is marked as deprecated.
    • It MAY be incremented if substantial new functionality or improvements are introduced within the private code.
    • It MAY include patch level changes. Patch version MUST be reset to 0 when minor version is incremented.
  • PATCH version when you make backwards compatible bug fixes
    • A bug fix is defined as an internal change that fixes incorrect behavior.

Further:

  • Software using Semantic Versioning MUST declare a public API
  • Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
  • Version 1.0.0 defines the public API
    • If your software is being used in production, it should probably already be 1.0.0.
    • If you have a stable API on which users have come to depend, you should be 1.0.0

Refs:

Semantic Versioning 2.0.0

Leave a comment