diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b0251c75ab..90f94bc32b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,15 +1,5 @@ version: 2 updates: -- package-ecosystem: "pip" - directory: "/requirements" - target-branch: "2.0.x" - versioning-strategy: "lockfile-only" - schedule: - interval: "monthly" - day: "monday" - time: "16:00" - timezone: "UTC" - open-pull-requests-limit: 99 - package-ecosystem: "github-actions" directory: "/" schedule: diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index 6b62df2683..32b60de4b1 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -41,18 +41,12 @@ jobs: - uses: actions/setup-python@v2 with: python-version: ${{ matrix.python }} + cache: 'pip' + cache-dependency-path: 'requirements/*.txt' - name: update pip run: | pip install -U wheel pip install -U setuptools python -m pip install -U pip - - name: get pip cache dir - id: pip-cache - run: echo "::set-output name=dir::$(pip cache dir)" - - name: cache pip - uses: actions/cache@v2 - with: - path: ${{ steps.pip-cache.outputs.dir }} - key: pip|${{ runner.os }}|${{ matrix.python }}|${{ hashFiles('setup.py') }}|${{ hashFiles('requirements/*.txt') }} - run: pip install tox - run: tox -e ${{ matrix.tox }} diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index da6dfef606..8bb5b2ee8c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -25,6 +25,10 @@ repos: additional_dependencies: - flake8-bugbear - flake8-implicit-str-concat + - repo: https://github.com/peterdemin/pip-compile-multi + rev: v2.4.3 + hooks: + - id: pip-compile-multi-verify - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.1.0 hooks: diff --git a/requirements/dev.in b/requirements/dev.in index 2588467c15..99f5942f83 100644 --- a/requirements/dev.in +++ b/requirements/dev.in @@ -1,6 +1,6 @@ -r docs.in -r tests.in -r typing.in -pip-tools +pip-compile-multi pre-commit tox diff --git a/requirements/dev.txt b/requirements/dev.txt index 41720d72af..96b58e3cfe 100644 --- a/requirements/dev.txt +++ b/requirements/dev.txt @@ -1,156 +1,52 @@ +# SHA1:54b5b77ec8c7a0064ffa93b2fd16cb0130ba177c # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/dev.in +# pip-compile-multi # -alabaster==0.7.12 - # via sphinx -asgiref==3.4.1 - # via -r requirements/tests.in -attrs==21.4.0 - # via pytest -babel==2.9.1 - # via sphinx -blinker==1.4 - # via -r requirements/tests.in -certifi==2021.10.8 - # via requests -cffi==1.15.0 - # via cryptography +-r docs.txt +-r tests.txt +-r typing.txt cfgv==3.3.1 # via pre-commit -charset-normalizer==2.0.10 - # via requests click==8.0.3 - # via pip-tools -cryptography==36.0.1 - # via -r requirements/typing.in + # via + # pip-compile-multi + # pip-tools distlib==0.3.4 # via virtualenv -docutils==0.16 - # via - # sphinx - # sphinx-tabs filelock==3.4.2 # via # tox # virtualenv greenlet==1.1.2 ; python_version < "3.11" # via -r requirements/tests.in -identify==2.4.3 +identify==2.4.8 # via pre-commit -idna==3.3 - # via requests -imagesize==1.3.0 - # via sphinx -iniconfig==1.1.1 - # via pytest -jinja2==3.0.3 - # via sphinx -markupsafe==2.0.1 - # via jinja2 -mypy==0.931 - # via -r requirements/typing.in -mypy-extensions==0.4.3 - # via mypy nodeenv==1.6.0 # via pre-commit -packaging==21.3 - # via - # pallets-sphinx-themes - # pytest - # sphinx - # tox -pallets-sphinx-themes==2.0.2 - # via -r requirements/docs.in pep517==0.12.0 # via pip-tools -pip-tools==6.4.0 +pip-compile-multi==2.4.3 # via -r requirements/dev.in +pip-tools==6.5.1 + # via pip-compile-multi platformdirs==2.4.1 # via virtualenv -pluggy==1.0.0 - # via - # pytest - # tox -pre-commit==2.16.0 +pre-commit==2.17.0 # via -r requirements/dev.in -py==1.11.0 - # via - # pytest - # tox -pycparser==2.21 - # via cffi -pygments==2.11.2 - # via - # sphinx - # sphinx-tabs -pyparsing==3.0.6 - # via packaging -pytest==6.2.5 - # via -r requirements/tests.in -python-dotenv==0.19.2 - # via -r requirements/tests.in -pytz==2021.3 - # via babel pyyaml==6.0 # via pre-commit -requests==2.27.1 - # via sphinx six==1.16.0 # via # tox # virtualenv -snowballstemmer==2.2.0 - # via sphinx -sphinx==4.3.2 - # via - # -r requirements/docs.in - # pallets-sphinx-themes - # sphinx-issues - # sphinx-tabs - # sphinxcontrib-log-cabinet -sphinx-issues==3.0.1 - # via -r requirements/docs.in -sphinx-tabs==3.2.0 - # via -r requirements/docs.in -sphinxcontrib-applehelp==1.0.2 - # via sphinx -sphinxcontrib-devhelp==1.0.2 - # via sphinx -sphinxcontrib-htmlhelp==2.0.0 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-log-cabinet==1.0.1 - # via -r requirements/docs.in -sphinxcontrib-qthelp==1.0.3 - # via sphinx -sphinxcontrib-serializinghtml==1.1.5 - # via sphinx -toml==0.10.2 - # via - # pre-commit - # pytest - # tox -tomli==2.0.0 - # via - # mypy - # pep517 +toposort==1.7 + # via pip-compile-multi tox==3.24.5 # via -r requirements/dev.in -types-contextvars==2.4.1 - # via -r requirements/typing.in -types-dataclasses==0.6.4 - # via -r requirements/typing.in -types-setuptools==57.4.7 - # via -r requirements/typing.in -typing-extensions==4.0.1 - # via mypy -urllib3==1.26.8 - # via requests -virtualenv==20.13.0 +virtualenv==20.13.1 # via # pre-commit # tox diff --git a/requirements/docs.txt b/requirements/docs.txt index b6b291ef7b..dd85875326 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -1,8 +1,9 @@ +# SHA1:34fd4ca6516e97c7348e6facdd9c4ebb68209d1c # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/docs.in +# pip-compile-multi # alabaster==0.7.12 # via sphinx @@ -10,7 +11,7 @@ babel==2.9.1 # via sphinx certifi==2021.10.8 # via requests -charset-normalizer==2.0.10 +charset-normalizer==2.0.11 # via requests docutils==0.16 # via @@ -34,7 +35,7 @@ pygments==2.11.2 # via # sphinx # sphinx-tabs -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pytz==2021.3 # via babel @@ -42,7 +43,7 @@ requests==2.27.1 # via sphinx snowballstemmer==2.2.0 # via sphinx -sphinx==4.3.2 +sphinx==4.4.0 # via # -r requirements/docs.in # pallets-sphinx-themes @@ -69,6 +70,3 @@ sphinxcontrib-serializinghtml==1.1.5 # via sphinx urllib3==1.26.8 # via requests - -# The following packages are considered to be unsafe in a requirements file: -# setuptools diff --git a/requirements/tests-pallets-dev.txt b/requirements/tests-pallets-dev.txt index 19894ed65a..35d6cadc7e 100644 --- a/requirements/tests-pallets-dev.txt +++ b/requirements/tests-pallets-dev.txt @@ -1,8 +1,9 @@ +# SHA1:692b640e7f835e536628f76de0afff1296524122 # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/tests-pallets-dev.in +# pip-compile-multi # click @ https://github.com/pallets/click/archive/refs/heads/main.tar.gz # via -r requirements/tests-pallets-dev.in diff --git a/requirements/tests-pallets-min.txt b/requirements/tests-pallets-min.txt index 75b3524cef..64f0e1ce4f 100644 --- a/requirements/tests-pallets-min.txt +++ b/requirements/tests-pallets-min.txt @@ -1,8 +1,9 @@ +# SHA1:4de7d9e6254a945fd97ec10880dd23b6cd43b70d # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/tests-pallets-min.in +# pip-compile-multi # click==8.0.0 # via -r requirements/tests-pallets-min.in diff --git a/requirements/tests.in b/requirements/tests.in index 41936997e0..3fdb425851 100644 --- a/requirements/tests.in +++ b/requirements/tests.in @@ -1,5 +1,5 @@ -pytest -asgiref +pytest<7 +asgiref<3.5 blinker greenlet ; python_version < "3.11" python-dotenv diff --git a/requirements/tests.txt b/requirements/tests.txt index 5733d3c837..2716a7650f 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -1,8 +1,9 @@ +# SHA1:39a475af80093ba5deaee28d9ac0851afb91b6a9 # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/tests.in +# pip-compile-multi # asgiref==3.4.1 # via -r requirements/tests.in @@ -20,7 +21,7 @@ pluggy==1.0.0 # via pytest py==1.11.0 # via pytest -pyparsing==3.0.6 +pyparsing==3.0.7 # via packaging pytest==6.2.5 # via -r requirements/tests.in diff --git a/requirements/typing.txt b/requirements/typing.txt index b63a7cbb4b..81629c9803 100644 --- a/requirements/typing.txt +++ b/requirements/typing.txt @@ -1,8 +1,9 @@ +# SHA1:7cc3f64d4e78db89d81680ac81503d5ac35d31a9 # -# This file is autogenerated by pip-compile with python 3.10 +# This file is autogenerated by pip-compile-multi # To update, run: # -# pip-compile requirements/typing.in +# pip-compile-multi # cffi==1.15.0 # via cryptography @@ -14,13 +15,13 @@ mypy-extensions==0.4.3 # via mypy pycparser==2.21 # via cffi -tomli==2.0.0 +tomli==2.0.1 # via mypy -types-contextvars==2.4.1 +types-contextvars==2.4.2 # via -r requirements/typing.in types-dataclasses==0.6.4 # via -r requirements/typing.in -types-setuptools==57.4.7 +types-setuptools==57.4.9 # via -r requirements/typing.in typing-extensions==4.0.1 # via mypy diff --git a/tests/test_basic.py b/tests/test_basic.py index 2cb967940c..0188cc5446 100644 --- a/tests/test_basic.py +++ b/tests/test_basic.py @@ -3,6 +3,7 @@ import sys import time import uuid +import warnings import weakref from datetime import datetime from platform import python_implementation @@ -1527,8 +1528,11 @@ def subdomain(): rv = client.get("/", "https://dev.local") assert rv.data == b"default" - # suppress Werkzeug 1.0 warning about name mismatch - with pytest.warns(None): + # suppress Werkzeug 0.15 warning about name mismatch + with warnings.catch_warnings(): + warnings.filterwarnings( + "ignore", "Current server name", UserWarning, "flask.app" + ) rv = client.get("/", "http://foo.localhost") assert rv.status_code == 404 @@ -1895,7 +1899,10 @@ def index(): return "", 204 # suppress Werkzeug 0.15 warning about name mismatch - with pytest.warns(None): + with warnings.catch_warnings(): + warnings.filterwarnings( + "ignore", "Current server name", UserWarning, "flask.app" + ) # ip address can't match name rv = client.get("/", "http://127.0.0.1:3000/") assert rv.status_code == 404 if matching else 204 diff --git a/tests/test_reqctx.py b/tests/test_reqctx.py index d18cb50979..1a478917be 100644 --- a/tests/test_reqctx.py +++ b/tests/test_reqctx.py @@ -1,3 +1,5 @@ +import warnings + import pytest import flask @@ -81,7 +83,10 @@ def sub(): ) # suppress Werkzeug 0.15 warning about name mismatch - with pytest.warns(None): + with warnings.catch_warnings(): + warnings.filterwarnings( + "ignore", "Current server name", UserWarning, "flask.app" + ) with app.test_request_context( "/", environ_overrides={"HTTP_HOST": "localhost"} ):