Skip to content

Commit e7ba7bb

Browse files
committed
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
1 parent 8e5b0e3 commit e7ba7bb

7 files changed

Lines changed: 141 additions & 33 deletions

File tree

‎CONTRIBUTING.md‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,14 +45,14 @@ python -m venv venv
4545
#### (4) Install the test requirements and the project
4646

4747
```bash
48-
python -m pip install -r test-requirements.txt
48+
python -m pip install -r dev-requirements.txt
4949
python -m pip install -e .
5050
hash -r # This resets shell PATH cache, not necessary on Windows
5151
```
5252

5353
> **Note**
5454
> You'll need Python 3.10 or higher to install all requirements listed in
55-
> test-requirements.txt
55+
> dev-requirements.txt
5656
5757
### Running tests
5858

‎MANIFEST.in‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ prune mypyc/doc/build
3535
# files necessary for testing sdist
3636
include mypy-requirements.txt
3737
include build-requirements.txt
38+
include dev-requirements.in
39+
include dev-requirements.txt
3840
include test-requirements.in
3941
include test-requirements.txt
4042
include mypy_self_check.ini

‎dev-requirements.in‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# If you change this file (or {mypy,build,test}-requirements.txt), please install pip-tools and run:
2+
# pip-compile --output-file=dev-requirements.txt --strip-extras --allow-unsafe dev-requirements.in
3+
4+
-r mypy-requirements.txt
5+
-r build-requirements.txt
6+
-r test-requirements.txt
7+
pre_commit>=3.5.0

‎dev-requirements.txt‎

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.10
3+
# by the following command:
4+
#
5+
# pip-compile --allow-unsafe --no-index --output-file=dev-requirements.txt --strip-extras dev-requirements.in
6+
#
7+
ast-serialize==0.11.2
8+
# via
9+
# -r mypy-requirements.txt
10+
# -r test-requirements.txt
11+
attrs==26.1.0
12+
# via -r test-requirements.txt
13+
cfgv==3.5.0
14+
# via pre-commit
15+
coverage==7.15.4
16+
# via
17+
# -r test-requirements.txt
18+
# pytest-cov
19+
distlib==0.4.3
20+
# via virtualenv
21+
exceptiongroup==1.3.1
22+
# via
23+
# -r test-requirements.txt
24+
# pytest
25+
execnet==2.1.2
26+
# via
27+
# -r test-requirements.txt
28+
# pytest-xdist
29+
filelock==3.32.3
30+
# via
31+
# -r test-requirements.txt
32+
# python-discovery
33+
# virtualenv
34+
identify==2.6.19
35+
# via pre-commit
36+
iniconfig==2.3.0
37+
# via
38+
# -r test-requirements.txt
39+
# pytest
40+
librt==0.15.0 ; platform_python_implementation != "PyPy"
41+
# via
42+
# -r mypy-requirements.txt
43+
# -r test-requirements.txt
44+
lxml==6.1.2 ; python_version < "3.16"
45+
# via -r test-requirements.txt
46+
mypy-extensions==1.1.0
47+
# via
48+
# -r mypy-requirements.txt
49+
# -r test-requirements.txt
50+
nodeenv==1.10.0
51+
# via pre-commit
52+
packaging==26.3
53+
# via
54+
# -r test-requirements.txt
55+
# pytest
56+
pathspec==1.1.1
57+
# via
58+
# -r mypy-requirements.txt
59+
# -r test-requirements.txt
60+
platformdirs==4.11.9
61+
# via virtualenv
62+
pluggy==1.6.0
63+
# via
64+
# -r test-requirements.txt
65+
# pytest
66+
# pytest-cov
67+
pre-commit==4.6.2
68+
# via -r dev-requirements.in
69+
psutil==7.2.2
70+
# via -r test-requirements.txt
71+
pygments==2.21.0
72+
# via
73+
# -r test-requirements.txt
74+
# pytest
75+
pytest==9.1.1
76+
# via
77+
# -r test-requirements.txt
78+
# pytest-cov
79+
# pytest-xdist
80+
pytest-cov==7.1.0
81+
# via -r test-requirements.txt
82+
pytest-xdist==3.8.0
83+
# via -r test-requirements.txt
84+
python-discovery==1.6.0
85+
# via virtualenv
86+
pyyaml==6.0.3
87+
# via pre-commit
88+
tomli==2.4.1 ; python_version < "3.11"
89+
# via
90+
# -r mypy-requirements.txt
91+
# -r test-requirements.txt
92+
# coverage
93+
# pytest
94+
types-psutil==7.2.2.20260518
95+
# via
96+
# -r build-requirements.txt
97+
# -r test-requirements.txt
98+
types-setuptools==84.0.0.20260812
99+
# via
100+
# -r build-requirements.txt
101+
# -r test-requirements.txt
102+
typing-extensions==4.16.0 ; python_version < "3.15"
103+
# via
104+
# -r mypy-requirements.txt
105+
# -r test-requirements.txt
106+
# exceptiongroup
107+
# virtualenv
108+
virtualenv==21.7.10
109+
# via pre-commit
110+
111+
# The following packages are considered to be unsafe in a requirements file:
112+
setuptools==84.0.0
113+
# via -r test-requirements.txt

‎mypyc/doc/dev-intro.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,7 @@ $ make -s -j16
450450
$ ./python -m venv ~/<venv-location> # Use ./python.exe -m venv ... on macOS
451451
$ source ~/<venv-location>/bin/activate
452452
$ cd <mypy-repo-dir>
453-
$ pip install -r test-requirements.txt
453+
$ pip install -r dev-requirements.txt
454454
```
455455

456456
### IR Tests

‎test-requirements.in‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# If you change this file (or mypy-requirements.txt or build-requirements.txt), please run:
1+
# If you change this file (or {mypy,build,dev}-requirements.txt), please install pip-tools and run:
22
# pip-compile --output-file=test-requirements.txt --strip-extras --allow-unsafe test-requirements.in
33

44
-r mypy-requirements.txt
@@ -12,4 +12,3 @@ pytest-xdist>=1.34.0
1212
pytest-cov>=2.10.0
1313
setuptools>=77.0.3
1414
tomli>=1.1.0 # needed even on py311+ so the self check passes with --python-version 3.10
15-
pre_commit>=3.5.0

‎test-requirements.txt‎

Lines changed: 15 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,21 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.14
2+
# This file is autogenerated by pip-compile with Python 3.10
33
# by the following command:
44
#
5-
# pip-compile --allow-unsafe --output-file=test-requirements.txt --strip-extras test-requirements.in
5+
# pip-compile --allow-unsafe --no-index --output-file=test-requirements.txt --strip-extras test-requirements.in
66
#
77
ast-serialize==0.11.2
88
# via -r mypy-requirements.txt
99
attrs==26.1.0
1010
# via -r test-requirements.in
11-
cfgv==3.5.0
12-
# via pre-commit
1311
coverage==7.15.4
1412
# via pytest-cov
15-
distlib==0.4.3
16-
# via virtualenv
13+
exceptiongroup==1.3.1
14+
# via pytest
1715
execnet==2.1.2
1816
# via pytest-xdist
1917
filelock==3.32.3
20-
# via
21-
# -r test-requirements.in
22-
# python-discovery
23-
# virtualenv
24-
identify==2.6.19
25-
# via pre-commit
18+
# via -r test-requirements.in
2619
iniconfig==2.3.0
2720
# via pytest
2821
librt==0.15.0 ; platform_python_implementation != "PyPy"
@@ -31,20 +24,14 @@ lxml==6.1.2 ; python_version < "3.16"
3124
# via -r test-requirements.in
3225
mypy-extensions==1.1.0
3326
# via -r mypy-requirements.txt
34-
nodeenv==1.10.0
35-
# via pre-commit
3627
packaging==26.3
3728
# via pytest
3829
pathspec==1.1.1
3930
# via -r mypy-requirements.txt
40-
platformdirs==4.11.3
41-
# via virtualenv
4231
pluggy==1.6.0
4332
# via
4433
# pytest
4534
# pytest-cov
46-
pre-commit==4.6.2
47-
# via -r test-requirements.in
4835
psutil==7.2.2
4936
# via -r test-requirements.in
5037
pygments==2.21.0
@@ -58,20 +45,20 @@ pytest-cov==7.1.0
5845
# via -r test-requirements.in
5946
pytest-xdist==3.8.0
6047
# via -r test-requirements.in
61-
python-discovery==1.5.2
62-
# via virtualenv
63-
pyyaml==6.0.3
64-
# via pre-commit
65-
tomli==2.4.1
66-
# via -r test-requirements.in
48+
tomli==2.4.1 ; python_version < "3.11"
49+
# via
50+
# -r mypy-requirements.txt
51+
# -r test-requirements.in
52+
# coverage
53+
# pytest
6754
types-psutil==7.2.2.20260518
6855
# via -r build-requirements.txt
6956
types-setuptools==84.0.0.20260812
7057
# via -r build-requirements.txt
71-
typing-extensions==4.16.0
72-
# via -r mypy-requirements.txt
73-
virtualenv==21.7.4
74-
# via pre-commit
58+
typing-extensions==4.16.0 ; python_version < "3.15"
59+
# via
60+
# -r mypy-requirements.txt
61+
# exceptiongroup
7562

7663
# The following packages are considered to be unsafe in a requirements file:
7764
setuptools==84.0.0

0 commit comments

Comments
 (0)