From 77ca60b9dda3da48f31b214595ae4349ecff6efd Mon Sep 17 00:00:00 2001 From: zeevdr Date: Mon, 27 Apr 2026 21:46:25 +0300 Subject: [PATCH] fix: derive __version__ from package metadata The hardcoded "0.1.0" had been stale through every bump since 0.1.0. Read it from importlib.metadata so the runtime value tracks the installed wheel's pyproject.toml version automatically. Tests now assert __version__ matches importlib metadata + a PEP 440 shape regex, instead of a brittle string equality that quietly silenced the drift. Co-Authored-By: Claude Opus 4.7 (1M context) --- sdk/src/opendecree/__init__.py | 4 +++- sdk/tests/test_client.py | 2 +- sdk/tests/test_version.py | 6 +++++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/sdk/src/opendecree/__init__.py b/sdk/src/opendecree/__init__.py index 51b6b97..e78966d 100644 --- a/sdk/src/opendecree/__init__.py +++ b/sdk/src/opendecree/__init__.py @@ -1,6 +1,8 @@ """OpenDecree Python SDK — schema-driven configuration management.""" -__version__ = "0.1.0" +from importlib.metadata import version as _pkg_version + +__version__ = _pkg_version("opendecree") SUPPORTED_SERVER_VERSION = ">=0.3.0,<1.0.0" PROTO_VERSION = "v1" diff --git a/sdk/tests/test_client.py b/sdk/tests/test_client.py index 94849fc..ff785fd 100644 --- a/sdk/tests/test_client.py +++ b/sdk/tests/test_client.py @@ -17,7 +17,7 @@ def test_import(self): assert hasattr(opendecree, "ConfigClient") def test_version_constants(self): - assert opendecree.__version__ == "0.1.0" + assert opendecree.__version__ assert opendecree.SUPPORTED_SERVER_VERSION == ">=0.3.0,<1.0.0" assert opendecree.PROTO_VERSION == "v1" diff --git a/sdk/tests/test_version.py b/sdk/tests/test_version.py index 8af1af0..7dfd30e 100644 --- a/sdk/tests/test_version.py +++ b/sdk/tests/test_version.py @@ -1,10 +1,14 @@ """Basic tests to verify the package is importable.""" +import re +from importlib.metadata import version as _pkg_version + import opendecree def test_version(): - assert opendecree.__version__ == "0.1.0" + assert opendecree.__version__ == _pkg_version("opendecree") + assert re.match(r"^\d+\.\d+\.\d+([abrc]\d+|\.post\d+|\.dev\d+)?$", opendecree.__version__) def test_supported_server_version():