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, and
  • MAJOR 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.

The Nulogy Design System is maintained by the Design Ops team. Our mission is to help our teams build better interfaces faster. 🚀

Please reach out with any questions or requests.