Skip to content

Latest commit

 

History

History
393 lines (229 loc) · 20.8 KB

CHANGELOG.md

File metadata and controls

393 lines (229 loc) · 20.8 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[2.3.0] - 2024-08-07

Added

  • Implement len(client.messages) to return number of messages in queue (@empicano in #323)

Changed

  • Update FastAPI docs to use dependency injection (@odie5533 in #321)

[2.2.0] - 2024-07-02

Changed

  • Bump paho-mqtt to 2.1 (@empicano in #305)
  • Migrate to paho-mqtt callback v2 (@empicano in #313)

Fixed

  • Fix Client.messages not being reusable (@ryan-summers in #312)

[2.1.0] - 2024-04-24

Changed

  • Migrate to paho-mqtt 2.0 (@JonathanPlasse in #286)

[2.0.1] - 2024-03-13

Fixed

  • Configure poetry-dynamic-versioning to replace __version__ and __version_tuple__ variables (@vvanglro in #273)
  • Reset internal state when connection attempt in __aenter__ times out (@empicano in #285)

[2.0.0] - 2024-01-15

Added

  • Test for Python 3.12 (@JonathanPlasse in #256)
  • Add migration guide (@empicano in #262)

Changed

  • Switch to client-wide queue (@empicano in #262)
  • Switch from black to Ruff and update dev dependencies (@JonathanPlasse in #255)
  • Rename Client.id attribute to identifier (@empicano in #262)

Removed

  • Remove deprecated connect/disconnect methods (@empicano in #262)
  • Remove deprecated filtered_messages and unfiltered_messages methods (@empicano in #262)
  • Remove deprecated message_retry_set client argument (@empicano in #262)

Fixed

  • Release reusability correctly to allow consecutive calls to __aexit__ (@spacemanspiff2007 in #263)

[1.2.1] - 2023-09-19

Changed

  • Deprecate connect and disconnect in favor of direct calls to __aenter__ and __aexit__. (@empicano in #247)

Fixed

  • Release lock in __aexit__ only if acquired (@spacemanspiff2007 in #249)

[1.2.0] - 2023-09-03

Changed

Fixed

  • Fix __aenter__ failing to release lock when initial connection fails. Contributed by Peanut (@vvanglro) in #245

[1.1.0] - 2023-08-03

Added

Fixed

[1.0.0] - 2023-06-16

Added

Changed

Removed

Fixed

[0.17.0] - 2023-06-12

Yanked. We recently renamed the project from asyncio-mqtt to aiomqtt. Problem is that the old aiomqtt (by mossblaser) was still in use. These users suddenly experienced a breaking change when they updated from v0.1.2 to v0.17.0. Our mitigation is to yank v0.17.0 and release a v1.0.0 in it's place. It was about time for a v1.0.0 release anyhow!

[0.16.1]

Fixed

[0.16.0]

Added

Changed

Fixed

  • Fix typo in description metadata. Contributed by (@pi-slh) in #162

[0.15.0]

Added

Changed

[0.14.0]

Added

Changed

Removed

Fixed

[0.13.0]

Added

Changed

Fixed

[0.12.1] - 2022-01-19

Fixed

  • Fix TypeError with the new _outgoing_call decorator.

[0.12.0] - 2022-01-19

Added

  • Add backpressure mechanism to limit the number of concurrent outgoing calls. Contributed by Aaron Bach (@bachya) in #101

[0.11.1] - 2022-01-10

Fixed

  • Fix race condition in the "advanced example" in README.md. Contributed by Steve Palmer (@steverpalmer) in #93
  • Make password keyword argument optional (as it always should have been). Contributed by @Shikoruma in #89
  • Fix false positive type error from Pyright regarding asynccontextmanager. Contributed by Shawn Wilsher (@sdwilsh) in #87
  • Fix type hints (mostly related to async_generator). Contributed by @laundmo in #86

[0.11.0] - 2021-11-04

Added

Changed

Fixed

[0.10.0] - 2021-07-13

Added

  • Add new parameter socket_options to Client.__init__. Contributed by @xydan83 in #71
  • Add new parameter message_retry_set to Client.__init__. Contributed by @xydan83 in #69
  • Export ProtocolVersion from the main module. Contributed by André (@tropxy) in #65 (1/2)
  • Add documentation about publishers, client arguments, etc. Contributed by André (@tropxy) in #65 (2/2)

Fixed

  • Fix race condition that caused InvalidStateError in force_disconnect(). Contributed by @functionpointer in #67

[0.9.1] - 2021-05-13

Fixed

[0.9.0] - 2021-05-03

Added

Fixed

[0.8.1] - 2021-02-23

Fixed

[0.8.0] - 2020-11-09

Added

  • Add transport argument to Client. Contributed by @opengs in #21
  • Add clean_session argument to Client. Contributed by @nadyka in #17

[0.7.0] - 2020-08-04

I've tested the library for production use at SBT Instruments. This uncovered a bunch of bugs and missing features that I've addressed in this release. We are approaching a 1.0.0 release. Let me know if you want something changed before that via the issue tracker on GitHub.

Added

  • Add support for MQTTv5.
  • Add will keyword argument to Client.
  • Add MqttConnectError with specific error messages for connection failures.
  • Add Client.id property that returns the client ID (or None if the client ID was not specified during construction).

Fixed

  • Fix unhandled exception error.
  • Fix "Task was destroyed but it is pending" error.
  • Fix compatibility with asyncqt's event loop.
  • Fix race condition in Client.connect that raised an AttributeError.
  • Fix "[asyncio] Future exception was never retrieved" debug message.
  • Fix support for python 3.6. Contributed by Derrick Lyndon Pallas (@pallas) in #12

[0.6.0] - 2020-06-26

Changed

  • No longer logs exception in Client.__aexit__. It's perfectly valid to exit due to, e.g., asyncio.CancelledError so let's not treat it as an error.

[0.5.0] - 2020-06-08

Added

  • Add support for python 3.6. Contributed by Derrick Lyndon Pallas (@pallas) in #7 (1/2).
  • Add client_id and tls_context keyword arguments to the Client constructor. Contributed by Derrick Lyndon Pallas (@pallas) in #7 (2/2).
  • Add timeout keyword argument to both Client.connect and Client.disconnect. Default value of 10 seconds (like the other functions).

Changed

  • Propagate disconnection errors to subscribers. This enables user code to detect if a disconnect occurs. E.g., due to network errors.

[0.4.0] - 2020-05-06

Changed

  • BREAKING CHANGE: Forward the MQTTMessage class from paho-mqtt instead of just the payload. This applies to both Client.filtered_messages and Client.unfiltered_messages.

    This way, user code not only gets the message payload but also the topic, qos level, retain flag, etc.

    Contributed by Matthew Bradbury (@MBradbury) in #3.

[0.3.0] - 2020-04-13

Added

  • Add username and password keyword arguments to the Client constructor. Contributed by @gluap in #1.

Fixed

  • Fix log message context for Client.filtered_messages.

[0.2.1] - 2020-04-07

Fixed

  • Fix regression with the Client._wait_for helper method introduced in the latest release.

[0.2.0] - 2020-04-07

Changed

  • BREAKING CHANGE: Replace all uses of asyncio.TimeoutError with MqttError.

    Calls to Client.subscribe/unsubscribe/publish will no longer raise asyncio.TimeoutError.

    The new behaviour makes it easier to reason about, which exceptions the library throws:

    • Wrong input parameters? Raise ValueError.
    • Network or protocol failures? MqttError.
    • Broken library state? RuntimeError.

[0.1.3] - 2020-04-07

Fixed

  • Fix how keyword arguments are forwarded in Client.publish and Client.subscribe.

[0.1.2] - 2020-04-06

Fixed

  • Remove log call that was erroneously put in while debugging the latest release.

[0.1.1] - 2020-04-06

Fixed

  • Add missing parameters to Client.publish.
  • Fix error in Client.publish when paho-mqtt publishes immediately.

[0.1.0] - 2020-04-06

Initial release.