From e7ba7bb8a17464669b27a7a2d38bb7fd89bdee18 Mon Sep 17 00:00:00 2001 From: "Michael R. Crusoe" Date: Thu, 17 Sep 2026 08:29:28 +0200 Subject: [PATCH] split out pre-commit from test-requirements to lighten CI load especially on systems like riscv64 that don't have wheels available for the pyyaml dependency of pre-commit --- CONTRIBUTING.md | 4 +- MANIFEST.in | 2 + dev-requirements.in | 7 +++ dev-requirements.txt | 113 +++++++++++++++++++++++++++++++++++++++++ mypyc/doc/dev-intro.md | 2 +- test-requirements.in | 3 +- test-requirements.txt | 43 ++++++---------- 7 files changed, 141 insertions(+), 33 deletions(-) create mode 100644 dev-requirements.in create mode 100644 dev-requirements.txt diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f4c1dcc89c16f..0285601543b55 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -45,14 +45,14 @@ python -m venv venv #### (4) Install the test requirements and the project ```bash -python -m pip install -r test-requirements.txt +python -m pip install -r dev-requirements.txt python -m pip install -e . hash -r # This resets shell PATH cache, not necessary on Windows ``` > **Note** > You'll need Python 3.10 or higher to install all requirements listed in -> test-requirements.txt +> dev-requirements.txt ### Running tests diff --git a/MANIFEST.in b/MANIFEST.in index cd3d6119d2c1c..b9565b8871119 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -35,6 +35,8 @@ prune mypyc/doc/build # files necessary for testing sdist include mypy-requirements.txt include build-requirements.txt +include dev-requirements.in +include dev-requirements.txt include test-requirements.in include test-requirements.txt include mypy_self_check.ini diff --git a/dev-requirements.in b/dev-requirements.in new file mode 100644 index 0000000000000..6962e40ededc2 --- /dev/null +++ b/dev-requirements.in @@ -0,0 +1,7 @@ +# If you change this file (or {mypy,build,test}-requirements.txt), please install pip-tools and run: +# pip-compile --output-file=dev-requirements.txt --strip-extras --allow-unsafe dev-requirements.in + +-r mypy-requirements.txt +-r build-requirements.txt +-r test-requirements.txt +pre_commit>=3.5.0 diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 0000000000000..d2f0b5a5fec12 --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,113 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --allow-unsafe --no-index --output-file=dev-requirements.txt --strip-extras dev-requirements.in +# +ast-serialize==0.11.2 + # via + # -r mypy-requirements.txt + # -r test-requirements.txt +attrs==26.1.0 + # via -r test-requirements.txt +cfgv==3.5.0 + # via pre-commit +coverage==7.15.4 + # via + # -r test-requirements.txt + # pytest-cov +distlib==0.4.3 + # via virtualenv +exceptiongroup==1.3.1 + # via + # -r test-requirements.txt + # pytest +execnet==2.1.2 + # via + # -r test-requirements.txt + # pytest-xdist +filelock==3.32.3 + # via + # -r test-requirements.txt + # python-discovery + # virtualenv +identify==2.6.19 + # via pre-commit +iniconfig==2.3.0 + # via + # -r test-requirements.txt + # pytest +librt==0.15.0 ; platform_python_implementation != "PyPy" + # via + # -r mypy-requirements.txt + # -r test-requirements.txt +lxml==6.1.2 ; python_version < "3.16" + # via -r test-requirements.txt +mypy-extensions==1.1.0 + # via + # -r mypy-requirements.txt + # -r test-requirements.txt +nodeenv==1.10.0 + # via pre-commit +packaging==26.3 + # via + # -r test-requirements.txt + # pytest +pathspec==1.1.1 + # via + # -r mypy-requirements.txt + # -r test-requirements.txt +platformdirs==4.11.9 + # via virtualenv +pluggy==1.6.0 + # via + # -r test-requirements.txt + # pytest + # pytest-cov +pre-commit==4.6.2 + # via -r dev-requirements.in +psutil==7.2.2 + # via -r test-requirements.txt +pygments==2.21.0 + # via + # -r test-requirements.txt + # pytest +pytest==9.1.1 + # via + # -r test-requirements.txt + # pytest-cov + # pytest-xdist +pytest-cov==7.1.0 + # via -r test-requirements.txt +pytest-xdist==3.8.0 + # via -r test-requirements.txt +python-discovery==1.6.0 + # via virtualenv +pyyaml==6.0.3 + # via pre-commit +tomli==2.4.1 ; python_version < "3.11" + # via + # -r mypy-requirements.txt + # -r test-requirements.txt + # coverage + # pytest +types-psutil==7.2.2.20260518 + # via + # -r build-requirements.txt + # -r test-requirements.txt +types-setuptools==84.0.0.20260812 + # via + # -r build-requirements.txt + # -r test-requirements.txt +typing-extensions==4.16.0 ; python_version < "3.15" + # via + # -r mypy-requirements.txt + # -r test-requirements.txt + # exceptiongroup + # virtualenv +virtualenv==21.7.10 + # via pre-commit + +# The following packages are considered to be unsafe in a requirements file: +setuptools==84.0.0 + # via -r test-requirements.txt diff --git a/mypyc/doc/dev-intro.md b/mypyc/doc/dev-intro.md index 5b248214a3ebc..acd4eb9b0c6db 100644 --- a/mypyc/doc/dev-intro.md +++ b/mypyc/doc/dev-intro.md @@ -450,7 +450,7 @@ $ make -s -j16 $ ./python -m venv ~/ # Use ./python.exe -m venv ... on macOS $ source ~//bin/activate $ cd -$ pip install -r test-requirements.txt +$ pip install -r dev-requirements.txt ``` ### IR Tests diff --git a/test-requirements.in b/test-requirements.in index 7d1a918549d81..5a6a78c0f1742 100644 --- a/test-requirements.in +++ b/test-requirements.in @@ -1,4 +1,4 @@ -# If you change this file (or mypy-requirements.txt or build-requirements.txt), please run: +# If you change this file (or {mypy,build,dev}-requirements.txt), please install pip-tools and run: # pip-compile --output-file=test-requirements.txt --strip-extras --allow-unsafe test-requirements.in -r mypy-requirements.txt @@ -12,4 +12,3 @@ pytest-xdist>=1.34.0 pytest-cov>=2.10.0 setuptools>=77.0.3 tomli>=1.1.0 # needed even on py311+ so the self check passes with --python-version 3.10 -pre_commit>=3.5.0 diff --git a/test-requirements.txt b/test-requirements.txt index 825b0836f3ad5..8230f7d8df709 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -1,28 +1,21 @@ # -# This file is autogenerated by pip-compile with Python 3.14 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --allow-unsafe --output-file=test-requirements.txt --strip-extras test-requirements.in +# pip-compile --allow-unsafe --no-index --output-file=test-requirements.txt --strip-extras test-requirements.in # ast-serialize==0.11.2 # via -r mypy-requirements.txt attrs==26.1.0 # via -r test-requirements.in -cfgv==3.5.0 - # via pre-commit coverage==7.15.4 # via pytest-cov -distlib==0.4.3 - # via virtualenv +exceptiongroup==1.3.1 + # via pytest execnet==2.1.2 # via pytest-xdist filelock==3.32.3 - # via - # -r test-requirements.in - # python-discovery - # virtualenv -identify==2.6.19 - # via pre-commit + # via -r test-requirements.in iniconfig==2.3.0 # via pytest librt==0.15.0 ; platform_python_implementation != "PyPy" @@ -31,20 +24,14 @@ lxml==6.1.2 ; python_version < "3.16" # via -r test-requirements.in mypy-extensions==1.1.0 # via -r mypy-requirements.txt -nodeenv==1.10.0 - # via pre-commit packaging==26.3 # via pytest pathspec==1.1.1 # via -r mypy-requirements.txt -platformdirs==4.11.3 - # via virtualenv pluggy==1.6.0 # via # pytest # pytest-cov -pre-commit==4.6.2 - # via -r test-requirements.in psutil==7.2.2 # via -r test-requirements.in pygments==2.21.0 @@ -58,20 +45,20 @@ pytest-cov==7.1.0 # via -r test-requirements.in pytest-xdist==3.8.0 # via -r test-requirements.in -python-discovery==1.5.2 - # via virtualenv -pyyaml==6.0.3 - # via pre-commit -tomli==2.4.1 - # via -r test-requirements.in +tomli==2.4.1 ; python_version < "3.11" + # via + # -r mypy-requirements.txt + # -r test-requirements.in + # coverage + # pytest types-psutil==7.2.2.20260518 # via -r build-requirements.txt types-setuptools==84.0.0.20260812 # via -r build-requirements.txt -typing-extensions==4.16.0 - # via -r mypy-requirements.txt -virtualenv==21.7.4 - # via pre-commit +typing-extensions==4.16.0 ; python_version < "3.15" + # via + # -r mypy-requirements.txt + # exceptiongroup # The following packages are considered to be unsafe in a requirements file: setuptools==84.0.0