build: derive package version from git via setuptools-scm

Replace hatchling and the static version with setuptools + setuptools-scm,
following Kaya's pre-uv packaging setup: dynamic version, generated
_version.py, and release/* tag prefix. The Docker builder now includes git
and the .git directory so the image is versioned from the checkout. CI
checks out full history and tags for the tag-triggered builds.
This commit is contained in:
2026-10-22 04:03:08 +00:00
parent 9185b5fa05
commit 5db454f8c8
8 changed files with 40 additions and 9 deletions
+5
View File
@@ -220,6 +220,11 @@ git push origin release/0.2.0
This publishes `gitea.woggioni.net/woggioni/xmcp:0.2.0` and
`gitea.woggioni.net/woggioni/xmcp:latest`.
The Python package version is derived from the pushed `release/*` tag with
[setuptools-scm](https://setuptools-scm.readthedocs.io): `release/0.2.0`
produces package version `0.2.0`. Builds from untagged commits carry a PEP 440
development version (for example `0.2.1.dev3+gabc1234`).
## Project layout
```