Skip to content

Commit 4906ea2

Browse files
dcjclaude
andcommitted
deps: floor ebus-mqtt-client at 0.5.0
0.5.0 holds retained QoS 0 publishes issued before the link is up and flushes them on connect, and stops warning about each one. That window is one the SDK creates by design rather than an edge case: a root built with mqtt_cfg= connects asynchronously, so a construction-time state_transition can publish before CONNACK. building-a-proxy.md already documents the consequence and tells a producer to wait for is_connected(), but the default path provokes it. At the SDK's default QoS 2 paho already queued those publishes, so what changes there is the warning burst: 3 per boot to 0, measured on a Gen3 lab panel. At QoS 0 it is the difference between those retained publishes arriving and being dropped. Honest about what this floor is: nothing in the SDK imports or requires anything new, and the full suite passes against 0.4.0. It is the same kind of floor as 0.4.0's, which the comment already describes as "the SDK does not import it, but a consumer following that guidance needs it present". It also aligns with meta-span's python3-ebus-sdk recipe, which already floors at 0.5.0 on the device side, so a dev install and a panel now behave the same. No release cut for this; it rides with the next one. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 7b08e07 commit 4906ea2

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ See [`examples/README.md`](examples/README.md) for example scripts demonstrating
360360
## Requirements
361361

362362
- Python 3.10+
363-
- [`ebus-mqtt-client`](https://github.com/electrification-bus/ebus-mqtt-client) >= 0.4.0 (the MQTT transport layer; it pins `paho-mqtt`, so the SDK does not depend on paho directly. 0.4.0 provides `MqttClient.asyncio_driver()`, the loop-native alternative to paho's background thread; 0.3.0 ships the `py.typed` marker, so a downstream type checker resolves the re-exported `MqttClient` to the concrete class rather than `Any`; 0.2.0 adds the `on_disconnect_callback` the SDK's disconnect hook adopts; and, since 0.1.8, it carries the asynchronous, down-broker-tolerant connect the resilient-connect behavior relies on)
363+
- [`ebus-mqtt-client`](https://github.com/electrification-bus/ebus-mqtt-client) >= 0.5.0 (the MQTT transport layer; it pins `paho-mqtt`, so the SDK does not depend on paho directly. 0.5.0 holds retained QoS 0 publishes issued before the link is up and flushes them on connect, rather than dropping them and warning about each: a root built with `mqtt_cfg=` connects asynchronously, so the SDK itself creates that window whenever a construction-time `state_transition()` publishes before CONNACK; 0.4.0 provides `MqttClient.asyncio_driver()`, the loop-native alternative to paho's background thread; 0.3.0 ships the `py.typed` marker, so a downstream type checker resolves the re-exported `MqttClient` to the concrete class rather than `Any`; 0.2.0 adds the `on_disconnect_callback` the SDK's disconnect hook adopts; and, since 0.1.8, it carries the asynchronous, down-broker-tolerant connect the resilient-connect behavior relies on)
364364

365365
Optional extras:
366366

pyproject.toml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,15 @@ classifiers = [
3030
dependencies = [
3131
# MQTT transport lives in ebus-mqtt-client, which pins paho-mqtt; the SDK
3232
# does not import paho directly, so paho is a transitive dependency (not
33-
# declared here). Floor 0.4.0: it adds the loop-native AsyncioMqttDriver
33+
# declared here). Floor 0.5.0: it holds retained QoS 0 publishes issued
34+
# before the link is up and flushes them on connect, and stops warning about
35+
# each one. That window is one the SDK creates by design, not an edge case: a
36+
# root built with mqtt_cfg= connects asynchronously, so a construction-time
37+
# state_transition can publish before CONNACK. At the default QoS 2 paho
38+
# already queued those, so what 0.5.0 changes there is the warning burst (3
39+
# per boot to 0, measured on a Gen3 panel); at QoS 0 it is the difference
40+
# between those retained publishes arriving and being dropped. Earlier
41+
# floors, still relied on: 0.4.0 adds the loop-native AsyncioMqttDriver
3442
# (MqttClient.asyncio_driver()), which the bring-your-own-transport section of
3543
# the README now documents as the answer for a host that forbids paho's
3644
# background thread; the SDK does not import it, but a consumer following that
@@ -42,7 +50,7 @@ dependencies = [
4250
# on_disconnect_callback the disconnect hook adopts (SDK-al5); 0.1.8 added the
4351
# connect_async construction the resilient-connect behavior relies on (older
4452
# clients raised ConnectionRefusedError on a down broker).
45-
"ebus-mqtt-client>=0.4.0",
53+
"ebus-mqtt-client>=0.5.0",
4654
]
4755

4856
[project.optional-dependencies]

0 commit comments

Comments
 (0)