Commit Graph

67 Commits

Author SHA1 Message Date
medmunds
2001b1ce2a Update ESP list in PyPI description, keywords 2022-05-15 10:05:25 -07:00
Andrew Chen Wang
28247ec042 Packaging: Update trove classifiers 2022-01-10 13:57:21 -08:00
Mike Edmunds
adc92f037b Tests: tox and mock cleanup
* Remove mock dependency
  (mock is now part of standard unittest package)
* Cleanup tox dependency installation logic
2021-06-13 12:13:31 -07:00
Tilmann Becker
e90c10b546 Add Postal support
Thanks to @tiltec for researching, implementing, testing and documenting it.
2021-06-07 17:11:35 -07:00
Mike Edmunds
fd9fdb9b03 Drop pipenv
To install the development environment (inside your preferred venv), 
now just use `pip install -e '.[dev,test]'`.
2021-02-20 13:37:44 -08:00
Mike Edmunds
5cbaa24002 Move CI testing to GitHub Actions
Related changes:
* remove Travis-CI config; stop running tests on Travis
* rename live integration test environment variables
  to all start with `ANYMAIL_TEST_` (simplifies tox config)
2020-11-28 18:08:01 -08:00
medmunds
d44218f733 Remove Python 2 support from packaging
(This is included in the v8.0 distribution)
2020-09-11 15:02:24 -07:00
medmunds
61660cd5ff SparkPost: call HTTP API directly [breaking]
Switch from the (now unmaintained) python-sparkpost
client library to a requests-based backend that calls
SparkPost's Transmissions API directly.

Also adds support for text/x-amp-html alternative parts
(which are supported by the SparkPost API, but weren't
by the client library).

Closes #203
2020-09-11 11:10:24 -07:00
Mike Edmunds
cca653fcba Docs: update tooling and outdated/broken content
* Update docs build config
  * Specify Sphinx and theme versions in docs/requirements.txt
    (tox had been using latest; RTD had pinned older versions)
  * Update docs builds for Python 3 and recent Sphinx
  * Remove obsolete sphinx-rtd-theme patches
  * Add .readthedocs.yml
  * Move some JS to async (now that Sphinx supports that)
  * Fix version-alert.js for async loading
* Remove docs versionadded/changed info older than v3.0
* Fix broken GitHub issue links in changelog (never worked?)
* Add setup long_description_content_type
* Drop poorly maintained AUTHORS.txt 
  (just point to GitHub contributors page)
2020-09-07 12:05:39 -07:00
medmunds
7d726734eb Rename git default branch to "main" 2020-08-14 17:58:06 -07:00
Mike Edmunds
85cec5e9dc Drop Python 2 and Django 1.11 support
Minimum supported versions are now Django 2.0, Python 3.5.

This touches a lot of code, to:
* Remove obsolete portability code and workarounds
  (six, backports of email parsers, test utils, etc.)
* Use Python 3 syntax (class defs, raise ... from, etc.)
* Correct inheritance for mixin classes
* Fix outdated docs content and links
* Suppress Python 3 "unclosed SSLSocket" ResourceWarnings
  that are beyond our control (in integration tests due to boto3, 
  python-sparkpost)
2020-08-01 14:53:10 -07:00
medmunds
e44978daf7 Release 4.0 2018-08-19 11:53:16 -07:00
medmunds
7d8dbdace9 Docs: update changelog links in README, PyPI 2018-07-06 16:54:29 -07:00
medmunds
3a47042269 Drop support for Django < 1.11 2018-05-30 15:20:47 -07:00
medmunds
b6d6db340f (PyPI doesn't allow "Django 2.1" classifier yet) 2018-05-30 14:32:38 -07:00
medmunds
51d2a404c0 Test/support Django 2.1 2018-05-24 11:49:35 -07:00
medmunds
2185d25301 Add "Amazon SES" to setup.py package description 2018-04-11 11:50:45 -07:00
Mike Edmunds
ef69fa3bf7 Amazon SES support
Integrate Amazon SES.

Closes #54.
2018-04-11 10:35:23 -07:00
medmunds
1e7aacdcb4 SendinBlue: update docs, readme, setup, Travis config
* Flesh out SendinBlue docs, add a readme mention
* Stop trying to list all the supported ESPs in the project short
  description and similar headlines -- it was becoming unwieldy.
* Support `pip install django-anymail[sendinblue]`
  and use it in Travis tests (for consistency; SendinBlue
  doesn't require any extra packages)
2018-03-01 17:29:57 -08:00
medmunds
deea8c5d5b Setup: add universal wheel; update metadata; clean up setup.py
* Follow current setup.py recommendations from the pypa sample project
  (utf-8 encoding on file reads, ensure files are read relative to
  own location)
* Add/update some missing classifiers and other metadata
* Read _version.py constants into an isolated dict (rather than
  the global setup.py context)
* Add setup.cfg specifying universal bdist_wheel
2018-03-01 13:14:05 -08:00
medmunds
01f56ae2b0 Prep for 1.0 release
* Remove "pre-1.0" warnings in docs, readme
* Jump trove classifer from pre-alpha all the way up to stable
  (arguably this should have been "beta" for the past several months)
2017-09-08 17:16:18 -07:00
medmunds
60a6c968f2 setup: flake clean 2017-07-13 16:30:40 -07:00
medmunds
beec6e876a Mailjet: include in setup.py 2017-07-13 15:45:02 -07:00
medmunds
67b9d8361d Include SparkPost in PyPI short description 2017-05-22 11:39:02 -07:00
medmunds
8bdc67939a Flake8 clean 2017-04-16 11:43:13 -07:00
medmunds
cbd1666d98 Support released (not pre) Django 1.11 2017-04-04 10:20:56 -07:00
medmunds
bcd0350295 Readme: fix external docs/build links
* The default (GitHub) readme should point
  to the stable docs version, rather than
  the latest development version.
* The frozen links in PyPI should use the full
  patch version number (X.Y.Z), not just the minor
  X.Y version. (Leftover from Djrill's branch-based
  version management; Anymail uses tags
  for versions, and old way was creating incorrect
  frozen doc links for patch releases.)
2017-01-26 11:48:43 -08:00
Seb Bacon
f0589e3338 Compatibility with earlier Python 2.7 versions
Compatibility with Python 2.7 versions older than 2.7.7

* Use Django's constant_time_compare method
* Include sparkpost in test requirements
* Don't use non-public `EnvironmentVarGuard` in tests

Fixes #41
2016-11-01 11:24:51 -07:00
Fábio C. Barrionuevo da Luz
e1f5ff3970 fix project url on setup.py (#25)
[ci skip]
2016-06-24 13:56:24 -07:00
Mike Edmunds
db101bf6b9 Add SparkPost support (#20)
Implement SparkPost backend and tracking webhooks.

Closes #11.
2016-06-22 15:31:30 -07:00
medmunds
bb8494263f Readme: add RTD badge
[ci skip]
2016-03-16 09:40:27 -07:00
medmunds
1a1e5ba1a8 docs: update tagline 2016-03-14 13:42:56 -07:00
medmunds
fed98b14a8 install: remove need to name [esp]
Simplify install to just `pip install django-anymail`.
(Rather than `... django-anymail[mailgun]`

All of the ESPs so far require requests, so just move
that into the base requirements. (Chances are your
Django app already needs requests for some other
reason, anyway.)

Truly unique ESP dependencies (e.g., boto for
AWS-SES) could still use the setup extra features
mechanism.
2016-03-14 13:26:06 -07:00
medmunds
e15cb46daf Implement SendGridBackend
Covers most of #1
2016-03-11 16:17:02 -08:00
medmunds
d1d41badc8 Add Mailgun backend 2016-03-07 18:07:48 -08:00
medmunds
921dd5d0d6 Fork from Djrill and rename to "anymail" 2016-02-27 11:16:04 -08:00
medmunds
265c7460e0 Support Django 1.9 release 2015-12-02 16:59:34 -08:00
medmunds
da260de1a0 Drop support for Django 1.3, Python 2.6 and 3.2.
* Shrink the Travis test matrix
* Remove a lot of backported test code
* Update requirements in setup.py
* Update docs

Closes #79
2015-05-14 11:39:57 -07:00
medmunds
11961b57e5 Use real Response object in DjrillBackendMockAPITestCase tests.
(Improves testing accuracy around API response encoding.)

* Add `six` as test dependency (six.BytesIO, six.b)
* Change MockResponse content to bytes (because HTTP responses
  are bytes, not strings)
2015-01-16 13:18:17 -08:00
Omer Katz
a46ade6c94 Updated the package's classifiers. 2014-07-15 11:54:07 +03:00
Kyle Gibson
1c92edc665 Refs #64. Fixed requirement specification for requests 2014-04-21 13:43:45 -04:00
Kyle Gibson
9eb8d13c3d Refs #64. Pegged requests to at least 1.0.0 2014-04-21 13:37:54 -04:00
medmunds
6d7e14ffc4 Fix links to outdated 'master' in RTD.
ReadTheDocs hosts master (dev branch) docs under /latest.
(Old /master was not building regularly.)
2014-01-25 12:44:32 -08:00
medmunds
3a080bf557 Require Django>=1.3
Djrill is known not to work on Django 1.2. (You could probably backport it without too much difficulty, but you would also run into requests compatibility issues.)
2014-01-12 11:02:54 -08:00
medmunds
1fa8699389 Setup: oops, can't list supported Django versions 2013-03-05 18:40:02 -08:00
medmunds
63b5db7b9a Readme point to 'master' version of docs 2013-03-05 16:03:17 -08:00
medmunds
7b61302dc2 Setup: list supported Python and Django versions; don't include entire license file 2013-03-05 15:46:06 -08:00
medmunds
9211c74144 Clean up version numbering and readme/description/docs sharing 2013-03-05 15:33:52 -08:00
medmunds
21acb71642 Unified version: Python 3-compatible replacement for execfile 2013-03-04 21:13:19 -08:00
medmunds
ea72b2d790 DRY up duplicate content in the readme and docs index page.
* Don't maintain similar overview in README.rst and docs/index.rst -- instead just include relevant portions of readme in the docs
* Patch up README version numbers and doc links in setup.py long_description to freeze them to the version being setup
* Suppress the Travis build status indicator in the docs and PyPI, since it can't be frozen to the specific version in question
2013-03-04 20:25:10 -08:00