diff mbox series

[meta-python,3/3] python3-paho-mqtt: Upgrade 1.6.1 -> 2.0.0

Message ID 20240325195814.2825816-3-leon.anavi@konsulko.com
State Accepted
Headers show
Series [meta-python,1/3] python3-multidict: Upgrade 6.0.4 -> 6.0.5 | expand

Commit Message

Leon Anavi March 25, 2024, 7:58 p.m. UTC
Upgrade to version 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.
- **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. 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.
- Add on_pre_connect() callback, which is called immediately before
  a connection attempt is made.
- Fix subscribe.simple with MQTTv5.
- Use better name for thread started by loop_start.
- Fix possible bug during disconnection where self._sock is
  unexpectedly None.
- Fix loading too weak TLS CA file but setting allowed ciphers
  before loading CA.
- Allow to manually ack QoS > 0 messages.
- 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.
- Fix wait_for_publish that could hang with QoS == 0 message on
  reconnection or publish during connection.
- Correctly mark connection as broken on SSL error and don't crash
  loop_forever.
- Fix handling of MQTT v5.0 PUBREL messages with remaining length
  not equal to 2.
- Raise error on ``subscribe()`` when `topic` is an empty list.
- Raise error on `publish.multiple()` when ``msgs`` is an empty
  list.
- Don't add port to Host: header for websockets connections when
  the port if the default port.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
 ...hon3-paho-mqtt_1.6.1.bb => python3-paho-mqtt_2.0.0.bb} | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)
 rename meta-python/recipes-devtools/python/{python3-paho-mqtt_1.6.1.bb => python3-paho-mqtt_2.0.0.bb} (70%)
diff mbox series

Patch

diff --git a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb b/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
similarity index 70%
rename from meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
rename to meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
index 9055772b5..e4cf77a13 100644
--- a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
+++ b/meta-python/recipes-devtools/python/python3-paho-mqtt_2.0.0.bb
@@ -5,9 +5,13 @@  LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8e5f264c6988aec56808a3a11e77b913 \
 "
 SRCNAME = "paho-mqtt"
 
-inherit pypi setuptools3
+inherit pypi python_hatchling python_setuptools_build_meta
 
-SRC_URI[sha256sum] = "2a8291c81623aec00372b5a85558a372c747cbca8e9934dfe218638b8eefc26f"
+SRC_URI[sha256sum] = "13b205f29251e4f2c66a6c923c31fc4fd780561e03b2d775cff8e4f2915cf947"
+
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/73/b7/a4df0f93bbdae237e16ba402752151eceee576cbe80c235a2475fbf81eea/paho_mqtt-${PV}.tar.gz"
+
+S = "${WORKDIR}/paho_mqtt-${PV}"
 
 DEPENDS += "python3-pytest-runner-native"