Skip to content

Commit a46f85e

Browse files
njbrakeclaude
andcommitted
docs: add RELEASE.md describing the release-please flow
Document how this SDK is released: conventional commits drive a release-please release PR; merging it tags and publishes. Covers the repo's registry, secret, version file, the one-time repo setting, and the retry path, and links to the gateway compatibility doc for the cross-repo policy. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent dad6639 commit a46f85e

1 file changed

Lines changed: 40 additions & 0 deletions

File tree

RELEASE.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Releasing
2+
3+
This SDK is versioned independently of the otari gateway, with its own semver.
4+
Releases are automated with [release-please](https://github.com/googleapis/release-please).
5+
6+
## How a release happens
7+
8+
1. Merge changes to `main` using [Conventional Commits](https://www.conventionalcommits.org/)
9+
(`feat:`, `fix:`, etc.). This includes the gateway codegen's regeneration PRs
10+
and ordinary shell PRs.
11+
2. release-please opens or updates a single **release PR** that bumps the version
12+
in `pyproject.toml` (`[project].version`) and writes `CHANGELOG.md`.
13+
3. Review and merge the release PR. That tags the release and creates a GitHub
14+
Release.
15+
4. The same workflow run (`.github/workflows/release-please.yml`, gated on
16+
`release_created`) builds the package and publishes it to PyPI.
17+
18+
## Configuration
19+
20+
- **Registry:** PyPI (`otari`).
21+
- **Auth:** PyPI trusted publishing via OIDC (`environment: pypi`, `id-token: write`).
22+
No API token secret is stored; the trusted publisher must be configured on PyPI.
23+
- **Version file:** `pyproject.toml` `[project].version` (the only place to change
24+
the version; do not edit it by hand, release-please owns it).
25+
26+
## Prerequisites (one time, repo settings)
27+
28+
- Enable **Settings to Actions: "Allow GitHub Actions to create and approve pull
29+
requests"** so release-please can open its release PR.
30+
- Configure the PyPI trusted publisher for this repo and the `pypi` environment.
31+
32+
## If the publish fails
33+
34+
The release tag and GitHub Release already exist, so re-run the failed `publish`
35+
job from the Actions tab to retry publishing the same version. Avoid cutting a
36+
release by hand; the automated path keeps `pyproject.toml`, the tag, and the
37+
changelog in sync.
38+
39+
See the gateway's [SDK release coordination and compatibility](https://github.com/mozilla-ai/otari/blob/main/docs/sdk-compatibility.md)
40+
for the cross-repo policy, the spec-version model, and the end-to-end flow.

0 commit comments

Comments
 (0)