Releases: eclipse-paho/paho.mqtt.python
Releases · eclipse-paho/paho.mqtt.python
v2.1.0
- Make transition from 1.x to 2.x version smoother (Closes #831)
- Fix "protocol" property (Closes #820)
- Fix publish() a bytearray payload (Closes #833)
- Fix some type annotations (Closes #828)
- Fix loop_stop() not stopping thread when called from callback (Closes #809)
- Fix some documentation errors (Closes #817, #823, #832, #838)
- Add support for Unix socket (Closes #829)
- Fix flaky test (Closes #789)
v2.0.0
This release include breaking change. See https://eclipse.dev/paho/files/paho.mqtt.python/html/migrations.html for more details on how to upgrade.
This release also introduce new documentation available online at https://eclipse.dev/paho/files/paho.mqtt.python/html/index.html
- BREAKING Added callback_api_version. This break ALL users of paho-mqtt Client class.
See migrations.rst for details on how to upgrade.
tl; dr; addCallbackAPIVersion.VERSION1
to first argument ofClient()
- BREAKING Drop support for Python 2.7, Python 3.5 and Python 3.6
Minimum tested version is Python 3.7
Python version up to Python 3.12 are tested. - BREAKING connect_srv changed it signature to take an additional bind_port parameter.
This is a breaking change, but in previous version connect_srv was broken anyway.
Closes #493. - BREAKING Remove some deprecated argument and method:
max_packets
argument in loop(), loop_write() and loop_forever() is removedforce
argument in loop_stop() is removed- method
message_retry_set()
is removed
- BREAKING Remove the base62, WebsocketWrapper and ConnectionState, as user shouldn't directly use them.
- Possible breaking change: Add properties to access most Client attribute. Closes #764.
Since this add new properties likelogger
, if a sub-class definedlogger
, the twologger
will conflict. - Add version 2 of user-callback which allow to access MQTTv5 reason code & properties that were
missing from on_publish callback. Also it's more consistent in parameter order or between
MQTTv3 and MQTTv5. - Add types to Client class, which caused few change which should be compatible.
Known risk of breaking changes:- Use enum for returned error code (like MQTT_ERR_SUCCESS). It use an IntEnum
which should be a drop-in replacement. Excepted if someone is doing "rc is 0" instead of "rc == 0". - reason in on_connect callback when using MQTTv5 is now always a ReasonCode object. It used to possibly be
an integer with the value 132. - MQTTMessage field "dup" and "retain" used to be integer with value 0 and 1. They are now boolean.
- Use enum for returned error code (like MQTT_ERR_SUCCESS). It use an IntEnum
- Add support for ALPN protocols on TLS connection. Closes #790 & #648.
- Add on_pre_connect() callback, which is called immediately before a
connection attempt is made. - Fix subscribe.simple with MQTTv5. Closes #707.
- Use better name for thread started by loop_start. Closes #617.
- Fix possible bug during disconnection where self._sock is unexpectedly None. Closes #686 & #505.
- Fix loading too weak TLS CA file but setting allowed ciphers before loading CA. Closes #676.
- Allow to manually ack QoS > 0 messages. Closes #753 & #348.
- Improve tests & linters. Modernize build (drop setup.py, use pyproject.toml)
- Fix is_connected property to correctly return False when connection is lost
and loop_start/loop_forever isn't used. Closes #525. - Fix wait_for_publish that could hang with QoS == 0 message on reconnection
or publish during connection. Closes #549. - Correctly mark connection as broken on SSL error and don't crash loop_forever.
Closes #750. - Fix handling of MQTT v5.0 PUBREL messages with remaining length not equal to
2. Closes #696. - Raise error on
subscribe()
whentopic
is an empty list. Closes #690. - Raise error on
publish.multiple()
whenmsgs
is an empty list. Closes #684. - Don't add port to Host: header for websockets connections when the port if the default port. Closes #666.
v2.0.0rc2
This release include breaking change. See migrations.md for more details on how to upgrade.
- BREAKING Added callback_api_version. This break ALL users of paho-mqtt Client class.
See migrations.md for details on how to upgrade.
tl; dr; addCallbackAPIVersion.VERSION1
to first argument ofClient()
- BREAKING Drop support for Python 2.7, Python 3.5 and Python 3.6
Minimum tested version is Python 3.7
Python version up to Python 3.12 are tested. - BREAKING connect_srv changed it signature to take an additional bind_port parameter.
This is a breaking change, but in previous version connect_srv was broken anyway.
Closes #493. - BREAKING Remove some deprecated argument and method:
max_packets
argument in loop(), loop_write() and loop_forever() is removedforce
argument in loop_stop() is removed- method
message_retry_set()
is removed
- Possible breaking change: Add properties to access most Client attribute. Closes #764.
Since this add new properties likelogger
, if a sub-class definedlogger
, the twologger
will conflict. - Add version 2 of user-callback which allow to access MQTTv5 reason code & properties that were
missing from on_publish callback. Also it's more consistent in parameter order or between
MQTTv3 and MQTTv5. - Add types to Client class, which caused few change which should be compatible.
Known risk of breaking changes:- Use enum for returned error code (like MQTT_ERR_SUCCESS). It use an IntEnum
which should be a drop-in replacement. Excepted if someone is doing "rc is 0" instead of "rc == 0". - reason in on_connect callback when using MQTTv5 is now always a ReasonCode object. It used to possibly be
an integer with the value 132. - MQTTMessage field "dup" and "retain" used to be integer with value 0 and 1. They are now boolean.
- Use enum for returned error code (like MQTT_ERR_SUCCESS). It use an IntEnum
- Add support for ALPN protocols on TLS connection. Closes #790 & #648.
- Add on_pre_connect() callback, which is called immediately before a
connection attempt is made. - Fix subscribe.simple with MQTTv5. Closes #707.
- Use better name for thread started by loop_start. Closes #617.
- Fix possible bug during disconnection where self._sock is unexpectedly None. Closes #686 & #505.
- Fix loading too weak TLS CA file but setting allowed ciphers before loading CA. Closes #676.
- Allow to manually ack QoS > 0 messages. Closes #753 & #348.
- Improve tests & linters. Modernize build (drop setup.py, use pyproject.toml)
- Fix is_connected property to correctly return False when connection is lost
and loop_start/loop_forever isn't used. Closes #525. - Fix wait_for_publish that could hang with QoS == 0 message on reconnection
or publish during connection. Closes #549. - Correctly mark connection as broken on SSL error and don't crash loop_forever.
Closes #750. - Fix handling of MQTT v5.0 PUBREL messages with remaining length not equal to
2. Closes #696. - Raise error on
subscribe()
whentopic
is an empty list. Closes #690. - Raise error on
publish.multiple()
whenmsgs
is an empty list. Closes #684. - Don't add port to Host: header for websockets connections when the port if the default port. Closes #666.
Yes it's an rc2 without rc1... that because rc1 failed due to README issue