Semantic Versioning is a standard way of versioning that is widely embraced and therefore good for communication about package releases.
In summary (directly from the Semantic Versioning home page):
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
One of the larger items that we are in agreement with is:
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. If you’re worrying a lot about backwards compatibility, you should probably already be 1.0.0.
This wasn’t always the case, and were often using many
0.* packages in
production for a long period of time. We have been changing this in the past
year or so to reflect our agreement with Semantic Versioning.