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:
- Added Spike.sh support in #1364
- Added Spug Push Support in #1365
- Added Lark Support in #1361
- Added QQ Push Support in #1366
- Added SIGNL4 Support by @rons4 in #1379
- Added SendPulse Support in #1192
- Added Clickatell support by @thmasker in #1347
- Added Vapid/WebPush Support in #1323
- Added SMPP support by @thmasker in #1354
🐞 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
withpyproject.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 cleanqa
,minimal
, andrelease
testing workflowsruff
linter applied to entire code-base.pyi
files dropped and type hinting integrated into main code base
-
EL9 RPM build container public; workflow fixed to accommodate in #1375
New Contributors
- @katia-sentry made their first contribution in #1321
- @edwinbernadus made their first contribution in #1325
- @emmanuel-ferdman made their first contribution in #1331
- @thmasker made their first contribution in #1347
- @wolfgesbro made their first contribution in #1352
- @privacyfr3ak made their first contribution in #1373
- @rons4 made their first contribution in #1379
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