Skip to content

release: 0.17.0 (inbound /set async dispatch + require ebus-mqtt-client 0.3.0) - #24

Merged
dcj merged 1 commit into
mainfrom
release/0.17.0
Aug 3, 2026
Merged

release: 0.17.0 (inbound /set async dispatch + require ebus-mqtt-client 0.3.0)#24
dcj merged 1 commit into
mainfrom
release/0.17.0

Conversation

@dcj

@dcj dcj commented Aug 3, 2026

Copy link
Copy Markdown
Contributor

Bumps __version__ to 0.17.0 and promotes [Unreleased] to [0.17.0].

What's in 0.17.0

  • Inbound /set async dispatch (Inbound /set dispatch: use run_coroutine_threadsafe, promote async_loop to the root, fix the =False default #15) — thread-safe run_coroutine_threadsafe scheduling (with the iscoroutine branch so sync callbacks stay inline), async_loop promoted to Device(async_loop=) with per-tree propagation + child inheritance, the =None default fix, Node mutable-default fix, and async-exception logging.
  • Require ebus-mqtt-client>=0.3.0 (was >=0.2.0) — 0.3.0 ships the PEP 561 py.typed marker, so a downstream type checker resolves the re-exported MqttClient to the concrete class instead of Any, completing the transport Protocol typing (MqttTransport / MqttControllerTransport / MqttDeviceTransport) from 0.16.0. Runtime-safe: 0.3.0 adds nothing the SDK's runtime needs beyond 0.2.0.

Tested

Upgraded the environment to ebus-mqtt-client 0.3.0, reinstalled the SDK against the new floor, and ran the full suite: 543 passed, ruff clean. The 3.10-3.13 matrix runs on this PR (it resolves ebus-mqtt-client to 0.3.0).

After merge

Tag v0.17.0 to trigger the publish.yml PyPI release (the workflow guards the tag against __version__).

🤖 Generated with Claude Code

…nt 0.3.0)

Bumps __version__ to 0.17.0 and promotes the [Unreleased] CHANGELOG to
[0.17.0]. Ships the inbound /set async dispatch work (#15): thread-safe
run_coroutine_threadsafe scheduling, async_loop promoted to Device with
per-tree propagation, and the =None default / Node mutable-default fixes.

Raises the ebus-mqtt-client floor to >=0.3.0 (was >=0.2.0), the release that
ships the py.typed marker: a downstream type checker now resolves the
re-exported MqttClient to the concrete class instead of Any, completing the
transport Protocol typing from 0.16.0. Tested green against 0.3.0.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dcj
dcj merged commit 52f4a02 into main Aug 3, 2026
5 checks passed
@dcj
dcj deleted the release/0.17.0 branch August 3, 2026 00:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant