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
Use pyproject.toml as version source; CI bump/tag/publish
- Read __version__ from package metadata (importlib.metadata), fallback to "DEVELOPMENT"
- Validate config version against buildrunner __version__; drop version.py and VERSION_FILE_PATH
- CI: bump patch on push to main (skip for bot bump commits), tag and publish only when bump ran
- Add VERSIONING.md; tests patch buildrunner.__version__ instead of version file
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