packaging: single version source + honest editable-install semantics (on top of #396)
colibri/_version.py now reads c/version.py (#394's single source of truth -- coli --version, the release workflow, and pip metadata can no longer drift), with an importlib.metadata fallback for the installed-wheel case where c/ is not on disk. README documents that pip install -e . is the supported form: the engine lives in c/ and is not packaged into a standalone wheel. Verified in a clean venv: pip install -e . -> colibri.__version__ == 1.0.0 read from c/version.py, coli entrypoint on PATH and functional. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -183,6 +183,10 @@ COLI_MODEL=/nvme/glm52_i4 ./coli doctor # read-only readiness check
|
|||||||
The engine at runtime is pure C — python is only used by the one-time converter
|
The engine at runtime is pure C — python is only used by the one-time converter
|
||||||
and the optional API gateway.
|
and the optional API gateway.
|
||||||
|
|
||||||
|
Prefer a `coli` command on your PATH? From a checkout, `pip install -e .`
|
||||||
|
registers it (the engine itself still lives in `c/` — this is an editable
|
||||||
|
install from the clone, not a standalone wheel).
|
||||||
|
|
||||||
### 3. Go deeper
|
### 3. Go deeper
|
||||||
|
|
||||||
| topic | doc |
|
| topic | doc |
|
||||||
|
|||||||
+22
-2
@@ -1,3 +1,23 @@
|
|||||||
"""Single source of truth for the colibrì version number."""
|
"""Version accessor for the pip package.
|
||||||
|
|
||||||
__version__ = "1.0.0"
|
The single source of truth is c/version.py (#394): coli --version and the
|
||||||
|
GitHub Release workflow read it, so the pip metadata must read the SAME file
|
||||||
|
instead of carrying a second literal that would drift on the first bump.
|
||||||
|
|
||||||
|
From a checkout (the supported install: `pip install -e .`) the file is read
|
||||||
|
directly. From an installed wheel c/ is not on disk, so fall back to the
|
||||||
|
package metadata that setuptools baked at build time from that same file.
|
||||||
|
"""
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
try:
|
||||||
|
_ns = {}
|
||||||
|
exec((Path(__file__).resolve().parent.parent / "c" / "version.py").read_text(), _ns)
|
||||||
|
__version__ = _ns["__version__"]
|
||||||
|
except OSError:
|
||||||
|
from importlib.metadata import PackageNotFoundError, version
|
||||||
|
|
||||||
|
try:
|
||||||
|
__version__ = version("colibri-engine")
|
||||||
|
except PackageNotFoundError:
|
||||||
|
__version__ = "0.0.0+unknown"
|
||||||
|
|||||||
Reference in New Issue
Block a user