Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ See [`examples/README.md`](examples/README.md) for example scripts demonstrating
## Requirements

- Python 3.10+
- [`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)
- [`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)

Optional extras:

Expand Down
12 changes: 10 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,15 @@ classifiers = [
dependencies = [
# MQTT transport lives in ebus-mqtt-client, which pins paho-mqtt; the SDK
# does not import paho directly, so paho is a transitive dependency (not
# declared here). Floor 0.4.0: it adds the loop-native AsyncioMqttDriver
# declared here). Floor 0.5.0: it 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, not an edge case: a
# root built with mqtt_cfg= connects asynchronously, so a construction-time
# state_transition can publish before CONNACK. At the default QoS 2 paho
# already queued those, so what 0.5.0 changes there is the warning burst (3
# per boot to 0, measured on a Gen3 panel); at QoS 0 it is the difference
# between those retained publishes arriving and being dropped. Earlier
# floors, still relied on: 0.4.0 adds the loop-native AsyncioMqttDriver
# (MqttClient.asyncio_driver()), which the bring-your-own-transport section of
# the README now documents as the answer for a host that forbids paho's
# background thread; the SDK does not import it, but a consumer following that
Expand All @@ -42,7 +50,7 @@ dependencies = [
# on_disconnect_callback the disconnect hook adopts (SDK-al5); 0.1.8 added the
# connect_async construction the resilient-connect behavior relies on (older
# clients raised ConnectionRefusedError on a down broker).
"ebus-mqtt-client>=0.4.0",
"ebus-mqtt-client>=0.5.0",
]

[project.optional-dependencies]
Expand Down