Subcategory: public API / semver discipline
Score: 3 → 10
Problem
Three different versions ship in the same artifact:
| Location |
Value |
pyproject.toml:3 |
version = "0.2.16" |
src/pycharting/__init__.py:46 |
__version__ = "0.2.14" |
src/pycharting/core/server.py:121 |
FastAPI(..., version="0.1.0") |
A user introspecting pycharting.__version__ gets an answer two patch releases
stale, and /api/docs plus the generated OpenAPI schema advertise 0.1.0 — a
version this package has not been at for sixteen releases.
Nothing catches this today: no gate compares the three, and make bump updates
only the manifest.
Files to change
src/pycharting/__init__.py:46
src/pycharting/core/server.py:121
pyproject.toml:3 (source of truth)
done when
All three values derive from a single source — e.g.
__version__ = importlib.metadata.version("pycharting") in __init__.py, with
create_app() passing that same value to FastAPI(version=...) — and a test
asserts pycharting.__version__ == create_app().version and matches the
installed distribution metadata.
Evidence
pyproject.toml:3:version = "0.2.16"
src/pycharting/__init__.py:46:__version__ = "0.2.14"
src/pycharting/core/server.py:121: version="0.1.0",
Found by /rhiza:quality (full mode, rhiza v0.18.8). All 9 gates passed; this
is invisible to every one of them.
Subcategory: public API / semver discipline
Score: 3 → 10
Problem
Three different versions ship in the same artifact:
pyproject.toml:3version = "0.2.16"src/pycharting/__init__.py:46__version__ = "0.2.14"src/pycharting/core/server.py:121FastAPI(..., version="0.1.0")A user introspecting
pycharting.__version__gets an answer two patch releasesstale, and
/api/docsplus the generated OpenAPI schema advertise0.1.0— aversion this package has not been at for sixteen releases.
Nothing catches this today: no gate compares the three, and
make bumpupdatesonly the manifest.
Files to change
src/pycharting/__init__.py:46src/pycharting/core/server.py:121pyproject.toml:3(source of truth)done when
All three values derive from a single source — e.g.
__version__ = importlib.metadata.version("pycharting")in__init__.py, withcreate_app()passing that same value toFastAPI(version=...)— and a testasserts
pycharting.__version__ == create_app().versionand matches theinstalled distribution metadata.
Evidence
Found by
/rhiza:quality(full mode, rhiza v0.18.8). All 9 gates passed; thisis invisible to every one of them.