| AArch64 | |
| ppc64le | |
| s390x | |
| x86-64 |
- update to 2.1.0: * Make transition from 1.x to 2.x version smoother * Fix "protocol" property * Fix publish() a bytearray payload * Fix some type annotations * Fix loop_stop() not stopping thread when called from callback * Fix some documentation errors * Add support for Unix socket * Fix flaky test
- version update to 2.0.0
- **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; add CallbackAPIVersion.VERSION1 to first argument of Client()
- **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 removed
* ``force`` 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 like `logger`, if a sub-class defined `logger`, the two `logger`
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.
- 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()`` when `topic` is an empty list. Closes #690.
- Raise error on `publish.multiple()` when ``msgs`` 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.
* does not require six
- %check: test the package
- update to version 1.6.1:
- Changed default TLS version to 1.2 instead of 1.0.
- Fix incoming MQTT v5 messages with overall property length > 127 bytes being
incorrectly decoded. Closes #541.
- MQTTMessageInfo.wait_for_publish() and MQTTMessageInfo.is_published() will
now raise exceptions if called when the publish call produced an error.
Closes #550.
- Remove periodic retry checks for outgoing messages with QoS>0. This means
that outgoing messages will only be retried on the client reconnecting to
the server. They will *not* be retried when the client is still connected.
- The `rc` parameter in the `on_disconnect` callback now has meaningful values
in the case of an error. Closes #441.
- Callbacks can now be applied to client instances using decorators.
- PUBACK messages are now sent to the broker only after the on_message
callback has returned.
- Raise exceptions when attempting to set MQTT v5 properties to forbidden
values. Closes #586.
- Callbacks can now be updated from within a callback.
- Remove _out_packet_mutex and _current_out_packet_mutex and convert the
_out_packet queue use to thread safe.
- Add basic MQTT v5 support to the subscribe and publish helper functions.
Closes #575.
- Fix on_disconnect() sometimes calling the MQTT v3.x callback when it should
call the MQTT v5 callback. Closes #570.
- Big performance improvement when receiving large payloads, particularly for
SSL. Closes #571,
- Fix connecting with MQTT v5 to a broker that doesn't support MQTT v5.
Closes #566.
- Removed ancient Mosquitto compatibility class.
- Fix exception on calling Client(client_id="", clean_session=False).
Closes #520.
- Experimental support for Websockets continuation frames. Closes #500.
Closes #89.
- `Properties.json()` now converts Correlation Data bytes() objects to hex.
Closes #555.
- Only use the internal sockpair wakeup when running with loop_start() or
loop(). This removes problems when running with an external event loop.
- Drain all of sockpairR bytes to avoid unnecessary wakeups and possible
timeouts. Closes #563.
- Add timeout to MQTTMessageInfo:wait_for_publish().
- Update to version 1.5.1:
* Exceptions that occur in callbacks are no longer suppressed
by default. They can optionally be suppressed by setting
`client.suppress_exceptions = True`.
* Fix PUBREL remaining length of > 2 not being accepted for
MQTT v5 message flows.
- Fix fdupes call
- Update to version 1.5.0:
* Add support for clean_session on subscribe helper
(gh#eclipse/paho.mqtt.python#219).
* Add support for non-standard bridge connection
(gh#eclipse/paho.mqtt.python#282).
* Fix hang with QoS 2 message and clean_session = False. The fix
replace hang with message DROP. See README for known
limitation (gh#eclipse/paho.mqtt.python#284,
gh#eclipse/paho.mqtt.python#286).
* Fix connection establishement timeout
(gh#eclipse/paho.mqtt.python#291,
gh#eclipse/paho.mqtt.python#288).
* Add support for connecting through a proxy
(gh#eclipse/paho.mqtt.python#315).
* Add MQTT v5 support (gh#eclipse/paho.mqtt.python#334).
* Improve error message when sending queue is full
(gh#eclipse/paho.mqtt.python#378).
* Improve error handling during initialization on edge case
(gh#eclipse/paho.mqtt.python#387,
gh#eclipse/paho.mqtt.python#388).
* Allow to specify local client port used (similar to
bind_address) (gh#eclipse/paho.mqtt.python#390).
* Add method is_connected to know if MQTT connection is
established (gh#eclipse/paho.mqtt.python#414).
* Set connection timeout to keepalive
(gh#eclipse/paho.mqtt.python#425).
- Fix fdupes call
- Update to version 1.4.0:
* Fix hang when client restarted and broker resumed a session
with Qos2 message.
* Fix reconnection loop when a clean_session=True client
reconnect while Qos2 message are being sent.
* Catch and log any exception raised by user callback.
* Improve support for external event loop (like asyncio).
* Fix order of message with publish.multiple helper.
* Fix hang on wait_for_published() on bad network.
* Fix issue with Websocket payload size between 127 and 65536.
* Closes socket in client destructor to avoid FD leak.
* Fix uncaught timeout exception during connection.
* Remove dup flag on PUBREL packet.
* Use secure entropy source for Websocket mask_key (urandom).
* Fix mid generation that was not thread-safe.
* Replace print() statements with proper logging.
* Allow insecure TLS on publish and subscribe helpers.
* Allow to remove authentication (reset username to None).
* Add support for the non-standard bridge mode.
- Update to version 1.3.1:
* Fix reconnect_delay_set which ignored the max_delay.
* Fix crash when connection is lost while trying to send message.
* Fix issue with unicode topic when some character were
multi-bytes UTF-8.
* Fix issue with empty Client ID with broker that doesn't support
them.
* Fix issue with tls_set that did not allowed
cert_reqs=ssl.CERT_NONE.
- Update to version 1.3.0:
* Requires Python 2.7 or 3.4+.
* Remove support for SSL without SSLContext (Requires Python
2.7.9+ or 3.2+).
* on_connect callback is now always called flags. Previously this
* callback could accepts 3 OR 4 arguments, now it must accepts 4.
* tls_insecure_set() must now be called *after* tls_set().
* Allow username and password to be zero length (as opposed to
* not being present).
* Allow zero length client ids when using MQTT v3.1.1.
* Add SSLContext support, including SNI.
* Improved support for unicode topic and binary payload.
* Allow arbitrary Websocket headers and path.
* Fix issue with large inbound payload over Websocket.
* Add exponential delay for reconnection.
* Move unit tests to pytest and tox.
* Add support for standard Python logging.
* Fix duplicate incoming QoS==2 message.
- Update to version 1.2.3: * Fix possible hang of TLS connection during handshake. * Fix issue with publish helper with TLS connection. * Fix installation issue on non-UTF-8 system. * Fix non-working Websocket over TLS connection. - Remove paho-mqtt-1.2.2-fix-readme-decoding.patch (fixed upstream).
- Update to version 1.2.2:
* Fix message lost when using paho.mqtt.publish helper with
QoS=0 message.
- Changes from version 1.2.1:
* Handle unicode username and passwords correctly.
* Fix handling of invalid UTF-8 topics on incoming messages - the
library now does not attempt to decode the topic - this will
happen when the user accesses msg.topic in the on_message
callback. If the topic is not valid UTF-8, an exception will be
raised.
* Fix issue with WebSocket connection in case of network issue
(timeout or connection broken).
* Fix issue with SSL connection, where latest incoming message
may be delayed or never processed.
* Fix possible message lost with publish.single and
publish.multiple.
- Add paho-mqtt-1.2.2-fix-readme-decoding.patch:
* Fix error at build when using non-UTF8 locale.
- Convert package to python singlespec.
- Initial package: python-paho-mqtt-1.2