# Releasing

This document describes the maintainer release flow for this package.

## Documentation split

- Keep [README.md](README.md) is the public-facing documentation for users of the package, mainly links to docs.
- Keep internal and maintainer-only workflows in this file.

## Tooling

Releases are managed with [release-it](https://github.com/release-it/release-it/blob/main/README.md) and configured in [.release-it.json](.release-it.json).

The release flow currently:

- runs tests (`npm test`) before starting
- bumps the package version
- creates commit and tag (`v<version>`)
- pushes commit and tag to GitHub
- publishes the package to npm

## Setup

Authenticate to npm:

```sh
npm login
```

## Release commands

1. Preview the flow without making changes:

```sh
npm run release:dry
```

2. Run the interactive release flow:

```sh
npm run release
```

## Notes

- `release-it` requires a clean git working tree by default in this repository.
- If npm auth is missing, the flow fails early with an authentication error.
