fix(package): single-source Python SDK version

This commit is contained in:
ZacharyZhang-NY committed 2026-07-19 15:01:51 -04:00
1 parent c000855ebc
commit fea6784346
6 files changed
+30 -4

No files matched your search

+1
View File
@@ -33,6 +33,7 @@ This repository owns the published `elydora` package, its CLI, synchronous and a
## Code Quality ## Code Quality
- Keep the package, distribution, and CLI version in `elydora/_version.py`; build metadata must read that literal through Setuptools dynamic metadata.
- Support every Python version declared in `pyproject.toml`. - Support every Python version declared in `pyproject.toml`.
- Keep production source files at or below 500 lines. - Keep production source files at or below 500 lines.
- Keep functions focused on one ownership boundary. - Keep functions focused on one ownership boundary.
+2 -2
View File
@@ -3,6 +3,7 @@
from .client import ElydoraClient from .client import ElydoraClient
from .async_client import AsyncElydoraClient from .async_client import AsyncElydoraClient
from .errors import ElydoraError from .errors import ElydoraError
from ._version import __version__
from .crypto import ( from .crypto import (
compute_chain_hash, compute_chain_hash,
compute_payload_hash, compute_payload_hash,
@@ -70,9 +71,8 @@ from .types import (
DeepHealthResponse, DeepHealthResponse,
) )
__version__ = "1.2.0"
__all__ = [ __all__ = [
"__version__",
"ElydoraClient", "ElydoraClient",
"AsyncElydoraClient", "AsyncElydoraClient",
"ElydoraError", "ElydoraError",
+3
View File
@@ -0,0 +1,3 @@
"""Canonical Elydora package version."""
__version__ = "1.2.1"
+2 -1
View File
@@ -14,6 +14,7 @@ import shutil
import sys import sys
from typing import Dict, Type from typing import Dict, Type
from ._version import __version__
from .crypto import get_public_key_base64url from .crypto import get_public_key_base64url
from .plugins.base import AgentPlugin, InstallConfig from .plugins.base import AgentPlugin, InstallConfig
from .plugins.registry import SUPPORTED_AGENTS, get_agent_names from .plugins.registry import SUPPORTED_AGENTS, get_agent_names
@@ -174,7 +175,7 @@ def build_parser() -> argparse.ArgumentParser:
description="Elydora — tamper-evident audit trail for AI agents", description="Elydora — tamper-evident audit trail for AI agents",
) )
parser.add_argument( parser.add_argument(
"--version", action="version", version="%(prog)s 1.0.0" "--version", action="version", version=f"%(prog)s {__version__}"
) )
subparsers = parser.add_subparsers(dest="command", help="Available commands") subparsers = parser.add_subparsers(dest="command", help="Available commands")
+4 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "elydora" name = "elydora"
version = "1.2.1" dynamic = ["version"]
description = "Python SDK for the Elydora tamper-evident audit platform" description = "Python SDK for the Elydora tamper-evident audit platform"
readme = "README.md" readme = "README.md"
license = {text = "MIT"} license = {text = "MIT"}
@@ -41,3 +41,6 @@ dev = [
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
include = ["elydora*"] include = ["elydora*"]
[tool.setuptools.dynamic]
version = {attr = "elydora._version.__version__"}
+18
View File
@@ -0,0 +1,18 @@
from importlib.metadata import version
import pytest
from elydora import __version__
from elydora.cli import build_parser
def test_runtime_version_matches_distribution_metadata() -> None:
assert __version__ == version("elydora")
def test_cli_reports_the_canonical_version(capsys: pytest.CaptureFixture[str]) -> None:
with pytest.raises(SystemExit) as exc_info:
build_parser().parse_args(["--version"])
assert exc_info.value.code == 0
assert capsys.readouterr().out == f"elydora {__version__}\n"