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)
This commit is contained in:
Mike Edmunds
2020-08-01 14:53:10 -07:00
committed by GitHub
parent c803108481
commit 85cec5e9dc
87 changed files with 672 additions and 1278 deletions

View File

@@ -1,5 +1,5 @@
sudo: false
language: python
os: linux
dist: xenial
branches:
@@ -15,9 +15,9 @@ env:
# Let Travis report failures that tox.ini would normally ignore:
- TOX_FORCE_IGNORE_OUTCOME=false
matrix:
jobs:
include:
- python: 3.6
- python: 3.8
env: TOXENV="lint,docs"
# Anymail supports the same Python versions as Django, plus PyPy.
@@ -26,12 +26,6 @@ matrix:
# Live API integration tests are only run on a few, representative Python/Django version
# combinations, to avoid rapidly consuming the testing accounts' entire send allotments.
# Django 1.11: Python 2.7, 3.4, 3.5, or 3.6
- { env: TOXENV=django111-py27-all RUN_LIVE_TESTS=true, python: 2.7 }
- { env: TOXENV=django111-py34-all, python: 3.4 }
- { env: TOXENV=django111-py35-all, python: 3.5 }
- { env: TOXENV=django111-py36-all, python: 3.6 }
- { env: TOXENV=django111-pypy-all, python: pypy2.7-6.0 }
# Django 2.0: Python 3.5+
- { env: TOXENV=django20-py35-all, python: 3.5 }
- { env: TOXENV=django20-py36-all, python: 3.6 }
@@ -44,7 +38,7 @@ matrix:
# Django 2.2: Python 3.5, 3.6, or 3.7
- { env: TOXENV=django22-py35-all, python: 3.5 }
- { env: TOXENV=django22-py36-all, python: 3.6 }
- { env: TOXENV=django22-py37-all RUN_LIVE_TESTS=true, python: 3.7 }
- { env: TOXENV=django22-py37-all, python: 3.7 }
- { env: TOXENV=django22-pypy3-all, python: pypy3 }
# Django 3.0: Python 3.6, 3.7, or 3.8
- { env: TOXENV=django30-py36-all, python: 3.6 }
@@ -54,16 +48,15 @@ matrix:
# Django 3.1: Python 3.6, 3.7, or 3.8
- { env: TOXENV=django31-py36-all, python: 3.6 }
- { env: TOXENV=django31-py37-all, python: 3.7 }
- { env: TOXENV=django31-py38-all, python: 3.8 }
- { env: TOXENV=django31-py38-all RUN_LIVE_TESTS=true, python: 3.8 }
- { env: TOXENV=django31-pypy3-all, python: pypy3 }
# Django current development (direct from GitHub source main branch):
- { env: TOXENV=djangoDev-py37-all, python: 3.7 }
# Install without optional extras (don't need to cover entire matrix)
- { env: TOXENV=django22-py37-none, python: 3.7 }
- { env: TOXENV=django22-py37-amazon_ses, python: 3.7 }
- { env: TOXENV=django22-py37-sparkpost, python: 3.7 }
- { env: TOXENV=django31-py37-none, python: 3.7 }
- { env: TOXENV=django31-py37-amazon_ses, python: 3.7 }
- { env: TOXENV=django31-py37-sparkpost, python: 3.7 }
# Test some specific older package versions
- { env: TOXENV=django111-py27-all-old_urllib3, python: 3.7 }
- { env: TOXENV=django22-py37-all-old_urllib3, python: 3.7 }
allow_failures: