Skip to content

Mopiqtt 2.0.0

Latest

Choose a tag to compare

@fmarzocca fmarzocca released this 15 Jul 12:18

Mopiqtt 2.0.0

This is the biggest update since the initial release, focusing on reliability, compatibility, and long-term maintainability.

✨ Highlights

  • Full compatibility with Mopidy 3.4.x and Mopidy 4.0.x
  • Official support for Python 3.13+
  • Non-destructive playlist and stream loading
  • Improved MQTT error handling and runtime robustness
  • Modernized packaging and build configuration
  • Comprehensive GitHub Actions CI

🚀 What's New

Compatibility

  • Added compatibility with Mopidy 4 while maintaining support for Mopidy 3.
  • Official support for Python 3.13+.
  • Modernized packaging with PEP 517/518 support via pyproject.toml.

Reliability

  • Playlist (pload, ploadshfl) and stream (pstream) commands now validate content before replacing the current queue.
  • The existing queue is preserved if playlist or stream loading fails.
  • Improved handling of asynchronous Mopidy Future objects.
  • MQTT connection failures are now reported instead of being silently ignored.
  • MQTT callbacks are resilient to unexpected exceptions.

Playback and Metadata

  • Improved handling of SearchResult.
  • More robust artwork fallback.
  • Better handling of incomplete track metadata.
  • Correct handling when track indexes are unavailable.

Testing and Continuous Integration

  • Expanded unit test coverage.
  • Added automated GitHub Actions workflows covering:
    • Mopidy 3.4 + Python 3.13
    • Mopidy 4.0 + Python 3.13
    • Mopidy 4.0 + Python 3.14
  • Automatic execution of:
    • pytest
    • ruff
    • compileall
    • py_compile

📦 Upgrade Notes

  • The MQTT protocol and topics remain fully backward compatible.
  • Users running Mopidy 3 should keep Setuptools < 82, since newer versions removed pkg_resources, which Mopidy 3 still imports.
  • New installations are encouraged to use Mopidy 4.

🛣️ Roadmap

Support for Mopidy 3 will continue throughout the 2.x series.

A future major release is expected to require Mopidy 4 and simplify the compatibility layer.


Thanks to everyone who reported issues, tested new features, and helped improve Mopiqtt!