diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ec617dfc..783511be 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -29,7 +29,7 @@ Release history v4.0 ---- -*In development* +*2018-08-19* Breaking changes ~~~~~~~~~~~~~~~~ @@ -37,39 +37,42 @@ Breaking changes * Drop support for Django versions older than Django 1.11. (For compatibility back to Django 1.8, stay on the Anymail `v3.0`_ extended support branch.) -* **SendGrid:** Remove the legacy SendGrid *v2* EmailBackend - (Anymail has defaulted to SendGrid's newer v3 API since Anymail v0.8.) +* **SendGrid:** Remove the legacy SendGrid *v2* EmailBackend. + (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 `__. Features ~~~~~~~~ -* **Mailgun:** Add support for new Mailgun webhooks. (Mailgun's original "legacy - webhook" format is also still supported. See - `docs `__.) -* **Mailgun:** Document how to use new European region. (This works in earlier - Anymail versions, too.) -* **Postmark:** Add support for Anymail's normalized `metadata` in sending - and webhooks. +* **Mailgun:** Add support for new Mailgun webhooks. (Mailgun's original "legacy + webhook" format is also still supported. See + `docs `__.) +* **Mailgun:** Document how to use new European region. (This works in earlier + Anymail versions, too.) +* **Postmark:** Add support for Anymail's normalized `metadata` in sending + and webhooks. Fixes ~~~~~ -* Change `attach_inline_image()` default domain for *Content-ID* to "inline" (rather - than Python's `make_msgid()` default local hostname). This avoids problems with ESPs - that don't distinguish *Content-ID* from attachment filename, where a local hostname - ending in ".com" could cause Gmail to block messages sent with inline attachments. - (Mailgun, Mailjet, Mandrill and SparkPost have APIs affected by this. - See `#112`_ for more details.) -* **Amazon SES:** Work around an - `Amazon SES bug `__ - 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 - the specific conditions that trigger the bug.) +* Avoid problems with Gmail blocking messages that have inline attachments, when sent + from a machine whose local hostname ends in *.com*. Change Anymail's + `attach_inline_image()` default *Content-ID* domain to the literal text "inline" + (rather than Python's default of the local hostname), to work around a limitation + of some ESP APIs that don't permit distinct content ID and attachment filenames + (Mailgun, Mailjet, Mandrill and SparkPost). See `#112`_ for more details. +* **Amazon SES:** Work around an + `Amazon SES bug `__ + 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 + the specific conditions that trigger the bug.) Other ~~~~~ * 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 diff --git a/anymail/_version.py b/anymail/_version.py index 808e2dbe..d2d7b046 100644 --- a/anymail/_version.py +++ b/anymail/_version.py @@ -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 __minor_version__ = '.'.join([str(x) for x in VERSION[:2]]) # Sphinx's X.Y "version" diff --git a/setup.py b/setup.py index fe2acc93..dbb47256 100644 --- a/setup.py +++ b/setup.py @@ -78,7 +78,7 @@ def long_description_from_readme(rst): "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", - # "Framework :: Django :: 2.1", + "Framework :: Django :: 2.1", "Environment :: Web Environment", ], long_description=long_description,