github caronc/apprise v1.9.4

one month ago

What's Changed

It has been some time since I pushed a release; so this one just bundles all of the outstanding fixes/enhancments together.

This release introduces a major refactor of the code base to modernize it (for Python v3.9+). The change added more then 13,000 lines of code and refactored 70,000 lines. It took a very, very long time to do, but I'm happy how things turned out. It should make it easier for others to adapt and add to the code base. This change also greatly improved the type hinting offered by the library. I debated marking this release v2.0.0 due to the signifgance of it, but will just bump the minor to catch any fallout from the change I may have overlooked.

Please don't hesitate to open a ticket if you find any issus at all.

📣 New Notification Services:

🐞 Bugfixes

  • Fix throttling in matrix plugin by @wolfgesbro in #1352
  • minor fixes lingering from PR #1368 in #1378
    • This is the major update identified in the Life-Cycle Support
  • bluesky resolve did custom domains in #1363
  • Update token regex on chanify by @edwinbernadus in #1325
  • Fix matrix v3 attachments by @privacyfr3ak in #1373
  • Minor typos and fixes in #1357
  • Improved Google Chat thread handling in #1376

💡 Features

  • Display SMTP host in debug mode by @emmanuel-ferdman in #1331
  • Support mailto://localhost (default user is root) in #1360
  • Dbus/Glib Python binding modernization + test refactoring in #1377

❤️ Life-Cycle Support

  • Add Codecov Test Analytics by @katia-sentry in #1321

  • Removed LunaSea as it's services are offline as of April 30th, 2025 in #1362

  • 🔥 Apprise Build System Modernization (PEP 621 / RPM CI) in #1368

    • Addresses Red Hat Bugzilla 2377453 filed against the Apprise RPM Build structure.
    • Replaced setup.py with pyproject.toml (setuptools.build_meta backend)
    • Replaced legacy dynamic keyword loading with static [project.keywords]
    • Added SPDX-compliant license (BSD-2-Clause)
    • Introduced tox -e release for full packaging lifecycle
    • Man page generation and translation compilation included in CI
    • Verified RPM builds using Fedora-compatible GitHub Actions
    • CI test matrix now supports Python 3.9–3.12, across Ubuntu, macOS, and Windows
    • .coverage files now consistently written to root; parallel coverage disabled for simpler merging
    • Artifact uploads now uniquely named per ${{ matrix.os }}-${{ matrix.python-version }}-${{ matrix.tox_env }}
    • tox.ini now supports clean qa, minimal, and release testing workflows
    • ruff linter applied to entire code-base
    • .pyi files dropped and type hinting integrated into main code base
  • Test coverge added to investigate ticket #1356 in #1358

  • EL9 RPM build container public; workflow fixed to accommodate in #1375

New Contributors

Installation

Apprise is available on PyPI through pip:

# Install Apprise v1.9.4 from PyPI
pip install apprise==1.9.4

Full Changelog: v1.9.3...v1.9.4

Don't miss a new apprise release

NewReleases is sending notifications on new releases.