v1.9.4
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.
:mega: New Notification Services:
- Added Spike.sh support in https://github.com/caronc/apprise/pull/1364
- Added Spug Push Support in https://github.com/caronc/apprise/pull/1365
- Added Lark Support in https://github.com/caronc/apprise/pull/1361
- Added QQ Push Support in https://github.com/caronc/apprise/pull/1366
- Added SIGNL4 Support by @rons4 in https://github.com/caronc/apprise/pull/1379
- Added SendPulse Support in https://github.com/caronc/apprise/pull/1192
- Added Clickatell support by @thmasker in https://github.com/caronc/apprise/pull/1347
- Added Vapid/WebPush Support in https://github.com/caronc/apprise/pull/1323
- Added SMPP support by @thmasker in https://github.com/caronc/apprise/pull/1354
:lady_beetle: Bugfixes
- Fix throttling in matrix plugin by @wolfgesbro in https://github.com/caronc/apprise/pull/1352
- minor fixes lingering from PR #1368 in https://github.com/caronc/apprise/pull/1378
- This is the major update identified in the Life-Cycle Support
- bluesky resolve did custom domains in https://github.com/caronc/apprise/pull/1363
- Update token regex on chanify by @edwinbernadus in https://github.com/caronc/apprise/pull/1325
- Fix matrix v3 attachments by @privacyfr3ak in https://github.com/caronc/apprise/pull/1373
- Minor typos and fixes in https://github.com/caronc/apprise/pull/1357
- Improved Google Chat thread handling in https://github.com/caronc/apprise/pull/1376
:bulb: Features
- Display SMTP host in debug mode by @emmanuel-ferdman in https://github.com/caronc/apprise/pull/1331
- Support mailto://localhost (default user is root) in https://github.com/caronc/apprise/pull/1360
- Dbus/Glib Python binding modernization + test refactoring in https://github.com/caronc/apprise/pull/1377
:heart: Life-Cycle Support
-
Add Codecov Test Analytics by @katia-sentry in https://github.com/caronc/apprise/pull/1321
-
Removed LunaSea as it's services are offline as of April 30th, 2025 in https://github.com/caronc/apprise/pull/1362
-
:fire: Apprise Build System Modernization (PEP 621 / RPM CI) in https://github.com/caronc/apprise/pull/1368
- Addresses Red Hat Bugzilla 2377453 filed against the Apprise RPM Build structure.
- Replaced
setup.pywithpyproject.toml(setuptools.build_metabackend) - Replaced legacy dynamic keyword loading with static
[project.keywords] - Added SPDX-compliant license (
BSD-2-Clause) - Introduced
tox -e releasefor 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
.coveragefiles 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.ininow supports cleanqa,minimal, andreleasetesting workflowsrufflinter applied to entire code-base.pyifiles dropped and type hinting integrated into main code base
-
Test coverge added to investigate ticket #1356 in https://github.com/caronc/apprise/pull/1358
-
EL9 RPM build container public; workflow fixed to accommodate in https://github.com/caronc/apprise/pull/1375
New Contributors
- @katia-sentry made their first contribution in https://github.com/caronc/apprise/pull/1321
- @edwinbernadus made their first contribution in https://github.com/caronc/apprise/pull/1325
- @emmanuel-ferdman made their first contribution in https://github.com/caronc/apprise/pull/1331
- @thmasker made their first contribution in https://github.com/caronc/apprise/pull/1347
- @wolfgesbro made their first contribution in https://github.com/caronc/apprise/pull/1352
- @privacyfr3ak made their first contribution in https://github.com/caronc/apprise/pull/1373
- @rons4 made their first contribution in https://github.com/caronc/apprise/pull/1379
Installation
Apprise is available on PyPI through pip:
# Install Apprise v1.9.4 from PyPI
pip install apprise==1.9.4
Full Changelog: https://github.com/caronc/apprise/compare/v1.9.3...v1.9.4