From 19d772cd1fd0f396eb3066adc3d62b9569dad701 Mon Sep 17 00:00:00 2001 From: Mattia Procopio Date: Fri, 18 Dec 2020 11:28:25 +0100 Subject: [PATCH 01/12] WIP - GH actions --- .github/workflows/test.yml | 46 ++++++++++++++++++++++++++ .travis.yml | 67 -------------------------------------- 2 files changed, 46 insertions(+), 67 deletions(-) create mode 100644 .github/workflows/test.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..24b0107b0 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,46 @@ +name: Test + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + max-parallel: 5 + matrix: + python-version: ['3.6', '3.7', '3.8', '3.9', 'pypy3'] + + steps: + - uses: actions/checkout@v2 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + + + - name: Get pip cache dir + id: pip-cache + run: | + echo "::set-output name=dir::$(pip cache dir)" + + - name: Cache + uses: actions/cache@v2 + with: + path: ${{ steps.pip-cache.outputs.dir }} + key: + ${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/tox.ini') }} + restore-keys: | + ${{ matrix.python-version }}-v1- + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip + python -m pip install --upgrade tox tox-gh-actions + - name: Tox tests + run: | + tox -v + - name: Upload coverage + uses: codecov/codecov-action@v1 + with: + name: Python ${{ matrix.python-version }} diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1505d8cf3..000000000 --- a/.travis.yml +++ /dev/null @@ -1,67 +0,0 @@ -# https://travis-ci.org/jazzband/django-oauth-toolkit -dist: bionic - -language: python - -cache: - directories: - - $HOME/.cache/pip - - $TRAVIS_BUILD_DIR/.tox - -# Make sure to coordinate changes to envlist in tox.ini. -matrix: - allow_failures: - - env: TOXENV=py36-djangomaster - - env: TOXENV=py37-djangomaster - - env: TOXENV=py38-djangomaster - - env: TOXENV=py39-djangomaster - - include: - - python: 3.7 - env: TOXENV=py37-flake8 - - python: 3.7 - env: TOXENV=py37-docs - - - python: 3.9 - env: TOXENV=py39-djangomaster - - python: 3.9 - env: TOXENV=py39-django30 - - python: 3.9 - env: TOXENV=py39-django22 - - - python: 3.8 - env: TOXENV=py38-django31 - - python: 3.8 - env: TOXENV=py38-django30 - - python: 3.8 - env: TOXENV=py38-django22 - - python: 3.8 - env: TOXENV=py38-djangomaster - - - python: 3.7 - env: TOXENV=py37-django31 - - python: 3.7 - env: TOXENV=py37-django30 - - python: 3.7 - env: TOXENV=py37-django22 - - python: 3.7 - env: TOXENV=py37-djangomaster - - - python: 3.6 - env: TOXENV=py36-django31 - - python: 3.6 - env: TOXENV=py36-django30 - - python: 3.6 - env: TOXENV=py36-django22 - - - python: 3.5 - env: TOXENV=py35-django22 - -install: - - pip install coveralls tox tox-travis - -script: - - tox - -after_script: - - coveralls From 2803588ebe5d99caf79da464e6a622e110f4abdd Mon Sep 17 00:00:00 2001 From: Mattia Procopio Date: Fri, 18 Dec 2020 11:29:38 +0100 Subject: [PATCH 02/12] drop pypy --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 24b0107b0..b2cd54678 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.6', '3.7', '3.8', '3.9', 'pypy3'] + python-version: ['3.6', '3.7', '3.8', '3.9'] steps: - uses: actions/checkout@v2 From 60d2084733b1fcba0ec1d8096a1ee690add42697 Mon Sep 17 00:00:00 2001 From: Mattia Procopio Date: Fri, 18 Dec 2020 11:38:33 +0100 Subject: [PATCH 03/12] Fix tox.ini --- tox.ini | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/tox.ini b/tox.ini index 284a5bcc9..1113102b9 100644 --- a/tox.ini +++ b/tox.ini @@ -1,17 +1,19 @@ [tox] envlist = py37-flake8, - py37-docs, - py39-django{31,30,22}, - py38-django{31,30,22}, - py37-django{31,30,22}, - py36-django{31,30,22}, + docs, + py{36,37,38,39}-django{31,30,22}, py35-django{22}, - py39-djangomaster, - py38-djangomaster, - py37-djangomaster, - py36-djangomaster, + py{36,37,38,39}-djangomaster, +[gh-actions] +python = + 3.6: py36 + 3.7: py37 + 3.8: py38, docs + 3.9: py39 + + [pytest] django_find_project = false @@ -38,8 +40,8 @@ deps = passenv = PYTEST_ADDOPTS -[testenv:py37-docs] -basepython = python +[testenv:docs] +basepython = python3.8 changedir = docs whitelist_externals = make commands = make html From 5049bb39d8480b9a4b8be7a8fec2f499804b9e94 Mon Sep 17 00:00:00 2001 From: Mattia Procopio Date: Fri, 18 Dec 2020 11:51:10 +0100 Subject: [PATCH 04/12] Try to fix coverage --- tox.ini | 82 +++++++++++++++++++++++++++++---------------------------- 1 file changed, 42 insertions(+), 40 deletions(-) diff --git a/tox.ini b/tox.ini index 1113102b9..ad08bc2b1 100644 --- a/tox.ini +++ b/tox.ini @@ -1,13 +1,14 @@ [tox] envlist = - py37-flake8, - docs, - py{36,37,38,39}-django{31,30,22}, - py35-django{22}, - py{36,37,38,39}-djangomaster, + flake8, + docs, + py{36,37,38,39}-django{31,30,22}, + py35-django{22}, + py{36,37,38,39}-djangomaster, [gh-actions] python = + 3.5: py35 3.6: py36 3.7: py37 3.8: py38, docs @@ -18,25 +19,27 @@ python = django_find_project = false [testenv] -commands = pytest --cov=oauth2_provider --cov-report= --cov-append {posargs} +commands = + pytest --cov=oauth2_provider --cov-report= --cov-append {posargs} + coverage report + coverage xml setenv = - DJANGO_SETTINGS_MODULE = tests.settings - PYTHONPATH = {toxinidir} - PYTHONWARNINGS = all + DJANGO_SETTINGS_MODULE = tests.settings + PYTHONPATH = {toxinidir} + PYTHONWARNINGS = all deps = - django22: Django>=2.2,<3 - django30: Django>=3.0,<3.1 - django31: Django>=3.1,<3.2 - djangomaster: https://github.com/django/django/archive/master.tar.gz - djangorestframework - oauthlib>=3.1.0 - coverage - pytest - pytest-cov - pytest-django - pytest-xdist - py27: mock - requests + django22: Django>=2.2,<3 + django30: Django>=3.0,<3.1 + django31: Django>=3.1,<3.2 + djangomaster: https://github.com/django/django/archive/master.tar.gz + djangorestframework + oauthlib>=3.1.0 + coverage + pytest + pytest-cov + pytest-django + pytest-xdist + requests passenv = PYTEST_ADDOPTS @@ -46,31 +49,30 @@ changedir = docs whitelist_externals = make commands = make html deps = - sphinx<3 - oauthlib>=3.1.0 - m2r>=0.2.1 + sphinx<3 + oauthlib>=3.1.0 + m2r>=0.2.1 -[testenv:py37-flake8] +[testenv:flake8] +basepython = python3.8 skip_install = True -commands = - flake8 {toxinidir} +commands = flake8 {toxinidir} deps = - flake8 - flake8-isort - flake8-quotes - flake8-black + flake8 + flake8-isort + flake8-quotes + flake8-black [testenv:install] deps = - twine - setuptools>=39.0 - wheel -whitelist_externals= - rm + twine + setuptools>=39.0 + wheel +whitelist_externals = rm commands = - rm -rf dist - python setup.py sdist bdist_wheel - twine upload dist/* + rm -rf dist + python setup.py sdist bdist_wheel + twine upload dist/* [coverage:run] From c50f61dbac1c625440be71422430ce4dca62a616 Mon Sep 17 00:00:00 2001 From: Mattia Procopio Date: Fri, 18 Dec 2020 12:01:22 +0100 Subject: [PATCH 05/12] Add 3.5 (for django 2.2) to GH actions --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b2cd54678..fad99d9af 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.6', '3.7', '3.8', '3.9'] + python-version: ['3.5','3.6', '3.7', '3.8', '3.9'] steps: - uses: actions/checkout@v2 From 88d6d9490298001735b159bd93a42ab0c5281098 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 12:48:20 +0100 Subject: [PATCH 06/12] Minor doc updates. --- README.rst | 13 ++++++------- docs/contributing.rst | 4 ++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/README.rst b/README.rst index 1a5adcd06..b90d7b2e3 100644 --- a/README.rst +++ b/README.rst @@ -10,14 +10,13 @@ Django OAuth Toolkit .. image:: https://badge.fury.io/py/django-oauth-toolkit.png :target: http://badge.fury.io/py/django-oauth-toolkit -.. image:: https://travis-ci.org/jazzband/django-oauth-toolkit.png - :alt: Build Status - :target: https://travis-ci.org/jazzband/django-oauth-toolkit - -.. image:: https://coveralls.io/repos/github/jazzband/django-oauth-toolkit/badge.svg?branch=master - :alt: Coverage Status - :target: https://coveralls.io/github/jazzband/django-oauth-toolkit?branch=master +.. image:: https://github.com/jazzband/django-oauth-toolkit/workflows/Test/badge.svg + :target: https://github.com/jazzband/django-oauth-toolkit/actions + :alt: GitHub Actions +.. image:: https://codecov.io/gh/jazzband/django-oauth-toolkit/branch/master/graph/badge.svg + :target: https://codecov.io/gh/jazzband/django-oauth-toolkit + :alt: Coverage If you are facing one or more of the following: * Your Django app exposes a web API you want to protect with OAuth2 authentication, diff --git a/docs/contributing.rst b/docs/contributing.rst index 39ed1a427..45f0c3765 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -84,7 +84,7 @@ When you begin your PR, you'll be asked to provide the following: * Any new or changed code requires that a unit test be added or updated. Make sure your tests check for correct error behavior as well as normal expected behavior. Strive for 100% code coverage of any new code you contribute! Improving unit tests is always a welcome contribution. - If your change reduces coverage, you'll be warned by `coveralls `_. + If your change reduces coverage, you'll be warned by `Codecov `_. * Update the documentation (in `docs/`) to describe the new or changed functionality. @@ -190,7 +190,7 @@ You can check your coverage locally with the `coverage Date: Mon, 21 Dec 2020 12:51:24 +0100 Subject: [PATCH 07/12] Rename some tox config. --- tox.ini | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tox.ini b/tox.ini index ad08bc2b1..4e33631a8 100644 --- a/tox.ini +++ b/tox.ini @@ -2,9 +2,9 @@ envlist = flake8, docs, - py{36,37,38,39}-django{31,30,22}, - py35-django{22}, - py{36,37,38,39}-djangomaster, + py{36,37,38,39}-dj{31,30,22}, + py35-dj{22}, + py{36,37,38,39}-djmaster, [gh-actions] python = @@ -14,7 +14,6 @@ python = 3.8: py38, docs 3.9: py39 - [pytest] django_find_project = false @@ -28,10 +27,10 @@ setenv = PYTHONPATH = {toxinidir} PYTHONWARNINGS = all deps = - django22: Django>=2.2,<3 - django30: Django>=3.0,<3.1 - django31: Django>=3.1,<3.2 - djangomaster: https://github.com/django/django/archive/master.tar.gz + dj22: Django>=2.2,<3 + dj30: Django>=3.0,<3.1 + dj31: Django>=3.1,<3.2 + djmaster: https://github.com/django/django/archive/master.tar.gz djangorestframework oauthlib>=3.1.0 coverage From 0abf6bf93f659df4ebebf1bee50986cac5a06d1a Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 12:51:31 +0100 Subject: [PATCH 08/12] Minor typo. --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fad99d9af..8de94357e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,7 +9,7 @@ jobs: fail-fast: false max-parallel: 5 matrix: - python-version: ['3.5','3.6', '3.7', '3.8', '3.9'] + python-version: ['3.5' ,'3.6', '3.7', '3.8', '3.9'] steps: - uses: actions/checkout@v2 From 0fca167ace78844652e4f5c3395d5409d0eea00c Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 12:51:42 +0100 Subject: [PATCH 09/12] Add release workflow. --- .github/workflows/release.yml | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 000000000..25051eaff --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,40 @@ +name: Release + +on: + push: + tags: + - '*' + +jobs: + build: + if: github.repository == 'jazzband/django-oauth-toolkit' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + + - name: Install dependencies + run: | + python -m pip install -U pip + python -m pip install -U setuptools twine wheel + + - name: Build package + run: | + python setup.py --version + python setup.py sdist --format=gztar bdist_wheel + twine check dist/* + + - name: Upload packages to Jazzband + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@master + with: + user: jazzband + password: ${{ secrets.JAZZBAND_RELEASE_KEY }} + repository_url: https://jazzband.co/projects/django-oauth-toolkit/upload From f85e173adc4f25967cf3aae7390535da708f6744 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 13:34:38 +0100 Subject: [PATCH 10/12] Remove tarball from download URL. --- setup.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 98ef302b8..1a6de586c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -7,7 +7,6 @@ long_description_content_type = text/x-rst author = Federico Frenguelli, Massimiliano Pippi author_email = synasius@gmail.com url = https://github.com/jazzband/django-oauth-toolkit -download_url = https://github.com/jazzband/django-oauth-toolkit/tarball/master keywords = django, oauth, oauth2, oauthlib classifiers = Development Status :: 5 - Production/Stable From 77f504d60f38f5dfd3ffa7da8a4b530959804fc5 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 13:34:49 +0100 Subject: [PATCH 11/12] Ignore errors on Django masters. --- tox.ini | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tox.ini b/tox.ini index 4e33631a8..cb0129cda 100644 --- a/tox.ini +++ b/tox.ini @@ -42,6 +42,10 @@ deps = passenv = PYTEST_ADDOPTS +[testenv:py{36,37,38,39}-djmaster] +ignore_errors = true +ignore_outcome = true + [testenv:docs] basepython = python3.8 changedir = docs From a70a82e2aa33538cdffcd4564ead1623a5ccb1f8 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Mon, 21 Dec 2020 13:36:18 +0100 Subject: [PATCH 12/12] Minor fix. --- .github/workflows/test.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 8de94357e..e659cf70d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,13 +33,16 @@ jobs: ${{ matrix.python-version }}-v1-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/tox.ini') }} restore-keys: | ${{ matrix.python-version }}-v1- + - name: Install Python dependencies run: | python -m pip install --upgrade pip python -m pip install --upgrade tox tox-gh-actions + - name: Tox tests run: | tox -v + - name: Upload coverage uses: codecov/codecov-action@v1 with: