Airframe GitHub Storybook

Versioning Policy

This policy defines how changes to our Web Components and related assets are versioned, what counts as a breaking change, and how updates are communicated.

  • BAgel uses Semantic Versioning (SemVer) for its published npm package.
  • The version number is expressed as: major.minor.patch (e.g. 3.85.0)

Versioning applies to:

  • BAgel Web Components (npm package)
  • BAgel Helper
  • CSS Utility Classes

Airframe updates are released in tandem when possible, but are versioned separately.

Styling, internal component structure, and non-public implementation details are not covered by SemVer guarantees.

Patch releases do not add or remove public API.

Patch releases include:

  • Bug fixes
  • Colour adjustments
  • Non-breaking visual refinements
  • Non-breaking behavioural changes
  • Internal performance improvements to components

Minor releases add new functionality in a backwards-compatible manner.

Minor releases include:

  • New components
  • New props, attributes, or slots
  • New non-breaking features
  • Additions to existing component behaviour
  • Introduction of aliases for renamed props, components, or utility classes

Major releases are rare, and the team works to avoid them whenever possible. When they are necessary, they are communicated well in advance with clear migration paths.

Major releases are reserved for changes that break the public API, including:

  • Removal of deprecated components
  • Removal of deprecated props/attributes
  • Renaming or removing public props/attributes without an alias
  • Deletion or renaming of components where an alias cannot be maintained
  • Changes to slot names
  • Changes to CSS utility class names
  • Changes to component names

The following elements are considered public API and are covered by SemVer guarantees:

  • Component names
  • Props and attributes
  • Slot names
  • CSS utility classes

The following may change at any time without a major release:

  • Internal markup structure / DOM shape
  • CSS custom property names
  • Shadow DOM structure
  • Implementation details of styles

Consumers must not rely on internal DOM structure for automated tests. Props and attributes should be used instead.

Deprecation timelines vary depending on component usage and impact. The Design System team evaluates each deprecation on a case-by-case basis.

The Design System team aims to provide adequate time for teams to migrate, balancing stability with forward progress.

Deprecations are communicated through:

  • Documentation site (labels, banners, migration notes)
  • BAgel Helper (console warnings)
  • GitHub changelog
  • Teams and Slack channel announcements
  • Older versions are not supported.
  • No long-term support (LTS) is provided.
  • Deprecated features are removed in the next major version.

During a deprecation period:

  • Deprecated APIs remain available until the next major release
  • Aliases for renamed props, utility classes, and components are provided
  • Deprecated and new APIs may temporarily coexist during migration periods
  • BAgel does not publish experimental or unstable components.
  • All published components are stable and part of the public API.
  • BAgel releases updates as needed, not on a fixed schedule.
  • Airframe updates often accompany code updates but do not enforce version bumps.
  • The Design System team maintains full ownership of the system.
  • New components and major changes go through an RFC process, available on request.
  • Breaking changes require internal approval and must be documented clearly.

Every release includes:

  • A GitHub changelog entry
  • Documentation updates

Minor releases include:

  • Announcements in the Teams and Slack channels with a list of patch releases between minor releases

Major releases also include:

  • An upgrade guide
  • Announcements in the Teams and Slack channels
  • Direct communication to key stakeholders
Figma GitHub Storybook Version 3 release guide Release history BAgel helper QA process