creating-changesets
Changeset & Release Manager
Overview
Automate the creation of changesets following project conventions, ensuring proper version bumps and well-documented release notes.
When to Use
- After completing a feature or fix
- Before creating a PR
- When preparing a release
- To document breaking changes
What is a Changeset?
A changeset is a markdown file in the .changeset/ directory that describes:
- Which packages are affected
- What type of version bump (patch/minor/major)
- A description of the change
Changeset Types
| Type | When to Use | Version Change |
|---|---|---|
patch |
Bug fixes, documentation, refactoring, dependency updates | 1.0.0 → 1.0.1 |
minor |
New features, non-breaking enhancements | 1.0.0 → 1.1.0 |
major |
Breaking changes, API modifications | 1.0.0 → 2.0.0 |
Decision Guide
Use patch for:
- Bug fixes that don't change behavior
- Documentation updates
- Internal refactoring (no API changes)
- Dependency updates (non-breaking)
- Performance improvements
- Code style/linting fixes
Use minor for:
- New features
- New CLI commands
- New configuration options
- Enhanced functionality
- New entity types support
- Non-breaking API additions
Use major for:
- Breaking configuration changes
- Removed features or commands
- Changed CLI interface
- Required migration steps
- Node.js version requirement changes
Creating a Changeset
Interactive Method
pnpm changeset
Follow the prompts:
- Select affected packages (space to select)
- Choose bump type for each package
- Write a summary of changes
Manual Method
Create a file in .changeset/ with a random name:
---
"@saleor/configurator": minor
---
Add support for reference attributes with entityType field
- Attributes of type REFERENCE now require an entityType field
- Introspection properly captures entity type references
- Deploy correctly handles reference attribute creation
File Format
---
"package-name": patch|minor|major
---
Short description of the change (shown in CHANGELOG)
Optional longer description with:
- Bullet points for details
- Code examples if needed
- Migration instructions for breaking changes
Release Workflow
1. Create Changeset
pnpm changeset
git add .changeset/
git commit -m "chore: add changeset for feature"
2. PR and Review
- Changeset is part of the PR
- Reviewers can suggest bump type changes
3. Merge to Main
- Changesets action creates "Version Packages" PR
- This PR updates version and CHANGELOG
4. Merge Version PR
- Triggers npm publish
- Creates GitHub release
Checking Status
# See what changesets exist
npx changeset status
# Preview version bump
npx changeset version --dry-run
Common Mistakes
| Mistake | Issue | Fix |
|---|---|---|
| Wrong bump type | Unexpected version | Review decision guide above |
| Vague description | Poor CHANGELOG | Be specific about changes |
| Missing changeset | No release notes | Always add before PR |
| Multiple changesets | Fragmented notes | Combine related changes |
| Not including context | Hard to understand | Explain why not just what |
Common Scenarios
For detailed examples of common scenarios including:
- Bug fixes, new features, breaking changes
- Multiple related changes
- Consolidated changesets
- Pre-release versions
- Best practices for descriptions
References
{baseDir}/.changeset/config.json- Changeset configuration{baseDir}/CHANGELOG.md- Generated changelog- Changesets docs: https://github.com/changesets/changesets
Related Skills
- CI/CD automation: See
managing-github-cifor release workflow integration - Pre-commit validation: See
validating-pre-commitfor quality gates before committing
More from saleor/configurator
reviewing-typescript-code
Reviews TypeScript code for project-specific quality patterns. Use when writing entities, services, repositories, comparators, formatters, bootstrap methods, deployment stages, diff support, or reviewing PRs with functional patterns. Do NOT use for general TypeScript tutorials or non-Configurator projects.
38designing-zod-schemas
Designs Zod schemas following Zod-first development. Use when creating validation schemas, branded types, discriminated unions, transforms, refinements, or inferring TypeScript types with z.infer.
22understanding-saleor-domain
Explains Saleor e-commerce domain and Configurator business rules. Use when working with entity identification (slug vs name), YAML config structure, entity relationships, deployment pipeline stages, or synchronization logic. Do NOT use for general TypeScript questions or non-Saleor e-commerce platforms.
21analyzing-test-coverage
Creates and analyzes tests using Vitest and MSW patterns. Use when writing unit tests, integration tests, analyzing coverage gaps, setting up MSW handlers, vi.fn mocks, test builders, or debugging test failures. Do NOT use for non-test TypeScript code.
18writing-graphql-operations
Creates GraphQL queries and mutations using gql.tada and urql. Use when writing operations, implementing repositories, updating schema, or testing GraphQL code.
18managing-github-ci
Configures GitHub Actions workflows and CI/CD pipelines. Use when creating workflow YAML, managing npm releases, troubleshooting CI failures, configuring Husky hooks, or setting up release automation. Do NOT use for local development commands or application code.
17