Versioning

Catalyst follows a structured versioning approach to distinguish between stable releases and ongoing development.

To stay updated on our releases, check out the Catalyst releases page (opens in a new tab) and the changelog (opens in a new tab) on GitHub.

How we use branches

The canary branch contains the latest code in development and is the default branch for the Catalyst repository instead of main. Note that the most recent commit in canary may not be stable.

For the most recent stable code, refer to How we use tags below.

How we use tags

We create Github Releases from Git tags to indicate distributable releases of Catalyst. To get the latest stable release of Catalyst, you can use the following tags:

  • Catalyst - @bigcommerce/catalyst-core@latest
  • Catalyst (with Makeswift) - @bigcommerce/catalyst-core@makeswift-latest
⚠️

Until version 1.0 of Catalyst is released, the release deployed using One-Click Catalyst will be from the @bigcommerce/catalyst-core@makeswift-canary tag and is not guranteed to be stable. After 1.0 is released, this will move to use the @bigcommerce/catalyst-core@makeswift-latest which will be stable.

You can also find a list of all Catalyst release tags (opens in a new tab) in the Catalyst repository.

How we handle versioning

Catalyst is moving from a ZeroVer (opens in a new tab) versioning strategy to SemVer (opens in a new tab).

Each release includes a changeset that outlines changes, categorizing them as patch, minor, or major changes based on SemVer (opens in a new tab) versioning. Backwards-incompatible changes will now be tagged with major version bumps. While the exact definition of "backwards incompatible" can vary in a customizable product, we'll aim to provide clear communication on updates that might require extra effort to integrate.

These breaking or major changes include:

  • Updates that affect the shopper experience.
  • Modifications to the theme interface.
  • Significant internal refactors that, while not altering functionality, create substantial merge conflicts when updating Catalyst.

Minor changes include:

  • Adding new functionality that does not interfere with existing features.
  • UI adjustments that do not modify prop interfaces.

Patch changes include:

  • Small patches and bug fixes.

How to handle updates

To update your local code against the latest stable release from Catalyst, you can merge changes from the latest release into your branch:

    git fetch --tags
    git merge @bigcommerce/catalyst-core@latest

Alternatively, you can rebase your branch against the latest release:

    git fetch --tags
    git rebase tags/@bigcommerce/catalyst-core@latest