From b05b1eef01766261e617dd354af2a53530bdf3e6 Mon Sep 17 00:00:00 2001 From: Remy Tuyeras Date: Wed, 18 Feb 2026 07:43:22 -0500 Subject: [PATCH 1/3] fix versioning in toml --- pyproject.toml | 7 ------- summoner/__init__.py | 1 - 2 files changed, 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b05c375..d307a00 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,12 +2,5 @@ requires = ["setuptools>=62.3.0", "wheel"] build-backend = "setuptools.build_meta" -[project] -name = "summoner" -dynamic = ["version"] - -[tool.setuptools.dynamic] -version = { attr = "summoner.client.client.SummonerClient.core_version" } - [tool.setuptools.package-data] "*" = ["**/*.css", "**/*.js"] diff --git a/summoner/__init__.py b/summoner/__init__.py index a68927d..e69de29 100644 --- a/summoner/__init__.py +++ b/summoner/__init__.py @@ -1 +0,0 @@ -__version__ = "0.1.0" \ No newline at end of file From 64fc10b875bd830840520776c978b0ff02170bcf Mon Sep 17 00:00:00 2001 From: Remy Tuyeras Date: Wed, 18 Feb 2026 07:52:23 -0500 Subject: [PATCH 2/3] centralize version --- pyproject.toml | 11 +++++++++++ summoner/_version.py | 1 + summoner/client/client.py | 4 +++- summoner/protocol/payload.py | 15 +++++++++------ 4 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 summoner/_version.py diff --git a/pyproject.toml b/pyproject.toml index d307a00..f086801 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,5 +2,16 @@ requires = ["setuptools>=62.3.0", "wheel"] build-backend = "setuptools.build_meta" +[project] +name = "summoner" +dynamic = ["version"] + +[tool.setuptools.dynamic] +version = { attr = "summoner._version.core_version" } + +[tool.setuptools.packages.find] +where = ["."] +include = ["summoner*"] + [tool.setuptools.package-data] "*" = ["**/*.css", "**/*.js"] diff --git a/summoner/_version.py b/summoner/_version.py new file mode 100644 index 0000000..1ca23c2 --- /dev/null +++ b/summoner/_version.py @@ -0,0 +1 @@ +core_version = "1.1.1" diff --git a/summoner/client/client.py b/summoner/client/client.py index 06e9a9c..eebb7a0 100644 --- a/summoner/client/client.py +++ b/summoner/client/client.py @@ -57,6 +57,8 @@ RelayedMessage ) +from summoner._version import core_version + class ServerDisconnected(Exception): """Raised when the server closes the connection.""" pass @@ -74,7 +76,7 @@ class SummonerClient: DEFAULT_EVENT_BRIDGE_SIZE = 1000 DEFAULT_MAX_CONSECUTIVE_ERRORS = 3 # Failed attempts to send before disconnecting - core_version = "1.1.1" + core_version = core_version def __init__(self, name: Optional[str] = None): diff --git a/summoner/protocol/payload.py b/summoner/protocol/payload.py index 09b7b0c..6790df6 100644 --- a/summoner/protocol/payload.py +++ b/summoner/protocol/payload.py @@ -8,8 +8,10 @@ ensure_trailing_newline, ) -# Current envelope version -WRAPPER_VERSION = "0.0.1" +from summoner._version import core_version + +# Default envelope version +DEFAULT_VERSION = "0.0.1" # Registries for versioned parsers and casters envelope_parsers: Dict[str, Any] = {} @@ -156,12 +158,13 @@ def cast_v0_0_1(val: Any, expected: Any) -> Any: register_envelope_version("1.0.0", parse_v0_0_1, cast_v0_0_1) register_envelope_version("1.0.1", parse_v0_0_1, cast_v0_0_1) register_envelope_version("1.1.0", parse_v0_0_1, cast_v0_0_1) -register_envelope_version("1.1.1", parse_v0_0_1, cast_v0_0_1) +# register_envelope_version("1.1.1", parse_v0_0_1, cast_v0_0_1) +register_envelope_version(core_version, parse_v0_0_1, cast_v0_0_1) def wrap_with_types( payload: Any, - version: str = WRAPPER_VERSION + version: str = DEFAULT_VERSION ) -> str: """ Wrap `payload` in a self-describing JSON envelope with type metadata. @@ -173,7 +176,7 @@ def wrap_with_types( Args: payload: Any JSON-serializable object (dict, list, primitive). - version: Version string for the envelope format (defaults to WRAPPER_VERSION). + version: Version string for the envelope format (defaults to DEFAULT_VERSION). Returns: A JSON string representing the typed envelope. @@ -266,7 +269,7 @@ def recover_with_types(text: str) -> RelayedMessage: # 4) We have the versioned envelope—now look up the correct caster version = content["_version"] - caster = envelope_casters.get(version, envelope_casters[WRAPPER_VERSION]) + caster = envelope_casters.get(version, envelope_casters[DEFAULT_VERSION]) if caster is None: # Unknown version: hard error so we don't silently mis-interpret data raise ValueError(f"Unsupported wrapper version: {version}") From 2bd404a8ac258a37e0aabf5b2c69a8d7a8bf25eb Mon Sep 17 00:00:00 2001 From: Remy Tuyeras Date: Wed, 18 Feb 2026 08:06:56 -0500 Subject: [PATCH 3/3] fix version; add manisfest.in --- MANIFEST.in | 1 + pyproject.toml | 16 +--------------- setup.py | 7 ++++++- summoner/_version.py | 2 +- summoner/client/client.py | 2 +- summoner/protocol/payload.py | 2 +- 6 files changed, 11 insertions(+), 19 deletions(-) create mode 100644 MANIFEST.in diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..42ca256 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +recursive-include summoner *.css *.js diff --git a/pyproject.toml b/pyproject.toml index f086801..9787c3b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,3 @@ [build-system] -requires = ["setuptools>=62.3.0", "wheel"] +requires = ["setuptools", "wheel"] build-backend = "setuptools.build_meta" - -[project] -name = "summoner" -dynamic = ["version"] - -[tool.setuptools.dynamic] -version = { attr = "summoner._version.core_version" } - -[tool.setuptools.packages.find] -where = ["."] -include = ["summoner*"] - -[tool.setuptools.package-data] -"*" = ["**/*.css", "**/*.js"] diff --git a/setup.py b/setup.py index ed9511c..179c7f0 100644 --- a/setup.py +++ b/setup.py @@ -1,8 +1,13 @@ from setuptools import setup, find_packages +# Read version without importing the package (safe for builds) +version_ns = {} +with open("summoner/_version.py", encoding="utf-8") as f: + exec(f.read(), version_ns) + setup( name="summoner", - version="0.1.0", + version=version_ns["__version__"], description="Summoner's core SDK", author="Remy Tuyeras", author_email="rtuyeras@summoner.org", diff --git a/summoner/_version.py b/summoner/_version.py index 1ca23c2..a82b376 100644 --- a/summoner/_version.py +++ b/summoner/_version.py @@ -1 +1 @@ -core_version = "1.1.1" +__version__ = "1.1.1" diff --git a/summoner/client/client.py b/summoner/client/client.py index eebb7a0..b91f92a 100644 --- a/summoner/client/client.py +++ b/summoner/client/client.py @@ -57,7 +57,7 @@ RelayedMessage ) -from summoner._version import core_version +from summoner._version import __version__ as core_version class ServerDisconnected(Exception): """Raised when the server closes the connection.""" diff --git a/summoner/protocol/payload.py b/summoner/protocol/payload.py index 6790df6..c6bd21e 100644 --- a/summoner/protocol/payload.py +++ b/summoner/protocol/payload.py @@ -8,7 +8,7 @@ ensure_trailing_newline, ) -from summoner._version import core_version +from summoner._version import __version__ as core_version # Default envelope version DEFAULT_VERSION = "0.0.1"