generated from coulomb/repo-seed
feat(packaging) + chore(workplan): complete T02 for CYA-WP-0004 — implemented setuptools_scm for dynamic versioning
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -171,6 +171,9 @@ cython_debug/
|
||||
# Ruff stuff:
|
||||
.ruff_cache/
|
||||
|
||||
# Generated by setuptools_scm
|
||||
src/cya/_version.py
|
||||
|
||||
# PyPI configuration file
|
||||
.pypirc
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[build-system]
|
||||
requires = ["setuptools>=64", "wheel"]
|
||||
requires = ["setuptools>=64", "wheel", "setuptools_scm>=8"]
|
||||
build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "can-you-assist"
|
||||
version = "0.1.0"
|
||||
dynamic = ["version"]
|
||||
description = "Console-native, backend-agnostic LLM assistant for practical local work from the shell. MVP slice."
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
@@ -44,3 +44,8 @@ markers = [
|
||||
"safety: core safety and risk classifier invariants (always run)",
|
||||
]
|
||||
|
||||
[tool.setuptools_scm]
|
||||
write_to = "src/cya/_version.py"
|
||||
version_scheme = "guess-next-dev"
|
||||
local_scheme = "node-and-date"
|
||||
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
"""can-you-assist (cya)
|
||||
|
||||
Console-native LLM assistant for practical local work (MVP scaffolding).
|
||||
Console-native LLM assistant for practical local work.
|
||||
|
||||
See workplans/CYA-WP-0001 for the full task breakdown and integration boundaries.
|
||||
"""
|
||||
|
||||
__version__ = "0.1.0"
|
||||
try:
|
||||
from ._version import __version__
|
||||
except ImportError:
|
||||
# Fallback for editable installs without setuptools_scm having run yet
|
||||
__version__ = "0.0.0+unknown"
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user