# Changesets

This folder drives per-package versioning and the coordinated publish of the
`@platform-modules/*` modules. Each `@platform-modules/*` package versions **independently** — a change to
`@platform-modules/i18n` never forces a bump on an unrelated module.

## Workflow

1. After making a change that should ship, record intent:

   ```bash
   pnpm changeset
   ```

   Pick the affected package(s) and the bump (patch / minor / major). This writes
   a markdown file here describing the change. Commit it alongside the code.

2. When ready to release, apply the accumulated changesets — bumps versions,
   rewrites changelogs, updates internal `workspace:*` ranges:

   ```bash
   pnpm changeset:version
   ```

   Commit the result.

3. Build and publish the bumped packages to GitHub Packages:

   ```bash
   pnpm changeset:publish
   ```

## Notes

- `commit: false` — changesets never auto-commits; you control the git history.
- `access: restricted` — packages publish private by default. Flip per-package
  with `publishConfig.access`, or globally here, if a module should be public.
- Private packages (`tooling/*`, `apps/*`) carry `"private": true` and are
  automatically excluded from versioning and publish — no `ignore` entry needed.

See https://github.com/changesets/changesets for the full reference.
