From 35c7aff1c41f559e4f66a5bb9fd39e366e20686a Mon Sep 17 00:00:00 2001 From: Samuel Colvin Date: Thu, 10 Nov 2022 17:16:07 +0000 Subject: [PATCH] Use 3.10 for all reqs resolution and add a Makefile target for re-locking (#4748) --- .github/workflows/ci.yml | 5 +-- Makefile | 12 ++++++ requirements/docs.in | 6 --- requirements/docs.txt | 79 ++++++++++------------------------ requirements/linting.in | 3 +- requirements/linting.txt | 22 +++++----- requirements/pyproject-all.txt | 8 ++-- requirements/pyproject-min.txt | 4 +- requirements/testing-extra.in | 4 +- requirements/testing-extra.txt | 16 +++---- requirements/testing.txt | 29 +++++-------- 11 files changed, 74 insertions(+), 114 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fbd3900..d7bfa24 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -72,12 +72,11 @@ jobs: docs-build ${{ runner.os }} ${{ env.pythonLocation }} - ${{ hashFiles('requirements/pyproject-all.txt') }} - ${{ hashFiles('requirements/docs.txt') }} + ${{ hashFiles('requirements/*') }} - name: install if: steps.cache.outputs.cache-hit != 'true' - run: pip install -r requirements/pyproject-all.txt -r requirements/docs.txt . + run: pip install -r requirements/all.txt . - name: build site run: make docs diff --git a/Makefile b/Makefile index ed9079d..5ae1c7b 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,18 @@ install: pip install -r requirements/all.txt pip install -e . +.PHONY: refresh-lockfiles +refresh-lockfiles: + @echo "Updating requirements/*.txt files using pip-compile" + find requirements/ -name '*.txt' ! -name 'all.txt' -type f -delete + pip-compile -q --resolver backtracking -o requirements/docs.txt requirements/docs.in + pip-compile -q --resolver backtracking -o requirements/linting.txt requirements/linting.in + pip-compile -q --resolver backtracking -o requirements/testing.txt requirements/testing.in + pip-compile -q --resolver backtracking -o requirements/testing-extra.txt requirements/testing-extra.in + pip-compile -q --resolver backtracking -o requirements/pyproject-min.txt pyproject.toml + pip-compile -q --resolver backtracking -o requirements/pyproject-all.txt pyproject.toml --extra=email + pip install --dry-run -r requirements/all.txt + .PHONY: format format: isort $(sources) diff --git a/requirements/docs.in b/requirements/docs.in index 67bc8ab..348bfa4 100644 --- a/requirements/docs.in +++ b/requirements/docs.in @@ -1,16 +1,10 @@ autoflake ansi2html -devtools -flake8 -flake8-quotes -flake8-pyproject -hypothesis markdown-include mdx-truly-sane-lists mkdocs mkdocs-exclude mkdocs-material -pyupgrade orjson sqlalchemy ujson diff --git a/requirements/docs.txt b/requirements/docs.txt index 5d0488c..488b2df 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -2,41 +2,24 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/docs.txt requirements/docs.in +# pip-compile --output-file=requirements/docs.txt --resolver=backtracking requirements/docs.in # ansi2html==1.8.0 # via -r requirements/docs.in -asttokens==2.0.8 - # via devtools -attrs==22.1.0 - # via hypothesis -autoflake==1.5.3 +autoflake==1.7.7 # via -r requirements/docs.in +certifi==2022.9.24 + # via requests +charset-normalizer==2.1.1 + # via requests click==8.1.3 # via mkdocs -devtools==0.9.0 - # via -r requirements/docs.in -exceptiongroup==1.0.0rc9 - # via hypothesis -executing==0.10.0 - # via devtools -flake8==5.0.4 - # via - # -r requirements/docs.in - # flake8-pyproject - # flake8-quotes -flake8-pyproject==1.1.0.post0 - # via -r requirements/docs.in -flake8-quotes==3.3.1 - # via -r requirements/docs.in ghp-import==2.1.0 # via mkdocs -greenlet==1.1.3 +greenlet==2.0.1 # via sqlalchemy -hypothesis==6.54.4 - # via -r requirements/docs.in -importlib-metadata==4.12.0 - # via mkdocs +idna==3.4 + # via requests jinja2==3.1.2 # via # mkdocs @@ -52,68 +35,52 @@ markdown-include==0.7.0 # via -r requirements/docs.in markupsafe==2.1.1 # via jinja2 -mccabe==0.7.0 - # via flake8 mdx-truly-sane-lists==1.3 # via -r requirements/docs.in mergedeep==1.3.4 # via mkdocs -mkdocs==1.3.1 +mkdocs==1.4.2 # via # -r requirements/docs.in # mkdocs-exclude # mkdocs-material mkdocs-exclude==1.0.2 # via -r requirements/docs.in -mkdocs-material==8.4.2 +mkdocs-material==8.5.9 # via -r requirements/docs.in -mkdocs-material-extensions==1.0.3 +mkdocs-material-extensions==1.1 # via mkdocs-material -orjson==3.8.0 +orjson==3.8.1 # via -r requirements/docs.in packaging==21.3 # via mkdocs -pycodestyle==2.9.1 - # via flake8 pyflakes==2.5.0 - # via - # autoflake - # flake8 + # via autoflake pygments==2.13.0 # via mkdocs-material -pymdown-extensions==9.5 +pymdown-extensions==9.8 # via mkdocs-material pyparsing==3.0.9 # via packaging python-dateutil==2.8.2 # via ghp-import -pyupgrade==2.37.3 - # via -r requirements/docs.in pyyaml==6.0 # via # mkdocs # pyyaml-env-tag pyyaml-env-tag==0.1 # via mkdocs +requests==2.28.1 + # via mkdocs-material six==1.16.0 - # via - # asttokens - # python-dateutil -sortedcontainers==2.4.0 - # via hypothesis -sqlalchemy==1.4.40 + # via python-dateutil +sqlalchemy==1.4.43 # via -r requirements/docs.in -tokenize-rt==4.2.1 - # via pyupgrade -toml==0.10.2 - # via autoflake tomli==2.0.1 - # via flake8-pyproject -typing-extensions==4.3.0 - # via -r requirements/docs.in -ujson==5.4.0 + # via autoflake +ujson==5.5.0 # via -r requirements/docs.in +urllib3==1.26.12 + # via requests watchdog==2.1.9 # via mkdocs -zipp==3.8.1 - # via importlib-metadata diff --git a/requirements/linting.in b/requirements/linting.in index b3b1a08..5e78bd6 100644 --- a/requirements/linting.in +++ b/requirements/linting.in @@ -8,6 +8,7 @@ isort # pydantic-core is required for mypy pydantic-core pyupgrade -mypy +# pinned, see #4735 +mypy==0.982 pre-commit ruff diff --git a/requirements/linting.txt b/requirements/linting.txt index f04ca6f..a723816 100644 --- a/requirements/linting.txt +++ b/requirements/linting.txt @@ -2,13 +2,13 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/linting.txt requirements/linting.in +# pip-compile --output-file=requirements/linting.txt --resolver=backtracking requirements/linting.in # annotated-types==0.4.0 # via -r requirements/linting.in attrs==22.1.0 # via hypothesis -black==22.8.0 +black==22.10.0 # via -r requirements/linting.in cfgv==3.3.1 # via pre-commit @@ -16,7 +16,7 @@ click==8.1.3 # via black distlib==0.3.6 # via virtualenv -exceptiongroup==1.0.0rc9 +exceptiongroup==1.0.1 # via hypothesis filelock==3.8.0 # via virtualenv @@ -29,9 +29,9 @@ flake8-pyproject==1.1.0.post0 # via -r requirements/linting.in flake8-quotes==3.3.1 # via -r requirements/linting.in -hypothesis==6.54.4 +hypothesis==6.56.4 # via -r requirements/linting.in -identify==2.5.3 +identify==2.5.8 # via pre-commit isort==5.10.1 # via -r requirements/linting.in @@ -47,7 +47,7 @@ nodeenv==1.7.0 # via pre-commit pathspec==0.10.1 # via black -platformdirs==2.5.2 +platformdirs==2.5.3 # via # black # virtualenv @@ -59,15 +59,15 @@ pydantic-core==0.7.1 # via -r requirements/linting.in pyflakes==2.5.0 # via flake8 -pyupgrade==2.37.3 +pyupgrade==3.2.2 # via -r requirements/linting.in pyyaml==6.0 # via pre-commit -ruff==0.0.105 +ruff==0.0.109 # via -r requirements/linting.in sortedcontainers==2.4.0 # via hypothesis -tokenize-rt==4.2.1 +tokenize-rt==5.0.0 # via pyupgrade toml==0.10.2 # via pre-commit @@ -76,11 +76,11 @@ tomli==2.0.1 # black # flake8-pyproject # mypy -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # mypy # pydantic-core -virtualenv==20.16.4 +virtualenv==20.16.6 # via pre-commit # The following packages are considered to be unsafe in a requirements file: diff --git a/requirements/pyproject-all.txt b/requirements/pyproject-all.txt index 08c3f82..86f1548 100644 --- a/requirements/pyproject-all.txt +++ b/requirements/pyproject-all.txt @@ -2,19 +2,19 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --extra=email --output-file=requirements/pyproject-all.txt pyproject.toml +# pip-compile --extra=email --output-file=requirements/pyproject-all.txt --resolver=backtracking pyproject.toml # annotated-types==0.4.0 # via pydantic (pyproject.toml) dnspython==2.2.1 # via email-validator -email-validator==1.2.1 +email-validator==1.3.0 # via pydantic (pyproject.toml) -idna==3.3 +idna==3.4 # via email-validator pydantic-core==0.7.1 # via pydantic (pyproject.toml) -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # pydantic (pyproject.toml) # pydantic-core diff --git a/requirements/pyproject-min.txt b/requirements/pyproject-min.txt index 3a40f92..dbf716a 100644 --- a/requirements/pyproject-min.txt +++ b/requirements/pyproject-min.txt @@ -2,13 +2,13 @@ # This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/pyproject-min.txt pyproject.toml +# pip-compile --output-file=requirements/pyproject-min.txt --resolver=backtracking pyproject.toml # annotated-types==0.4.0 # via pydantic (pyproject.toml) pydantic-core==0.7.1 # via pydantic (pyproject.toml) -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via # pydantic (pyproject.toml) # pydantic-core diff --git a/requirements/testing-extra.in b/requirements/testing-extra.in index 598f936..b412a64 100644 --- a/requirements/testing-extra.in +++ b/requirements/testing-extra.in @@ -1,4 +1,4 @@ devtools hypothesis -mypy -typed-ast;python_version<'3.8' +# pinned, see #4735 +mypy==0.982 diff --git a/requirements/testing-extra.txt b/requirements/testing-extra.txt index dc78150..8f656dc 100644 --- a/requirements/testing-extra.txt +++ b/requirements/testing-extra.txt @@ -1,20 +1,20 @@ # -# This file is autogenerated by pip-compile with python 3.7 +# This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/testing-extra.txt requirements/testing-extra.in +# pip-compile --output-file=requirements/testing-extra.txt --resolver=backtracking requirements/testing-extra.in # -asttokens==2.0.8 +asttokens==2.1.0 # via devtools attrs==22.1.0 # via hypothesis devtools==0.9.0 # via -r requirements/testing-extra.in -exceptiongroup==1.0.0rc9 +exceptiongroup==1.0.1 # via hypothesis executing==0.10.0 # via devtools -hypothesis==6.54.4 +hypothesis==6.56.4 # via -r requirements/testing-extra.in mypy==0.982 # via -r requirements/testing-extra.in @@ -26,9 +26,5 @@ sortedcontainers==2.4.0 # via hypothesis tomli==2.0.1 # via mypy -typed-ast==1.5.4 ; python_version < "3.8" - # via - # -r requirements/testing-extra.in - # mypy -typing-extensions==4.3.0 +typing-extensions==4.4.0 # via mypy diff --git a/requirements/testing.txt b/requirements/testing.txt index 7b03d1c..02ab269 100644 --- a/requirements/testing.txt +++ b/requirements/testing.txt @@ -1,43 +1,39 @@ # -# This file is autogenerated by pip-compile with python 3.7 +# This file is autogenerated by pip-compile with python 3.10 # To update, run: # -# pip-compile --output-file=requirements/testing.txt requirements/testing.in +# pip-compile --output-file=requirements/testing.txt --resolver=backtracking requirements/testing.in # attrs==22.1.0 # via pytest commonmark==0.9.1 # via rich -coverage[toml]==6.4.4 +coverage[toml]==6.5.0 # via -r requirements/testing.in dirty-equals==0.5.0 # via -r requirements/testing.in -importlib-metadata==5.0.0 - # via - # pluggy - # pytest +exceptiongroup==1.0.1 + # via pytest iniconfig==1.1.1 # via pytest packaging==21.3 # via pytest pluggy==1.0.0 # via pytest -py==1.11.0 - # via pytest pygments==2.13.0 # via rich pyparsing==3.0.9 # via packaging -pytest==7.1.3 +pytest==7.2.0 # via # -r requirements/testing.in # pytest-mock # pytest-pretty -pytest-mock==3.8.2 +pytest-mock==3.10.0 # via -r requirements/testing.in pytest-pretty==0.0.1 # via -r requirements/testing.in -pytz==2022.4 +pytz==2022.6 # via dirty-equals rich==12.6.0 # via pytest-pretty @@ -45,10 +41,5 @@ tomli==2.0.1 # via # coverage # pytest -typing-extensions==4.3.0 - # via - # dirty-equals - # importlib-metadata - # rich -zipp==3.8.1 - # via importlib-metadata +typing-extensions==4.4.0 + # via dirty-equals