fix(package): single-source Python SDK version
This commit is contained in:
1 parent
c000855ebc
commit
fea6784346
6 files changed
+30
-4
No files matched your search
@@ -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
@@ -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",
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
"""Canonical Elydora package version."""
|
||||||
|
|
||||||
|
__version__ = "1.2.1"
|
||||||
+2
-1
@@ -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
@@ -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__"}
|
||||||
@@ -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"
|
||||||
Reference in new issue
Block a user