""" Every package in this repository carries the same version. They are built, deployed and updated together — hub, node, common and the desktop client — so a version that differs is not a statement about that package, it is a mistake nobody has noticed yet. **Found on 2026-09-09, on the MNP 3.0 flag day.** `meshbay-client`'s `package.json` had drifted to `1.0.0` while every Python package was on `0.12.0`. That was invisible until the hub started publishing a minimum client version and the client started comparing itself against it — at which point an installed client announcing `1.0.0` sorted *above* a minimum of `0.13.0` and walked straight through the gate meant to stop it. A version nobody reads is free to be wrong; the moment something compares it, it is load-bearing. """ import json import re from pathlib import Path import pytest ROOT = Path(__file__).resolve().parents[3] PACKAGES = ROOT / "packages" def _python_versions() -> dict[str, str]: found = {} for pyproject in sorted(PACKAGES.glob("*/pyproject.toml")): m = re.search(r'^version = "([^"]+)"', pyproject.read_text(), re.M) if m: found[f"{pyproject.parent.name}/pyproject.toml"] = m.group(1) for init in sorted(PACKAGES.glob("*/src/*/__init__.py")): m = re.search(r'^__version__ = "([^"]+)"', init.read_text(), re.M) if m: found[f"{init.parent.name}/__init__.py"] = m.group(1) return found def _client_version() -> str | None: pkg = PACKAGES / "meshbay-client" / "package.json" if not pkg.exists(): return None return json.loads(pkg.read_text()).get("version") @pytest.mark.skipif(not PACKAGES.is_dir(), reason="package layout not present") def test_every_package_carries_the_same_version(): versions = _python_versions() assert versions, "no package versions found at all — has the layout moved?" client = _client_version() if client is not None: versions["meshbay-client/package.json"] = client distinct = sorted(set(versions.values())) assert len(distinct) == 1, ( "packages disagree about the version: " + ", ".join(f"{k}={v}" for k, v in sorted(versions.items()))) @pytest.mark.skipif(not PACKAGES.is_dir(), reason="package layout not present") def test_the_hub_will_not_refuse_the_client_it_ships_with(): """`MIN_CLIENT_VERSION` is compared against a client's own version, so a minimum above the version being built would lock out the very build being released — the one failure this field can cause that nobody would think to test for by hand.""" from meshbay_hub.api.hub import MIN_CLIENT_VERSION client = _client_version() if client is None: pytest.skip("desktop client sources not present") as_numbers = lambda v: [int(n) for n in v.split(".")] # noqa: E731 assert as_numbers(MIN_CLIENT_VERSION) <= as_numbers(client), ( f"the hub requires client {MIN_CLIENT_VERSION} but this tree builds " f"{client}")