You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The **source of truth** for the version is `pyproject.toml` → `[project]` → `version`.
4
+
CI uses that value and the resulting git tag as the release version.
5
+
6
+
## Where to update version
7
+
8
+
-**Single place:**`pyproject.toml` — set `version = "X.Y.Z"` (e.g. `"3.21"` or `"3.21.0"`).
9
+
10
+
## How versions are produced
11
+
12
+
| You want | What to do |
13
+
|----------|------------|
14
+
|**Patch** (e.g. 3.21.0 → 3.21.1) | Nothing. Push to `main`; CI bumps patch, commits it, tags that version, and publishes. |
15
+
|**Minor** (e.g. 3.21 → 3.22.0) | Update version in `pyproject.toml` (e.g. `uv version 3.22.0` or `uv version --bump minor`). Commit with message **`Release 3.22.0`** and merge to `main`. CI will use that version as-is (no bump), tag it, and publish. |
16
+
|**Major** (e.g. 3.21 → 4.0.0) | Same as minor: set `version = "4.0.0"` in `pyproject.toml`, commit **`Release 4.0.0`**, merge to `main`. |
17
+
18
+
## Summary
19
+
20
+
-**Track/update** major.minor.patch in **`pyproject.toml`**.
21
+
-**Patch releases:** automatic on every push to `main` (CI bumps and commits).
22
+
-**Minor/major releases:** set the version in `pyproject.toml` and use a commit message starting with **`Release X.Y.Z`** so CI does not bump again and tags that version.
0 commit comments