Skip to content

Commit d4ebf52

Browse files
docs: add RELEASING.md for the manual tag-and-notes release flow
1 parent 8476966 commit d4ebf52

1 file changed

Lines changed: 64 additions & 0 deletions

File tree

RELEASING.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# Releasing
2+
3+
Manual release flow for **claude-code-chat-browser**. There is **no CI publish workflow**: a release is an annotated git tag plus a GitHub Release with notes. No wheel, npm package, or other artifact is attached.
4+
5+
`v0.1.0` (2026-06-18) is the only shipped tag so far. `v0.2.0` is in progress and these steps describe how it is being cut.
6+
7+
## Version source
8+
9+
The only version string is `__version__` in `app.py` (line 3). There is no `pyproject.toml` version field.
10+
11+
Between tagged releases, `master` may carry a `.dev0` suffix (for example `0.2.0.dev0` while `0.2.0` was in development). The shipped tag always drops `.dev0`.
12+
13+
## Pre-release checklist
14+
15+
1. Confirm `master` is green in GitHub Actions (`.github/workflows/ci.yml`).
16+
2. Decide the semver bump using [docs/deprecation-policy.md](docs/deprecation-policy.md#versioning) (pre-1.0: patch for safe fixes, minor for additive work and deprecations).
17+
3. If the release removes or renames a documented API field, confirm the [two-release deprecation window](docs/deprecation-policy.md#removal-criteria) is satisfied.
18+
19+
## Release checklist
20+
21+
Do the changelog in one PR and the version bump in a second PR, or combine them on a `release/vX.Y.Z` branch. The `v0.2.0` cut used two PRs: changelog first (`docs/changelog-0-2-0`), then the bump (`release/v0.2.0`).
22+
23+
1. **Changelog** — edit [CHANGELOG.md](CHANGELOG.md) ([Keep a Changelog](https://keepachangelog.com/en/1.1.0/)):
24+
- Move everything under `## [Unreleased]` into a new `## [X.Y.Z] - YYYY-MM-DD` section with `### Added`, `### Changed`, `### Fixed`, or `### Removed` as needed.
25+
- Leave `## [Unreleased]` empty.
26+
- Update the footer compare links: `[Unreleased]``vX.Y.Z...HEAD`, add `[X.Y.Z]``vPREVIOUS...vX.Y.Z`.
27+
2. **Version bump** — on a branch from current `master`, set `app.py` line 3 to the release version without `.dev0` (for example `"0.2.0"`).
28+
3. **Stale references** — from the repo root, grep for the old `.dev0` suffix you are replacing:
29+
```powershell
30+
git grep -n "\.dev0"
31+
```
32+
Update any documentation that still names the previous dev version (for example `docs/deprecation-policy.md`).
33+
4. **Open a PR**, get review, merge to `master`.
34+
5. **Tag** on the merge commit:
35+
```powershell
36+
git checkout master
37+
git pull
38+
git tag -a vX.Y.Z -m "vX.Y.Z"
39+
git push origin vX.Y.Z
40+
```
41+
Tag format: `vMAJOR.MINOR.PATCH` (for example `v0.2.0`).
42+
6. **GitHub Release** — publish a Release object, not just the tag. Copy the `## [X.Y.Z]` section from `CHANGELOG.md` into a scratch file, then:
43+
```powershell
44+
# paste the ## [X.Y.Z] section into this file first
45+
notepad $env:TEMP\release-notes.md
46+
gh release create vX.Y.Z --title "vX.Y.Z" --notes-file $env:TEMP\release-notes.md
47+
```
48+
Or create the release in the GitHub UI and paste the section there.
49+
7. **Optional** — if the project later adds an explicit supported-version table in [SECURITY.md](SECURITY.md), update it when you cut a release. Today `SECURITY.md` only states that fixes land on latest `master`.
50+
51+
## After release
52+
53+
1. On `master`, bump `app.py` `__version__` to the next development suffix if you are starting the next cycle (for example `0.3.0.dev0` after shipping `0.2.0`). Record that commit in `CHANGELOG.md` under `[Unreleased]` only if there is user-visible work; a bare dev bump can ride with the next feature PR.
54+
2. New work accumulates under `## [Unreleased]` until the next release.
55+
56+
## References
57+
58+
| Topic | Location |
59+
|-------|----------|
60+
| Changelog format | [CHANGELOG.md](CHANGELOG.md) |
61+
| Version bump | `app.py` line 3 |
62+
| Deprecation / semver | [docs/deprecation-policy.md](docs/deprecation-policy.md) |
63+
| Security reporting | [SECURITY.md](SECURITY.md) |
64+
| CI gates | [CONTRIBUTING.md](CONTRIBUTING.md) |

0 commit comments

Comments
 (0)