This document describes the Changesets workflow used in the Checkstack monorepo for managing package versions and changelogs.
Checkstack uses Changesets to manage versioning and changelog generation across all packages and plugins in the monorepo. This ensures that:
When you make changes to packages or plugins, you’ll need to create a changeset to document those changes.
Run the following command from the project root:
bun changeset
This interactive CLI will:
The summary you write will appear in the changelog, so make it clear and descriptive.
A new markdown file will be created in .changeset/ with a random name. The file looks like this:
---
"@checkstack/auth-backend": patch
"@checkstack/auth-frontend": patch
---
Fixed authentication token refresh bug that caused users to be logged out unexpectedly
Commit this file along with your code changes.
When you create a pull request:
When your PR is merged to main:
package.json versionsCHANGELOG.md filesWhen the “Version Packages” PR is reviewed and merged:
If you’re unsure, create a changeset. It’s better to have one than to miss documenting an important change.
Changesets follow semantic versioning (semver):
Example: Fixing a typo in an error message
Example: Adding a new optional parameter to a function
Example: Removing a deprecated function or changing a required parameter
$ bun changeset
🦋 Which packages would you like to include?
◉ @checkstack/healthcheck-backend
🦋 Which packages should have a patch bump?
◉ @checkstack/healthcheck-backend
🦋 Please enter a summary for this change:
Fixed health check timeout handling to prevent false negatives
$ bun changeset
🦋 Which packages would you like to include?
◉ @checkstack/catalog-frontend
◉ @checkstack/catalog-backend
🦋 Which packages should have a minor bump?
◉ @checkstack/catalog-frontend
◉ @checkstack/catalog-backend
🦋 Please enter a summary for this change:
Added ability to archive systems and groups in the catalog
$ bun changeset
🦋 Which packages would you like to include?
◉ @checkstack/backend-api
🦋 Which packages should have a major bump?
◉ @checkstack/backend-api
🦋 Please enter a summary for this change:
BREAKING: Changed PluginContext interface to require logger instance
If you need to bypass the changeset requirement (for docs-only PRs, etc.), you can create an empty changeset:
bun changeset --empty
This creates a changeset that won’t bump any versions but satisfies the requirement.
If you see this error, you need to create a changeset:
bun changeset
If you need to modify your changeset, edit the markdown file in .changeset/ directly.
Delete the changeset file in .changeset/ and run bun changeset again.