Skip to content

Commit d53a1b6

Browse files
committed
Update xcookie
1 parent 3ae9e42 commit d53a1b6

3 files changed

Lines changed: 58 additions & 28 deletions

File tree

.github/workflows/tests.yml

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ jobs:
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Checkout source
24-
uses: actions/checkout@v4.2.2
24+
uses: actions/checkout@v6.0.2
2525
- name: Set up Python 3.14 for linting
2626
uses: actions/setup-python@v5.6.0
2727
with:
@@ -34,12 +34,11 @@ jobs:
3434
run: |-
3535
# stop the build if there are Python syntax errors or undefined names
3636
flake8 ./src/xdoctest --count --select=E9,F63,F7,F82 --show-source --statistics
37-
- name: Typecheck with mypy
37+
- name: Typecheck
3838
run: |-
39-
python -m pip install mypy
39+
python -m pip install ty
4040
pip install -r requirements/runtime.txt
41-
mypy --install-types --non-interactive ./src/xdoctest
42-
mypy ./src/xdoctest
41+
ty check ./src/xdoctest
4342
build_and_test_sdist:
4443
##
4544
# Build the pure python package from source and test it in the
@@ -49,16 +48,16 @@ jobs:
4948
runs-on: ubuntu-latest
5049
steps:
5150
- name: Checkout source
52-
uses: actions/checkout@v4.2.2
51+
uses: actions/checkout@v6.0.2
5352
- name: Set up Python 3.14
5453
uses: actions/setup-python@v5.6.0
5554
with:
5655
python-version: '3.14'
5756
- name: Upgrade pip
5857
run: |-
5958
python -m pip install pip uv -U
60-
python -m uv pip install -r requirements/tests.txt
61-
python -m uv pip install -r requirements/runtime.txt
59+
python -m pip install --prefer-binary -r requirements/tests.txt
60+
python -m pip install --prefer-binary -r requirements/runtime.txt
6261
- name: Build sdist
6362
shell: bash
6463
run: |-
@@ -69,7 +68,7 @@ jobs:
6968
- name: Install sdist
7069
run: |-
7170
ls -al wheelhouse
72-
python -m uv pip install wheelhouse/xdoctest*.tar.gz -v
71+
python -m pip install --prefer-binary wheelhouse/xdoctest*.tar.gz -v
7372
- name: Test minimal loose sdist
7473
env: {}
7574
run: |-
@@ -101,7 +100,7 @@ jobs:
101100
echo "MOD_DPATH = $MOD_DPATH"
102101
python -m pytest --verbose --cov=xdoctest $MOD_DPATH ../tests
103102
cd ..
104-
- uses: actions/upload-artifact@v4.4.0
103+
- uses: actions/upload-artifact@v6.0.0
105104
name: Upload sdist artifact
106105
with:
107106
name: sdist_wheels
@@ -124,9 +123,9 @@ jobs:
124123
- auto
125124
steps:
126125
- name: Checkout source
127-
uses: actions/checkout@v4.2.2
126+
uses: actions/checkout@v6.0.2
128127
- name: Set up QEMU
129-
uses: docker/setup-qemu-action@v3.0.0
128+
uses: docker/setup-qemu-action@v3.7.0
130129
if: runner.os == 'Linux' && matrix.arch != 'auto'
131130
with:
132131
platforms: all
@@ -144,7 +143,7 @@ jobs:
144143
- name: Show built files
145144
shell: bash
146145
run: ls -la wheelhouse
147-
- uses: actions/upload-artifact@v4.4.0
146+
- uses: actions/upload-artifact@v6.0.0
148147
name: Upload wheels artifact
149148
with:
150149
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
@@ -291,14 +290,14 @@ jobs:
291290
arch: auto
292291
steps:
293292
- name: Checkout source
294-
uses: actions/checkout@v4.2.2
293+
uses: actions/checkout@v6.0.2
295294
- name: Enable MSVC 64bit
296295
uses: ilammy/msvc-dev-cmd@v1
297296
if: ${{ startsWith(matrix.os, 'windows-') }}
298297
with:
299298
arch: ${{ contains(matrix.os, 'arm') && 'arm64' || 'x64' }}
300299
- name: Set up QEMU
301-
uses: docker/setup-qemu-action@v3.0.0
300+
uses: docker/setup-qemu-action@v3.7.0
302301
if: runner.os == 'Linux' && matrix.arch != 'auto'
303302
with:
304303
platforms: all
@@ -327,13 +326,29 @@ jobs:
327326
echo "Installing helpers: setuptools"
328327
python -m uv pip install setuptools>=0.8 setuptools_scm wheel build -U
329328
echo "Installing helpers: tomli and pkginfo"
330-
python -m uv pip install tomli pkginfo
329+
python -m uv pip install tomli pkginfo packaging
331330
export WHEEL_FPATH=$(python -c "if 1:
332331
import pathlib
332+
from packaging import tags
333+
from packaging.utils import parse_wheel_filename
333334
dist_dpath = pathlib.Path('wheelhouse')
334-
candidates = list(dist_dpath.glob('xdoctest*.whl'))
335-
candidates += list(dist_dpath.glob('xdoctest*.tar.gz'))
336-
fpath = sorted(candidates)[-1]
335+
wheels = sorted(dist_dpath.glob('xdoctest*.whl'))
336+
if wheels:
337+
sys_tags = set(tags.sys_tags())
338+
matching = []
339+
for w in wheels:
340+
try:
341+
_, _, _, wheel_tags = parse_wheel_filename(w.name)
342+
except Exception:
343+
continue
344+
if any(t in sys_tags for t in wheel_tags):
345+
matching.append(w)
346+
fpath = sorted(matching or wheels)[-1]
347+
else:
348+
sdists = sorted(dist_dpath.glob('xdoctest*.tar.gz'))
349+
if not sdists:
350+
raise SystemExit('No wheel artifacts found in wheelhouse')
351+
fpath = sdists[-1]
337352
print(str(fpath).replace(chr(92), chr(47)))
338353
")
339354
export MOD_VERSION=$(python -c "if 1:
@@ -348,7 +363,7 @@ jobs:
348363
echo "INSTALL_EXTRAS=$INSTALL_EXTRAS"
349364
echo "UV_RESOLUTION=$UV_RESOLUTION"
350365
echo "MOD_VERSION=$MOD_VERSION"
351-
python -m uv pip install "xdoctest[$INSTALL_EXTRAS]==$MOD_VERSION" -f wheelhouse
366+
python -m pip install --prefer-binary "xdoctest[$INSTALL_EXTRAS]==$MOD_VERSION" -f wheelhouse
352367
echo "Install finished."
353368
- name: Test wheel ${{ matrix.install-extras }}
354369
shell: bash
@@ -396,7 +411,7 @@ jobs:
396411
echo '### The cwd should now have a coverage.xml'
397412
ls -altr
398413
pwd
399-
- uses: codecov/codecov-action@v5.4.3
414+
- uses: codecov/codecov-action@v5.5.2
400415
name: Codecov Upload
401416
with:
402417
file: ./coverage.xml
@@ -410,7 +425,7 @@ jobs:
410425
- build_purepy_wheels
411426
steps:
412427
- name: Checkout source
413-
uses: actions/checkout@v4.2.2
428+
uses: actions/checkout@v6.0.2
414429
- uses: actions/download-artifact@v4.1.8
415430
name: Download wheels
416431
with:
@@ -467,7 +482,7 @@ jobs:
467482
ots stamp wheelhouse/*.whl wheelhouse/*.tar.gz wheelhouse/*.asc
468483
ls -la wheelhouse
469484
twine upload --username __token__ --password "$TWINE_PASSWORD" --repository-url "$TWINE_REPOSITORY_URL" wheelhouse/*.whl wheelhouse/*.tar.gz --skip-existing --verbose || { echo "failed to twine upload" ; exit 1; }
470-
- uses: actions/upload-artifact@v4.4.0
485+
- uses: actions/upload-artifact@v6.0.0
471486
name: Upload deploy artifacts
472487
with:
473488
name: deploy_artifacts
@@ -486,7 +501,7 @@ jobs:
486501
- build_purepy_wheels
487502
steps:
488503
- name: Checkout source
489-
uses: actions/checkout@v4.2.2
504+
uses: actions/checkout@v6.0.2
490505
- uses: actions/download-artifact@v4.1.8
491506
name: Download wheels
492507
with:
@@ -543,7 +558,7 @@ jobs:
543558
ots stamp wheelhouse/*.whl wheelhouse/*.tar.gz wheelhouse/*.asc
544559
ls -la wheelhouse
545560
twine upload --username __token__ --password "$TWINE_PASSWORD" --repository-url "$TWINE_REPOSITORY_URL" wheelhouse/*.whl wheelhouse/*.tar.gz --skip-existing --verbose || { echo "failed to twine upload" ; exit 1; }
546-
- uses: actions/upload-artifact@v4.4.0
561+
- uses: actions/upload-artifact@v6.0.0
547562
name: Upload deploy artifacts
548563
with:
549564
name: deploy_artifacts
@@ -563,7 +578,7 @@ jobs:
563578
- live_deploy
564579
steps:
565580
- name: Checkout source
566-
uses: actions/checkout@v4.2.2
581+
uses: actions/checkout@v6.0.2
567582
- uses: actions/download-artifact@v4.1.8
568583
name: Download artifacts
569584
with:
@@ -617,4 +632,4 @@ jobs:
617632
# --secret=EROTEMIC_TWINE_USERNAME=$EROTEMIC_TWINE_USERNAME \
618633
# --secret=EROTEMIC_CI_SECRET=$EROTEMIC_CI_SECRET \
619634
# --secret=EROTEMIC_TEST_TWINE_USERNAME=$EROTEMIC_TEST_TWINE_USERNAME \
620-
# --secret=EROTEMIC_TEST_TWINE_PASSWORD=$EROTEMIC_TEST_TWINE_PASSWORD
635+
# --secret=EROTEMIC_TEST_TWINE_PASSWORD=$EROTEMIC_TEST_TWINE_PASSWORD

.readthedocs.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,30 @@
77

88
# Required
99
version: 2
10+
1011
build:
1112
os: "ubuntu-24.04"
1213
tools:
1314
python: "3.13"
15+
16+
# Build documentation in the docs/ directory with Sphinx
1417
sphinx:
1518
configuration: docs/source/conf.py
19+
20+
# Build documentation with MkDocs
21+
#mkdocs:
22+
# configuration: mkdocs.yml
23+
24+
# Optionally build your docs in additional formats such as PDF and ePub
1625
formats: all
26+
1727
python:
1828
install:
1929
- requirements: requirements/docs.txt
2030
- method: pip
2131
path: .
32+
#extra_requirements:
33+
# - docs
34+
35+
#conda:
36+
# environment: environment.yml

docs/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def visit_Assign(self, node):
141141

142142

143143
project = 'xdoctest'
144-
copyright = '2025, Jon Crall'
144+
copyright = '2026, Jon Crall'
145145
author = 'Jon Crall'
146146
modname = 'xdoctest'
147147

0 commit comments

Comments
 (0)