From 55e841189adc9d38a9d8bf017b7e0f298c423b1c Mon Sep 17 00:00:00 2001 From: Rightup Date: Tue, 8 Sep 2026 21:42:02 +0100 Subject: [PATCH] fix: pin openhop_core dependencies to version 1.1.3 and update related documentation --- .gitignore | 3 +++ pyproject.toml | 6 +++--- repeater/handler_helpers/text.py | 5 ++--- tests/test_handler_helpers_path_protocol_text.py | 9 ++++----- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index d97b019..8881ceb 100644 --- a/.gitignore +++ b/.gitignore @@ -71,3 +71,6 @@ syncpi.sh /data Installing syncproxmox.sh + +#dev +pyproject_dev.toml diff --git a/pyproject.toml b/pyproject.toml index a8dfab4..1cd6c8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,8 +28,8 @@ keywords = ["mesh", "networking", "lora", "repeater", "daemon", "iot"] dependencies = [ - "openhop_core[hardware] @ git+https://github.com/openhop-dev/openhop_core.git@dev ; sys_platform == 'linux'", - "openhop_core @ git+https://github.com/openhop-dev/openhop_core.git@dev ; sys_platform != 'linux'", + "openhop_core[hardware]==1.1.3 ; sys_platform == 'linux'", + "openhop_core==1.1.3 ; sys_platform != 'linux'", "pyyaml>=6.0.0", "cherrypy>=18.0.0", "paho-mqtt>=1.6.0", @@ -45,7 +45,7 @@ dependencies = [ [project.optional-dependencies] # SX1262/SPI support (Linux only; required for Raspberry Pi HATs) hardware = [ - "openhop_core[hardware] @ git+https://github.com/openhop-dev/openhop_core.git@dev", + "openhop_core[hardware]==1.1.3", ] # RRD metrics (Performance Metrics chart); system librrd required (e.g. apt install rrdtool) rrd = [ diff --git a/repeater/handler_helpers/text.py b/repeater/handler_helpers/text.py index c26319e..fb48000 100644 --- a/repeater/handler_helpers/text.py +++ b/repeater/handler_helpers/text.py @@ -26,9 +26,8 @@ def _core_accepts_ack_policy() -> bool: Passing an argument an older core does not know raises TypeError from ``register_identity`` -- which would leave the node with no text handler at - all, i.e. off the air. `pyproject.toml` tracks `openhop_core@dev` with no - version floor, so an older core is an ordinary state to be in, not an - error. + all, i.e. off the air. Repeater pinning can change over time, so an older + core remains an ordinary state to be in, not an error. """ try: return "should_ack_fn" in inspect.signature(TextMessageHandler.__init__).parameters diff --git a/tests/test_handler_helpers_path_protocol_text.py b/tests/test_handler_helpers_path_protocol_text.py index c4d81fe..f050e50 100644 --- a/tests/test_handler_helpers_path_protocol_text.py +++ b/tests/test_handler_helpers_path_protocol_text.py @@ -864,11 +864,10 @@ async def test_guest_plain_post_earns_no_ack_on_the_wire(permissions, expect_ack def test_register_identity_survives_a_core_without_the_ack_hook(): """[fails pre-fix] An older core must not take the node off the air. - `pyproject.toml` tracks `openhop_core@dev` with no version floor, so running - against a core that predates should_ack_fn is an ordinary state. Passing the - argument regardless raises TypeError out of register_identity, which leaves - the node with no text handler at all -- a far worse outcome than an ACK it - should have withheld. + Even with a pinned baseline, running against a core that predates + should_ack_fn can happen. Passing the argument regardless raises TypeError + out of register_identity, which leaves the node with no text handler at all + -- a far worse outcome than an ACK it should have withheld. """ acl = _FakeACL([_FakeClient(pubkey=bytes([0x35]) + b"x" * 31, shared_secret=b"k" * 32)]) helper = TextHelper(