garden-co / changeset

Generate changeset files for versioning and changelog management in this monorepo.

0 views
0 installs

Skill Content

---
name: changeset
description: Generate changeset files for versioning and changelog management in this monorepo.
---

# Generating Changesets

Use this skill when the user asks to create a changeset or add a changeset.

## What is a Changeset?

A changeset is a markdown file with YAML front matter that documents:
- Which packages need to be released
- What semver bump type (major, minor, or patch) each package should receive
- A changelog entry describing the changes

## Changeset File Format

Changeset files are stored in `.changeset/` directory with a unique filename: `{unique-id}.md`

```markdown
---
"package-name": major|minor|patch
"another-package": minor
---

A description of the changes that will appear in the changelog.
```

## Package Names

Use the exact package name from the package's `package.json` file. Common packages:

- `cojson`
- `jazz-tools`
- `jazz-run`
- `jazz-webhook`
- `cojson-core-wasm`
- `cojson-core-rn`
- `cojson-core-napi`
- `cojson-storage-indexeddb`
- `cojson-storage-sqlite`
- `cojson-storage-do-sqlite`
- `cojson-transport-ws`
- `community-jazz-vue`
- `create-jazz-app`
- `hash-slash`
- `quint-ui`

**Important**: Always check the actual `package.json` file to get the exact package name.

## Semver Bump Types

- **major**: Never use this, we are still in v0
- **minor**: Breaking changes that require users to update their code
- **patch**: New features that are backward compatible, bug fixes and small changes

**Important**: `minor` is only for breaking changes. Everything else should be `patch`.

## Example Changeset

```markdown
---
"jazz-tools": patch
---

Added new `useSuspenseCoState` hook for data fetching using Suspense
```

## Best Practices

- Write clear, user-facing changelog entries (not technical commit messages)
- Use past tense ("Added feature" not "Add feature")
- Be specific about what changed
- If multiple packages are affected, list them all in the front matter

## Workflow

1. User describes the change they made
2. Identify which packages are affected
3. Determine the appropriate semver bump type
4. Create the changeset file in `.changeset/` with a unique filename