Versioning
How the version numbers are incremented in an NDS package.
Semantic Versioning
All NDS packages follow Semantic Versioning (SemVer), which allows for three types of changes:
PATCH
changes for backwards compatible bug fixes,MINOR
changes for new functionality added in a backwards compatible manner, andMAJOR
changes for incompatible API changes
These changes are represented in the version number like MAJOR.MINOR.PATCH
. For version 3.2.4
, that would mean there has been 4 fixes and 2 new features since the last breaking change.
Major Changes
Major version updates are for breaking changes, and may require updates to applications already consuming the package. For example:
- Removing a prop
- Renaming a prop
- Changing the way an existing prop works
- Changing the name of a component
- Removing a component
- Visual updates that could affect the layout of a page, like box-sizing, width, height
- Changes to fonts that could cause wrapping changes, e.g font-size, font-weight, or letter-spacing
Minor Changes
Minor changes are additive changes with backwards compatiblity. For example:
- Adding a new component or feature
- Adding new, optional props to an existing component
- Deprecating something and adding a replacement
- Visual updates to aesthetic features like colour and shadows
- Visual updates to layered components like tooltips that won't affect the layout of a page
Patch Changes
Patch changes are for fixing defects and optimizing existing code. For example:
- Fixing a defect
- Adding or updating tests
- Updating or refactoring existing code in a way that doesn't alter the API
Thank you to Morningstar for the inspiration for this page.