creating-changesets
π―Skillfrom saleor/configurator
Automates changeset creation for semantic versioning, determining version bump type and generating detailed release notes.
Installation
npx skills add https://github.com/saleor/configurator --skill creating-changesetsSkill Details
"Creates changesets for semantic versioning and automates release notes. Determines correct version bump type (patch/minor/major) and generates well-documented changelog entries. Triggers on: add changeset, create changeset, version bump, prepare release, CHANGELOG, breaking change, pnpm changeset."
Overview
# Changeset & Release Manager
Purpose
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
Table of Contents
- [What is a Changeset?](#what-is-a-changeset)
- [Changeset Types](#changeset-types)
- [Decision Guide](#decision-guide)
- [Creating a Changeset](#creating-a-changeset)
- [Release Workflow](#release-workflow)
- [Checking Status](#checking-status)
- [References](#references)
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
```bash
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:
```markdown
---
"@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
```markdown
---
"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
```bash
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
```bash
# 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
See [Scenarios & Examples](references/scenarios.md)
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 this repository8
Here's a concise, practical description for the "implementing-cli-patterns" skill: Implements consistent CLI user experiences with color-coded output, progress indicators, interactive prompts, and...
Explains Saleor e-commerce domain, revealing entity identification, deployment pipeline, and configuration management strategies for developers.
Reviews TypeScript code for type safety, clean code principles, functional patterns, Zod validation, and error handling across various project scenarios.
Designs and validates Zod schemas with type inference, supporting complex validation patterns, branded types, and transformations.
Generates type-safe GraphQL operations using gql.tada and urql, implementing a repository pattern for Saleor API interactions with robust error handling.
Configures and manages GitHub Actions workflows, automates releases via Changesets, validates PRs, and troubleshoots CI pipeline failures.
Analyzes and generates comprehensive tests using Vitest and MSW, creating test builders, mocking repositories, and configuring integration tests.
Validates code quality by running linting, TypeScript compilation, tests, and CI checks before committing or pushing changes.