Skip to content

Commit be33668

Browse files
committed
Update some test deps and add py 3.14 test grid.
1 parent b305afe commit be33668

9 files changed

Lines changed: 86 additions & 68 deletions

File tree

.editorconfig

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ insert_final_newline = true
1010
indent_size = 4
1111
charset = utf-8
1212

13+
[*.py]
14+
max_line_length = 140
15+
1316
[*.{bat,cmd,ps1}]
1417
end_of_line = crlf
1518

.github/workflows/test.yml

Lines changed: 67 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -60,152 +60,170 @@ jobs:
6060
toxpython: 'python3.11'
6161
tox_env: 'docs'
6262
os: 'ubuntu-latest'
63-
- name: 'py39-pytest84-xdist38-coverage710 (ubuntu)'
63+
- name: 'py39-pytest90-xdist38-coverage713 (ubuntu)'
6464
python: '3.9'
6565
toxpython: 'python3.9'
6666
python_arch: 'x64'
67-
tox_env: 'py39-pytest84-xdist38-coverage710'
67+
tox_env: 'py39-pytest90-xdist38-coverage713'
6868
os: 'ubuntu-latest'
69-
- name: 'py39-pytest84-xdist38-coverage710 (windows)'
69+
- name: 'py39-pytest90-xdist38-coverage713 (windows)'
7070
python: '3.9'
7171
toxpython: 'python3.9'
7272
python_arch: 'x64'
73-
tox_env: 'py39-pytest84-xdist38-coverage710'
73+
tox_env: 'py39-pytest90-xdist38-coverage713'
7474
os: 'windows-latest'
75-
- name: 'py39-pytest84-xdist38-coverage710 (macos)'
75+
- name: 'py39-pytest90-xdist38-coverage713 (macos)'
7676
python: '3.9'
7777
toxpython: 'python3.9'
7878
python_arch: 'arm64'
79-
tox_env: 'py39-pytest84-xdist38-coverage710'
79+
tox_env: 'py39-pytest90-xdist38-coverage713'
8080
os: 'macos-latest'
81-
- name: 'py310-pytest84-xdist38-coverage710 (ubuntu)'
81+
- name: 'py310-pytest90-xdist38-coverage713 (ubuntu)'
8282
python: '3.10'
8383
toxpython: 'python3.10'
8484
python_arch: 'x64'
85-
tox_env: 'py310-pytest84-xdist38-coverage710'
85+
tox_env: 'py310-pytest90-xdist38-coverage713'
8686
os: 'ubuntu-latest'
87-
- name: 'py310-pytest84-xdist38-coverage710 (windows)'
87+
- name: 'py310-pytest90-xdist38-coverage713 (windows)'
8888
python: '3.10'
8989
toxpython: 'python3.10'
9090
python_arch: 'x64'
91-
tox_env: 'py310-pytest84-xdist38-coverage710'
91+
tox_env: 'py310-pytest90-xdist38-coverage713'
9292
os: 'windows-latest'
93-
- name: 'py310-pytest84-xdist38-coverage710 (macos)'
93+
- name: 'py310-pytest90-xdist38-coverage713 (macos)'
9494
python: '3.10'
9595
toxpython: 'python3.10'
9696
python_arch: 'arm64'
97-
tox_env: 'py310-pytest84-xdist38-coverage710'
97+
tox_env: 'py310-pytest90-xdist38-coverage713'
9898
os: 'macos-latest'
99-
- name: 'py311-pytest84-xdist38-coverage710 (ubuntu)'
99+
- name: 'py311-pytest90-xdist38-coverage713 (ubuntu)'
100100
python: '3.11'
101101
toxpython: 'python3.11'
102102
python_arch: 'x64'
103-
tox_env: 'py311-pytest84-xdist38-coverage710'
103+
tox_env: 'py311-pytest90-xdist38-coverage713'
104104
os: 'ubuntu-latest'
105-
- name: 'py311-pytest84-xdist38-coverage710 (windows)'
105+
- name: 'py311-pytest90-xdist38-coverage713 (windows)'
106106
python: '3.11'
107107
toxpython: 'python3.11'
108108
python_arch: 'x64'
109-
tox_env: 'py311-pytest84-xdist38-coverage710'
109+
tox_env: 'py311-pytest90-xdist38-coverage713'
110110
os: 'windows-latest'
111-
- name: 'py311-pytest84-xdist38-coverage710 (macos)'
111+
- name: 'py311-pytest90-xdist38-coverage713 (macos)'
112112
python: '3.11'
113113
toxpython: 'python3.11'
114114
python_arch: 'arm64'
115-
tox_env: 'py311-pytest84-xdist38-coverage710'
115+
tox_env: 'py311-pytest90-xdist38-coverage713'
116116
os: 'macos-latest'
117-
- name: 'py312-pytest84-xdist38-coverage710 (ubuntu)'
117+
- name: 'py312-pytest90-xdist38-coverage713 (ubuntu)'
118118
python: '3.12'
119119
toxpython: 'python3.12'
120120
python_arch: 'x64'
121-
tox_env: 'py312-pytest84-xdist38-coverage710'
121+
tox_env: 'py312-pytest90-xdist38-coverage713'
122122
os: 'ubuntu-latest'
123-
- name: 'py312-pytest84-xdist38-coverage710 (windows)'
123+
- name: 'py312-pytest90-xdist38-coverage713 (windows)'
124124
python: '3.12'
125125
toxpython: 'python3.12'
126126
python_arch: 'x64'
127-
tox_env: 'py312-pytest84-xdist38-coverage710'
127+
tox_env: 'py312-pytest90-xdist38-coverage713'
128128
os: 'windows-latest'
129-
- name: 'py312-pytest84-xdist38-coverage710 (macos)'
129+
- name: 'py312-pytest90-xdist38-coverage713 (macos)'
130130
python: '3.12'
131131
toxpython: 'python3.12'
132132
python_arch: 'arm64'
133-
tox_env: 'py312-pytest84-xdist38-coverage710'
133+
tox_env: 'py312-pytest90-xdist38-coverage713'
134134
os: 'macos-latest'
135-
- name: 'py313-pytest84-xdist38-coverage710 (ubuntu)'
135+
- name: 'py313-pytest90-xdist38-coverage713 (ubuntu)'
136136
python: '3.13'
137137
toxpython: 'python3.13'
138138
python_arch: 'x64'
139-
tox_env: 'py313-pytest84-xdist38-coverage710'
139+
tox_env: 'py313-pytest90-xdist38-coverage713'
140140
os: 'ubuntu-latest'
141-
- name: 'py313-pytest84-xdist38-coverage710 (windows)'
141+
- name: 'py313-pytest90-xdist38-coverage713 (windows)'
142142
python: '3.13'
143143
toxpython: 'python3.13'
144144
python_arch: 'x64'
145-
tox_env: 'py313-pytest84-xdist38-coverage710'
145+
tox_env: 'py313-pytest90-xdist38-coverage713'
146146
os: 'windows-latest'
147-
- name: 'py313-pytest84-xdist38-coverage710 (macos)'
147+
- name: 'py313-pytest90-xdist38-coverage713 (macos)'
148148
python: '3.13'
149149
toxpython: 'python3.13'
150150
python_arch: 'arm64'
151-
tox_env: 'py313-pytest84-xdist38-coverage710'
151+
tox_env: 'py313-pytest90-xdist38-coverage713'
152152
os: 'macos-latest'
153-
- name: 'pypy39-pytest84-xdist38-coverage710 (ubuntu)'
153+
- name: 'py314-pytest90-xdist38-coverage713 (ubuntu)'
154+
python: '3.14'
155+
toxpython: 'python3.14'
156+
python_arch: 'x64'
157+
tox_env: 'py314-pytest90-xdist38-coverage713'
158+
os: 'ubuntu-latest'
159+
- name: 'py314-pytest90-xdist38-coverage713 (windows)'
160+
python: '3.14'
161+
toxpython: 'python3.14'
162+
python_arch: 'x64'
163+
tox_env: 'py314-pytest90-xdist38-coverage713'
164+
os: 'windows-latest'
165+
- name: 'py314-pytest90-xdist38-coverage713 (macos)'
166+
python: '3.14'
167+
toxpython: 'python3.14'
168+
python_arch: 'arm64'
169+
tox_env: 'py314-pytest90-xdist38-coverage713'
170+
os: 'macos-latest'
171+
- name: 'pypy39-pytest90-xdist38-coverage713 (ubuntu)'
154172
python: 'pypy-3.9'
155173
toxpython: 'pypy3.9'
156174
python_arch: 'x64'
157-
tox_env: 'pypy39-pytest84-xdist38-coverage710'
175+
tox_env: 'pypy39-pytest90-xdist38-coverage713'
158176
os: 'ubuntu-latest'
159-
- name: 'pypy39-pytest84-xdist38-coverage710 (windows)'
177+
- name: 'pypy39-pytest90-xdist38-coverage713 (windows)'
160178
python: 'pypy-3.9'
161179
toxpython: 'pypy3.9'
162180
python_arch: 'x64'
163-
tox_env: 'pypy39-pytest84-xdist38-coverage710'
181+
tox_env: 'pypy39-pytest90-xdist38-coverage713'
164182
os: 'windows-latest'
165-
- name: 'pypy39-pytest84-xdist38-coverage710 (macos)'
183+
- name: 'pypy39-pytest90-xdist38-coverage713 (macos)'
166184
python: 'pypy-3.9'
167185
toxpython: 'pypy3.9'
168186
python_arch: 'arm64'
169-
tox_env: 'pypy39-pytest84-xdist38-coverage710'
187+
tox_env: 'pypy39-pytest90-xdist38-coverage713'
170188
os: 'macos-latest'
171-
- name: 'pypy310-pytest84-xdist38-coverage710 (ubuntu)'
189+
- name: 'pypy310-pytest90-xdist38-coverage713 (ubuntu)'
172190
python: 'pypy-3.10'
173191
toxpython: 'pypy3.10'
174192
python_arch: 'x64'
175-
tox_env: 'pypy310-pytest84-xdist38-coverage710'
193+
tox_env: 'pypy310-pytest90-xdist38-coverage713'
176194
os: 'ubuntu-latest'
177-
- name: 'pypy310-pytest84-xdist38-coverage710 (windows)'
195+
- name: 'pypy310-pytest90-xdist38-coverage713 (windows)'
178196
python: 'pypy-3.10'
179197
toxpython: 'pypy3.10'
180198
python_arch: 'x64'
181-
tox_env: 'pypy310-pytest84-xdist38-coverage710'
199+
tox_env: 'pypy310-pytest90-xdist38-coverage713'
182200
os: 'windows-latest'
183-
- name: 'pypy310-pytest84-xdist38-coverage710 (macos)'
201+
- name: 'pypy310-pytest90-xdist38-coverage713 (macos)'
184202
python: 'pypy-3.10'
185203
toxpython: 'pypy3.10'
186204
python_arch: 'arm64'
187-
tox_env: 'pypy310-pytest84-xdist38-coverage710'
205+
tox_env: 'pypy310-pytest90-xdist38-coverage713'
188206
os: 'macos-latest'
189-
- name: 'pypy311-pytest84-xdist38-coverage710 (ubuntu)'
207+
- name: 'pypy311-pytest90-xdist38-coverage713 (ubuntu)'
190208
python: 'pypy-3.11'
191209
toxpython: 'pypy3.11'
192210
python_arch: 'x64'
193-
tox_env: 'pypy311-pytest84-xdist38-coverage710'
211+
tox_env: 'pypy311-pytest90-xdist38-coverage713'
194212
os: 'ubuntu-latest'
195-
- name: 'pypy311-pytest84-xdist38-coverage710 (windows)'
213+
- name: 'pypy311-pytest90-xdist38-coverage713 (windows)'
196214
python: 'pypy-3.11'
197215
toxpython: 'pypy3.11'
198216
python_arch: 'x64'
199-
tox_env: 'pypy311-pytest84-xdist38-coverage710'
217+
tox_env: 'pypy311-pytest90-xdist38-coverage713'
200218
os: 'windows-latest'
201-
- name: 'pypy311-pytest84-xdist38-coverage710 (macos)'
219+
- name: 'pypy311-pytest90-xdist38-coverage713 (macos)'
202220
python: 'pypy-3.11'
203221
toxpython: 'pypy3.11'
204222
python_arch: 'arm64'
205-
tox_env: 'pypy311-pytest84-xdist38-coverage710'
223+
tox_env: 'pypy311-pytest90-xdist38-coverage713'
206224
os: 'macos-latest'
207225
steps:
208-
- uses: actions/checkout@v5
226+
- uses: actions/checkout@v6
209227
with:
210228
fetch-depth: 0
211229
- uses: actions/setup-python@v6

.pre-commit-config.yaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
# To install the git pre-commit hooks run:
2-
# pre-commit install --install-hooks
2+
# prek install --install-hooks --overwrite
33
# To update the versions:
4-
# pre-commit autoupdate
4+
# prek autoupdate
55
exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)'
66
# Note the order is intentional to avoid multiple passes of the hooks
77
repos:
88
- repo: https://github.com/astral-sh/ruff-pre-commit
9-
rev: v0.12.12
9+
rev: v0.15.4
1010
hooks:
1111
- id: ruff
1212
args: [--fix, --exit-non-zero-on-fix, --show-fixes, --unsafe-fixes]

.readthedocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ sphinx:
44
configuration: docs/conf.py
55
formats: all
66
build:
7-
os: ubuntu-22.04
7+
os: ubuntu-24.04
88
tools:
99
python: "3"
1010
python:

CHANGELOG.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
Changelog
33
=========
44

5+
7.0.1 (2026-03-02)
6+
------------------
57

68
* Fixed total coverage computation to always be consistent, regardless of reporting settings.
79
Previously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on

ci/bootstrap.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def main():
5757
# This uses sys.executable the same way that the call in
5858
# cookiecutter-pylibrary/hooks/post_gen_project.py
5959
# invokes this bootstrap.py itself.
60-
for line in subprocess.check_output([sys.executable, '-m', 'tox', '--listenvs'], universal_newlines=True).splitlines()
60+
for line in subprocess.check_output([sys.executable, '-m', 'tox', '--listenvs'], text=True).splitlines()
6161
]
6262
tox_environments = [line for line in tox_environments if line.startswith('py')]
6363
for template in templates_path.rglob('*'):

ci/templates/.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ jobs:
8888
{% endfor %}
8989
{% endfor %}
9090
steps:
91-
- uses: actions/checkout@v5
91+
- uses: actions/checkout@v6
9292
with:
9393
fetch-depth: 0
9494
- uses: actions/setup-python@v6

pyproject.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ classifiers = [
3939
"Programming Language :: Python :: 3.11",
4040
"Programming Language :: Python :: 3.12",
4141
"Programming Language :: Python :: 3.13",
42+
"Programming Language :: Python :: 3.14",
4243
"Programming Language :: Python :: Implementation :: CPython",
4344
"Programming Language :: Python :: Implementation :: PyPy",
4445
"Topic :: Software Development :: Testing",

tox.ini

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,11 @@ envlist =
1515
clean,
1616
check,
1717
docs,
18-
{py39,py310,py311,py312,py313,pypy39,pypy310,pypy311}-{pytest84}-{xdist38}-{coverage710},
18+
{py39,py310,py311,py312,py313,py314,pypy39,pypy310,pypy311}-{pytest90}-{xdist38}-{coverage713},
1919
report
2020
ignore_basepython_conflict = true
2121

2222
[testenv]
23-
basepython =
24-
pypy38: {env:TOXPYTHON:pypy3.8}
25-
pypy39: {env:TOXPYTHON:pypy3.9}
26-
pypy310: {env:TOXPYTHON:pypy3.10}
27-
py38: {env:TOXPYTHON:python3.8}
28-
py39: {env:TOXPYTHON:python3.9}
29-
py310: {env:TOXPYTHON:python3.10}
30-
py311: {env:TOXPYTHON:python3.11}
31-
py312: {env:TOXPYTHON:python3.12}
32-
py313: {env:TOXPYTHON:python3.13}
33-
{bootstrap,clean,check,report,docs}: {env:TOXPYTHON:python3}
3423
extras = testing
3524
setenv =
3625
PYTHONPATH={toxinidir}/tests
@@ -43,6 +32,7 @@ setenv =
4332
pytest82: _DEP_PYTEST=pytest==8.2.2
4433
pytest83: _DEP_PYTEST=pytest==8.3.5
4534
pytest84: _DEP_PYTEST=pytest==8.4.2
35+
pytest90: _DEP_PYTEST=pytest==9.0.2
4636

4737
xdist32: _DEP_PYTESTXDIST=pytest-xdist==3.2.0
4838
xdist33: _DEP_PYTESTXDIST=pytest-xdist==3.3.1
@@ -61,7 +51,11 @@ setenv =
6151
coverage77: _DEP_COVERAGE=coverage==7.7.1
6252
coverage78: _DEP_COVERAGE=coverage==7.8.2
6353
coverage79: _DEP_COVERAGE=coverage==7.9.2
64-
coverage710: _DEP_COVERAGE=coverage==7.10.6
54+
coverage710: _DEP_COVERAGE=coverage==7.10.7
55+
coverage711: _DEP_COVERAGE=coverage==7.11.3
56+
coverage712: _DEP_COVERAGE=coverage==7.12.0
57+
coverage713: _DEP_COVERAGE=coverage==7.13.4
58+
6559
# For testing against a coverage.py working tree.
6660
coveragedev: _DEP_COVERAGE=-e{env:COVERAGE_HOME}
6761
passenv =

0 commit comments

Comments
 (0)