55 lines
1.7 KiB
Markdown
55 lines
1.7 KiB
Markdown
# Changesets
|
|
|
|
This repo uses changesets for version management. Changesets are created manually when you want to bump plugin versions.
|
|
|
|
## When to Create a Changeset
|
|
|
|
Create a changeset when your PR includes changes that plugin consumers should know about:
|
|
|
|
| Change Type | Changeset? | Example |
|
|
|-------------|------------|---------|
|
|
| New feature | Yes (minor) | Add new skill, agent, command |
|
|
| Bug fix | Yes (patch) | Fix skill behavior |
|
|
| Breaking change | Yes (major) | Rename skill, change API |
|
|
| Infrastructure | No | CI workflows, scripts |
|
|
| Documentation | Usually no | README updates |
|
|
| Tooling shims | No | package.json for tooling |
|
|
|
|
## Creating a Changeset
|
|
|
|
```bash
|
|
bun changeset
|
|
```
|
|
|
|
Interactive prompts will ask:
|
|
1. Which packages to include (select affected plugins)
|
|
2. Bump type (major/minor/patch)
|
|
3. Summary of changes
|
|
|
|
This creates `.changeset/{random-name}.md`.
|
|
|
|
## Manual Changeset Format
|
|
|
|
```markdown
|
|
---
|
|
"outfitter": minor
|
|
"gt": patch
|
|
---
|
|
|
|
Add pathfinding skill and fix gt stack detection
|
|
```
|
|
|
|
## CI Behavior
|
|
|
|
The changeset check is advisory, not blocking. It warns when plugin files change without a changeset but doesn't fail the build. This lets you merge infrastructure PRs without ceremony.
|
|
|
|
## Release Flow
|
|
|
|
1. PRs with changesets merge to main
|
|
2. Changesets action creates a version PR with descriptive title (e.g., "chore: release outfitter@1.4.0")
|
|
3. The `release:publish` label is added and auto-merge is enabled
|
|
4. Once CI passes, the PR auto-merges (squash)
|
|
5. Tags like `outfitter@1.2.0` are created for each bumped plugin
|
|
|
|
**Prerequisites:** Repository must have "Allow auto-merge" enabled in Settings → General. Branch protection rules with required status checks ensure CI passes before merge.
|