Skip to content

Release v1.8.0

Compare
Choose a tag to compare
@caronc caronc released this 11 May 20:34
· 68 commits to master since this release

Details

☝️ Attention Developers: there is a potential Breaking Change in this release. CLI users will not be impacted.

🛠️ Potential Breaking Change

PR #1119 involved the refactoring of all the internal file/module structure of the Apprise library. The hope is I didn't break anything in your source code 🙏 . The change was required in order to remain compatible with Python v3.11+ in conjunction with library importing and how it works under the hood. More details on the specific issue can be found here demonstrating it. The Python Issue I opened in reguards to this made it clear I needed to adapt the fix on my side and conform to a better file based structure.

The side effect of this massive change developers may see (if any at all) is just the way your import calls are made. If you always followed the examples provided on this GitHub project, you'll have no issues at all. However, if you got clever and leveraged some of the under-the-hood compontents Apprise is built upon, then you may have an issue. The good news is the ONLY thing impacted is the way you imported your libraries (they just slightly moved around). An example of this is someone who may have had:

# For example:
from apprise.plugins.NotifyEmail import NotifyEmail

# This has changed to :
from apprise.plugins.email import NotifyEmail

# All other object functionality has not changed at all

Documented imports still work perfectly (both before and after this major refactor) such as:

from apprise import Apprise
from apprise import AppriseAsset
# etc...

📣 New Notification Services:

n/a

💡 Features

  • Custom Plugin Attachment Support Enforced + Added Testing in #1115
  • Do not sanitize http:// attachment URLs (#1122)
    • This allows the successful fetching of very complicated http based Attachment URL's where the case sensitivity of the keys matter.
    • The side effect of this change, is built in switches like cache= become case sensitive too (e.g Cache= will no longer be parsed).

❤️ Life-Cycle Support

  • Enhancement: Refactor Test Code for Efficiency and Quality by @freddiewanah in #1100
  • 💣 Python Module Naming & Namespacing Harmonization by in #1119
    • This was a major change that eliminated ClassName.py to not include a class ClassName inside. Python has issues with import and unittest references when this is done. unittests break completely in Python v3.11 using this method making this massive refactoring essential.

🐛 Bugfixes

  • Added JSON Content-Type header to freemobile:// in #1109
  • Fix mailto://ip.addr support in #1114
  • clicksend:// authentication bugfix in #1121
  • Update Apprise API (apprise//) token length by @isometimescode in #1120

Installation

Apprise is available on PyPI through pip:

# Install Apprise v1.8.0 rom PyPI
pip install apprise==1.8.0

New Contributors