diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4c62682..dfd49c9 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -39,7 +39,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 941f9e8..de79e4c 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -10,41 +10,18 @@ on: branches: [ master ] jobs: - pytest-py27-p35: - runs-on: ${{ matrix.platform }} - + pytest: strategy: matrix: platform: [ ubuntu-latest, macos-latest, windows-latest ] - python-version: [ 2.7, 3.5 ] - - steps: - - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade 'pip < 21' - python -m pip install 'PyTest < 5' - python -m pip install -e . - - name: Test with pytest - run: | - pytest tests/ + python-version: [ "3.7", "3.8", "3.9", "3.10", "3.11" ] - pytest-py36-py310: runs-on: ${{ matrix.platform }} - strategy: - matrix: - platform: [ ubuntu-latest, macos-latest, windows-latest ] - python-version: [ "3.6", "3.7", "3.8", "3.9", "3.10" ] - steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install dependencies @@ -55,3 +32,4 @@ jobs: - name: Test with pytest run: | pytest tests/ + diff --git a/.travis.yml b/.travis.yml index 1e68af5..3873942 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,33 +1,27 @@ +dist: focal arch: - amd64 - ppc64le language: python python: - - "2.7" - - "3.5" - - "3.6" - "3.7" - "3.8" - "3.9" - - "3.10-dev" # 3.10 development branch - - "pypy" - - "pypy3" + - "3.10" + - "3.11" # development branch + - "3.12-dev" + - "pypy3.9-7.3.9" jobs: exclude: - arch: ppc64le - python: "2.7" - - arch: ppc64le - python: "pypy" - - arch: ppc64le - python: "pypy3" - - arch: amd64 - python: "pypy" - + python: "pypy3.9" + allow_failures: - - python: "3.10-dev" - + - python: "3.12-dev" + install: - - pip install coveralls tox-travis + # TODO: Remove tox limitation when https://github.com/tox-dev/tox-travis/pull/160 + - pip install coveralls tox-travis importlib_metadata 'tox<4' script: tox after_success: diff --git a/CHANGELOG.rst b/CHANGELOG.rst index afa9b3a..813d7a0 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -23,6 +23,11 @@ v1.2.14 (unreleased) Bug fix release +Other +----- + +- Add support for Python 3.11. + v1.2.13 (2021-09-05) ==================== diff --git a/appveyor.yml b/appveyor.yml index e8100e8..7a0376e 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,25 +5,6 @@ version: 1.2.14.{build} environment: matrix: - # Python **2.6** and **3.3** are no more supported - - PYTHON: "C:\\Python27" - TOX_ENV: "py27" - - - PYTHON: "C:\\Python27-x64" - TOX_ENV: "py27" - - - PYTHON: "C:\\Python35" - TOX_ENV: "py35" - - - PYTHON: "C:\\Python35-x64" - TOX_ENV: "py35" - - - PYTHON: "C:\\Python36" - TOX_ENV: "py36" - - - PYTHON: "C:\\Python36-x64" - TOX_ENV: "py36" - - PYTHON: "C:\\Python37" TOX_ENV: "py37" @@ -36,6 +17,24 @@ environment: - PYTHON: "C:\\Python38-x64" TOX_ENV: "py38" + - PYTHON: "C:\\Python39" + TOX_ENV: "py39" + + - PYTHON: "C:\\Python39-x64" + TOX_ENV: "py39" + + - PYTHON: "C:\\Python310" + TOX_ENV: "py310" + + - PYTHON: "C:\\Python310-x64" + TOX_ENV: "py310" + + - PYTHON: "C:\\Python311" + TOX_ENV: "py311" + + - PYTHON: "C:\\Python311-x64" + TOX_ENV: "py311" + init: - set PATH=%PYTHON%;%PYTHON%\Scripts;C:\MinGW\msys\1.0\bin;%PATH% - "git config --system http.sslcainfo \"C:\\Program Files\\Git\\mingw64\\ssl\\certs\\ca-bundle.crt\"" diff --git a/pyproject.toml b/pyproject.toml index 4daa17f..e319856 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ [tool.black] line-length = 120 skip-string-normalization = true -target-version = ['py27', 'py34', 'py35', 'py36', 'py37', 'py38'] +target-version = ['py37', 'py38', 'py39', 'py310', 'py311'] include = '\.pyi?$' [tool.isort] diff --git a/setup.py b/setup.py index 0828027..e54fe8b 100755 --- a/setup.py +++ b/setup.py @@ -169,34 +169,23 @@ def function_three(): 'License :: OSI Approved :: MIT License', 'Operating System :: OS Independent', 'Programming Language :: Python', - 'Programming Language :: Python :: 2', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', 'Topic :: Software Development :: Libraries :: Python Modules', ], extras_require={ 'dev': [ 'tox', - 'PyTest ; python_version >= "3.6"', - 'PyTest < 5 ; python_version < "3.6"', - 'PyTest-Cov ; python_version >= "3.6"', - 'PyTest-Cov < 2.6 ; python_version < "3.6"', + 'PyTest', + 'PyTest-Cov', 'bump2version < 1', 'sphinx < 2', - # Python 2.7 EOL: - 'importlib-metadata < 3 ; python_version < "3"', - 'importlib-resources < 4 ; python_version < "3"', - 'configparser < 5 ; python_version < "3"', - 'sphinxcontrib-websupport < 2 ; python_version < "3"', - 'zipp < 2 ; python_version < "3"', + 'importlib-metadata' ] }, - python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', + python_requires='>=3.7', ) diff --git a/tox.ini b/tox.ini index 1e869ce..52f9290 100644 --- a/tox.ini +++ b/tox.ini @@ -8,32 +8,31 @@ [tox] # PyPy configuration (on Linux/OSX): -# - /usr/local/bin/pypy -> /opt/pypy2.7-v7.3.0-osx64/bin/pypy # - /usr/local/bin/pypy3 -> /opt/pypy3.6-v7.3.0-osx64/bin/pypy3 envlist = - py{27,34,35,36,37,38,39,310}-wrapt{1.10,1.11,1.12,1.13} - pypy, pypy3 + py{37,38,39,310}-wrapt{1.10,1.11,1.12,1.13,1.14} + py{311,312}-wrapt{1.14} + pypy3 docs [testenv] commands = pytest --cov-report term-missing --cov=deprecated tests/ deps = - py27,py34,py35: pip >= 9.0.3, < 21 - py27,py34: PyTest < 5 - py35,py36,py37,py38,py39,pypy,pypy3: PyTest - py27,py34: PyTest-Cov < 2.6 - py34: typing # required by pytest->attrs - py35,py36,py37,py38,py39,py310,pypy,pypy3: PyTest-Cov + py{37,38,39,310,311,312,py3}: PyTest + py{37,38,39,310,311,312,py3}: PyTest-Cov wrapt1.10: wrapt ~= 1.10.0 wrapt1.11: wrapt ~= 1.11.0 wrapt1.12: wrapt ~= 1.12.0 - wrapt1.13: wrapt == 1.13.0rc3 - coverage < 5 + wrapt1.13: wrapt ~= 1.13.0 + wrapt1.14: wrapt ~= 1.14.0 + coverage [testenv:docs] basepython = python +# jinja2 3.0.3 was the last version to have contextfunction that sphinx 1.x needs deps = sphinx < 2 + jinja2 == 3.0.3 commands = sphinx-build -b html -d {envtmpdir}/doctrees docs/source/ {envtmpdir}/html sphinx-build -b epub -d {envtmpdir}/doctrees docs/source/ {envtmpdir}/epub