Release 4.0

This commit is contained in:
medmunds
2018-08-19 11:53:16 -07:00
parent 13ffd5db40
commit e44978daf7
3 changed files with 26 additions and 23 deletions

View File

@@ -29,7 +29,7 @@ Release history
v4.0 v4.0
---- ----
*In development* *2018-08-19*
Breaking changes Breaking changes
~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~
@@ -37,39 +37,42 @@ Breaking changes
* Drop support for Django versions older than Django 1.11. * Drop support for Django versions older than Django 1.11.
(For compatibility back to Django 1.8, stay on the Anymail `v3.0`_ (For compatibility back to Django 1.8, stay on the Anymail `v3.0`_
extended support branch.) extended support branch.)
* **SendGrid:** Remove the legacy SendGrid *v2* EmailBackend * **SendGrid:** Remove the legacy SendGrid *v2* EmailBackend.
(Anymail has defaulted to SendGrid's newer v3 API since Anymail v0.8.) (Anymail's default since v0.8 has been SendGrid's newer v3 API.)
If your settings.py `EMAIL_BACKEND` still references "sendgrid_v2," you must
`upgrade to v3 <https://anymail.readthedocs.io/en/v3.0/esps/sendgrid/#upgrading-to-sendgrid-s-v3-api>`__.
Features Features
~~~~~~~~ ~~~~~~~~
* **Mailgun:** Add support for new Mailgun webhooks. (Mailgun's original "legacy * **Mailgun:** Add support for new Mailgun webhooks. (Mailgun's original "legacy
webhook" format is also still supported. See webhook" format is also still supported. See
`docs <https://anymail.readthedocs.io/en/stable/esps/mailgun/#mailgun-webhooks>`__.) `docs <https://anymail.readthedocs.io/en/stable/esps/mailgun/#mailgun-webhooks>`__.)
* **Mailgun:** Document how to use new European region. (This works in earlier * **Mailgun:** Document how to use new European region. (This works in earlier
Anymail versions, too.) Anymail versions, too.)
* **Postmark:** Add support for Anymail's normalized `metadata` in sending * **Postmark:** Add support for Anymail's normalized `metadata` in sending
and webhooks. and webhooks.
Fixes Fixes
~~~~~ ~~~~~
* Change `attach_inline_image()` default domain for *Content-ID* to "inline" (rather * Avoid problems with Gmail blocking messages that have inline attachments, when sent
than Python's `make_msgid()` default local hostname). This avoids problems with ESPs from a machine whose local hostname ends in *.com*. Change Anymail's
that don't distinguish *Content-ID* from attachment filename, where a local hostname `attach_inline_image()` default *Content-ID* domain to the literal text "inline"
ending in ".com" could cause Gmail to block messages sent with inline attachments. (rather than Python's default of the local hostname), to work around a limitation
(Mailgun, Mailjet, Mandrill and SparkPost have APIs affected by this. of some ESP APIs that don't permit distinct content ID and attachment filenames
See `#112`_ for more details.) (Mailgun, Mailjet, Mandrill and SparkPost). See `#112`_ for more details.
* **Amazon SES:** Work around an * **Amazon SES:** Work around an
`Amazon SES bug <https://forums.aws.amazon.com/thread.jspa?threadID=287048>`__ `Amazon SES bug <https://forums.aws.amazon.com/thread.jspa?threadID=287048>`__
that can corrupt non-ASCII message bodies if you are using SES's open or click that can corrupt non-ASCII message bodies if you are using SES's open or click
tracking. (See `#115`_ for more details. Thanks to `@varche1`_ for isolating tracking. (See `#115`_ for more details. Thanks to `@varche1`_ for isolating
the specific conditions that trigger the bug.) the specific conditions that trigger the bug.)
Other Other
~~~~~ ~~~~~
* Maintain changelog in the repository itself (rather than in GitHub release notes). * Maintain changelog in the repository itself (rather than in GitHub release notes).
* Test against released versions of Python 3.7 and Django 2.1.
v3.0 v3.0

View File

@@ -1,3 +1,3 @@
VERSION = (4, 0, 'dev0') VERSION = (4, 0)
__version__ = '.'.join([str(x) for x in VERSION]) # major.minor.patch or major.minor.devN __version__ = '.'.join([str(x) for x in VERSION]) # major.minor.patch or major.minor.devN
__minor_version__ = '.'.join([str(x) for x in VERSION[:2]]) # Sphinx's X.Y "version" __minor_version__ = '.'.join([str(x) for x in VERSION[:2]]) # Sphinx's X.Y "version"

View File

@@ -78,7 +78,7 @@ setup(
"Framework :: Django", "Framework :: Django",
"Framework :: Django :: 1.11", "Framework :: Django :: 1.11",
"Framework :: Django :: 2.0", "Framework :: Django :: 2.0",
# "Framework :: Django :: 2.1", "Framework :: Django :: 2.1",
"Environment :: Web Environment", "Environment :: Web Environment",
], ],
long_description=long_description, long_description=long_description,