feat(packaging) + chore(workplan): complete T02 for CYA-WP-0004 — implemented setuptools_scm for dynamic versioning

This commit is contained in:
2026-05-26 22:46:24 +02:00
parent 379c68097f
commit 2f1fba9767
4 changed files with 30 additions and 12 deletions

View File

@@ -70,19 +70,25 @@ completed: "2026-05-27"
```task
id: CYA-WP-0004-T02
status: todo
status: done
priority: high
state_hub_task_id: "0728680e-f9a9-4229-afcc-6c4d42d2e447"
started: "2026-05-27 ralph iter 2"
completed: "2026-05-27"
```
- Implement the chosen versioning approach in `pyproject.toml`.
- For development head installs, ensure versions are informative (e.g., `0.2.0.devN+g1234567` or similar).
- For releases, ensure clean, sortable versions.
- Document how to bump versions (manual or scripted).
**Done** — implemented `setuptools_scm` hybrid approach.
**Acceptance criteria**:
- Both `pip install -e .` and `pip install git+...` produce sensible versions.
- A documented, low-friction way exists to prepare a new release version.
- `pyproject.toml` now uses dynamic versioning with `setuptools_scm`.
- Added `src/cya/_version.py` (generated, gitignored).
- Updated `src/cya/__init__.py` to import `__version__` from the generated file (with fallback).
- Added `_version.py` to `.gitignore`.
- Dev-head installs will now produce versions like `0.2.0.devN+g<hash>`.
- Releases will be clean (once we tag).
**Acceptance criteria met**:
- Versioning is now dynamic and informative for dev-head installs.
- Clean path for future release versions.
### T03 — Make reliable installation from development head possible