changesets
Original:🇺🇸 English
Translated
Changesets for versioning and changelog management in monorepos. Use when managing package versions, generating changelogs, or publishing packages. Use for changesets, versioning, changelog, semver, monorepo-versioning, release, publish, bump.
8installs
Sourceoakoss/agent-skills
Added on
NPX Install
npx skill4agent add oakoss/agent-skills changesetsTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Changesets
Overview
Changesets is a versioning and changelog management tool focused on multi-package repositories. Contributors declare the semver impact of each change (major/minor/patch) via changeset files, then Changesets aggregates them to bump versions, update changelogs, and publish packages in a single coordinated release.
When to use: Monorepo versioning, automated changelog generation, coordinated multi-package releases, CI-driven publishing, prerelease/snapshot workflows.
When NOT to use: Single-file projects with no npm publishing, projects using commit-message-based versioning (semantic-release), manual version management without an npm registry, projects where a single maintainer controls all releases without PR collaboration.
How It Works
- A contributor adds a changeset file declaring affected packages, bump types, and a summary
- The changeset file is committed alongside the code change in the PR
- When ready to release, consumes all pending changesets and updates versions and changelogs
changeset version - publishes the updated packages to npm and creates git tags
changeset publish - In CI, the official GitHub Action automates steps 3-4 via an auto-maintained "Version Packages" PR
Key Concepts
- Changeset file — A markdown file in declaring which packages are affected, their bump type (major/minor/patch), and a human-readable summary that appears in the changelog
.changeset/ - Version command — Consumes all pending changeset files, calculates final version bumps, updates versions, generates
package.jsonentries, and bumps internal dependency rangesCHANGELOG.md - Publish command — Publishes updated packages to npm and creates git tags; must run immediately after with no commits in between
version - Linked packages — Packages that share the highest bump type within a release but maintain independent version numbers
- Fixed packages — Packages that always share the exact same version number across the group
- Prerelease mode — A mode where produces prerelease versions (e.g.,
version) for testing before stable release1.0.0-beta.0 - Snapshot releases — Temporary versions for ad-hoc testing without affecting the main release line
0.0.0-timestamp
Configuration Quick Reference
| Option | Default | Description |
|---|---|---|
| | Changelog generator package or |
| | Auto-commit on |
| | npm publish access; set |
| | Branch used for change detection |
| | Groups of packages that share highest bump type |
| | Groups of packages that share exact version |
| | Packages excluded from changeset versioning |
| | When to bump dependents: |
| | Version/tag behavior for |
Quick Reference
| Pattern | Command / Config | Key Points |
|---|---|---|
| Initialize | | Creates |
| Add changeset | | Interactive prompt for packages and bump type |
| Add empty changeset | | Declares no packages need versioning (satisfies CI) |
| Version packages | | Consumes changesets, bumps versions, updates changelogs |
| Publish packages | | Publishes to npm, creates git tags |
| Check status | | Lists pending changesets; exits 1 if changes lack changesets |
| Status since branch | | Only checks changes since diverging from main |
| Enter prerelease | | Enables prerelease mode (beta, alpha, rc, next) |
| Exit prerelease | | Returns to normal versioning mode |
| Snapshot version | | Creates 0.0.0-timestamp versions for testing |
| Snapshot publish | | Publishes snapshot without overwriting latest dist-tag |
| Link packages | | Packages share the highest version bump type |
| Fix packages | | Packages share the exact same version number |
| Ignore packages | | Excludes packages from changeset versioning |
| Public access | | Required for publishing public scoped packages |
| GitHub changelog | | Adds PR links and contributor attribution |
| Auto-commit | | Version and add commands auto-commit changes |
| Internal deps | | Controls when internal dependents get bumped |
Common Mistakes
| Mistake | Correct Pattern |
|---|---|
Committing between | Run |
Forgetting | Use |
Using | Use |
Setting | Set |
Not including | Full git history is needed for changeset detection |
Running | Always run build step before |
| Entering prerelease mode on main branch | Use a dedicated branch for prereleases to avoid blocking normal releases |
| Ignoring packages that others depend on | Ignored packages skip bumps, breaking dependents — use sparingly |
| Publishing snapshots with default tag | Always use |
Not setting | Both |
Using | The official |
Manually editing generated | Edit changeset files instead; changelogs are regenerated on |
Delegation
- CI pipeline debugging: Use agent for repository-specific workflow discovery
Explore - npm publishing issues: Use agent for debugging publish and registry authentication failures
Task
If theskill is available, delegate build orchestration, task caching, and CI optimization to it. If theturboreposkill is available, delegate workspace setup, dependency linking, catalogs, and Docker deployment to it. See its monorepo integration reference for the end-to-end release pipeline.pnpm-workspace
References
- Basic workflow: adding changesets, versioning, publishing, CI integration
- Monorepo setup: configuration, linked packages, fixed versioning, ignore patterns
- CI automation: GitHub Actions, automated PRs, snapshot releases, prerelease channels