Skip to content

Commit 8ebdd8f

Browse files
committed
Merge branch 'main' into dh/url-efficiency
2 parents 85cc156 + 4d23017 commit 8ebdd8f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+2968
-2296
lines changed

.github/workflows/ci.yml

Lines changed: 65 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- uses: taiki-e/install-action@cargo-llvm-cov
2626

2727
- name: install uv
28-
uses: astral-sh/setup-uv@v6
28+
uses: astral-sh/setup-uv@v7
2929

3030
- name: install deps
3131
run: uv sync --group testing
@@ -92,7 +92,7 @@ jobs:
9292
key: test-v3
9393

9494
- name: install uv
95-
uses: astral-sh/setup-uv@v6
95+
uses: astral-sh/setup-uv@v7
9696
with:
9797
python-version: ${{ matrix.python-version }}
9898

@@ -130,7 +130,7 @@ jobs:
130130
uses: Swatinem/rust-cache@v2
131131

132132
- name: install uv
133-
uses: astral-sh/setup-uv@v6
133+
uses: astral-sh/setup-uv@v7
134134

135135
- name: install deps
136136
run: uv sync --group testing
@@ -153,7 +153,7 @@ jobs:
153153
- uses: actions/checkout@v5
154154

155155
- name: install uv
156-
uses: astral-sh/setup-uv@v6
156+
uses: astral-sh/setup-uv@v7
157157

158158
- name: install deps
159159
run: uv sync --group testing
@@ -196,7 +196,7 @@ jobs:
196196
- uses: actions/checkout@v5
197197

198198
- name: install uv
199-
uses: astral-sh/setup-uv@v6
199+
uses: astral-sh/setup-uv@v7
200200
with:
201201
python-version: ${{ matrix.python-version }}
202202

@@ -235,7 +235,7 @@ jobs:
235235
uses: Swatinem/rust-cache@v2
236236

237237
- name: install uv
238-
uses: astral-sh/setup-uv@v6
238+
uses: astral-sh/setup-uv@v7
239239

240240
- name: install deps
241241
run: |
@@ -249,7 +249,7 @@ jobs:
249249

250250
# Run pytest with lax xfail because we often add tests to pydantic
251251
# which xfail on a pending release of pydantic-core
252-
- run: uv run --no-sync pytest --override-ini=xfail_strict=False
252+
- run: uv run --no-sync pytest --override-ini=xfail_strict=False -k 'not test_check_pydantic_core_version'
253253
working-directory: pydantic
254254
env:
255255
PYDANTIC_PRIVATE_ALLOW_UNHANDLED_SCHEMA_TYPES: 1
@@ -272,12 +272,12 @@ jobs:
272272
uses: Swatinem/rust-cache@v2
273273

274274
# used to lint js code
275-
- uses: actions/setup-node@v5
275+
- uses: actions/setup-node@v6
276276
with:
277277
node-version: "18"
278278

279279
- name: install uv
280-
uses: astral-sh/setup-uv@v6
280+
uses: astral-sh/setup-uv@v7
281281

282282
- name: install deps
283283
run: |
@@ -337,15 +337,15 @@ jobs:
337337
actions-cache-folder: emsdk-cache
338338

339339
- name: install uv
340-
uses: astral-sh/setup-uv@v6
340+
uses: astral-sh/setup-uv@v7
341341

342342
- name: install deps
343343
run: uv sync --group wasm
344344

345345
- name: build wheels
346346
run: make build-wasm
347347

348-
- uses: actions/setup-node@v5
348+
- uses: actions/setup-node@v6
349349
with:
350350
node-version: "18"
351351

@@ -357,7 +357,7 @@ jobs:
357357
ls -lh dist/
358358
ls -l dist/
359359
360-
- uses: actions/upload-artifact@v4
360+
- uses: actions/upload-artifact@v5
361361
with:
362362
name: wasm_wheels
363363
path: dist
@@ -396,7 +396,7 @@ jobs:
396396
command: sdist
397397
args: --out dist
398398
rust-toolchain: stable
399-
- uses: actions/upload-artifact@v4
399+
- uses: actions/upload-artifact@v5
400400
with:
401401
name: pypi_files_sdist
402402
path: dist
@@ -409,34 +409,41 @@ jobs:
409409
fail-fast: false
410410
matrix:
411411
os: [linux, macos, windows]
412-
target: [x86_64, aarch64]
412+
target: [undefined]
413413
manylinux: [auto]
414414
include:
415-
# manylinux for various platforms, plus pypy and graalpy on major architectures
415+
# manylinux for various platforms
416+
# x86_64 and aarch64 are PGO optimized below
416417
- os: linux
417418
manylinux: auto
418419
target: i686
419-
- os: linux
420-
manylinux: auto
421-
target: aarch64
422-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
423420
- os: linux
424421
manylinux: auto
425422
target: armv7
426-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
423+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 3.14t
427424
- os: linux
428425
manylinux: auto
429426
target: ppc64le
430-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
427+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 3.14t
431428
- os: linux
432429
manylinux: auto
433430
target: s390x
434-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
431+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 3.14t
435432
- os: linux
436433
manylinux: auto
437434
target: x86_64
438435
interpreter: pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
439436

437+
# manylinux pypy and graalpy on major architectures
438+
- os: linux
439+
manylinux: auto
440+
target: x86_64
441+
interpreter: graalpy3.11 graalpy3.12
442+
- os: linux
443+
manylinux: auto
444+
target: aarch64
445+
interpreter: graalpy3.11 graalpy3.12
446+
440447
# musllinux
441448
- os: linux
442449
manylinux: musllinux_1_1
@@ -453,32 +460,32 @@ jobs:
453460
# arm pypy and older pythons which can't be run on the arm hardware for PGO
454461
- os: macos
455462
target: x86_64
456-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
463+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 3.14t pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
457464
- os: macos
458465
target: aarch64
459466
interpreter: 3.9 pypy3.10 pypy3.11 graalpy3.11 graalpy3.12
460467

461468
# windows;
462469
# x86_64 pypy builds are not PGO optimized
463470
# i686 not supported by pypy
464-
# aarch64 only 3.11 and up, also not PGO optimized
471+
# windows 11 arm supports 3.11 and up, not PGO optimized for now
465472
- os: windows
466473
target: x86_64
467474
interpreter: pypy3.10 pypy3.11
468475
- os: windows
469476
target: i686
470477
python-architecture: x86
471-
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14
478+
interpreter: 3.9 3.10 3.11 3.12 3.13 3.14 3.14t
472479
- os: windows
473480
target: aarch64
474-
interpreter: 3.11 3.12 3.13 3.14
481+
runs-on: windows-11-arm
482+
interpreter: "3.11 3.12 3.13 3.14 3.14t"
475483

476484
exclude:
477-
# See above; disabled for now.
478-
- os: windows
479-
target: aarch64
485+
# was just a dummy variable to set a default value for target
486+
- target: undefined
480487

481-
runs-on: ${{ (matrix.os == 'linux' && 'ubuntu') || matrix.os }}-latest
488+
runs-on: ${{ matrix.runs-on || format('{0}-latest', (matrix.os == 'linux' && 'ubuntu') || matrix.os) }}
482489
steps:
483490
- uses: actions/checkout@v5
484491

@@ -495,49 +502,46 @@ jobs:
495502
with:
496503
target: ${{ matrix.target }}
497504
manylinux: ${{ matrix.manylinux }}
498-
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14 pypy3.10 pypy3.11' }}
505+
args: --release --out dist --interpreter ${{ matrix.interpreter || '3.9 3.10 3.11 3.12 3.13 3.14 3.14t pypy3.10 pypy3.11' }}
499506
rust-toolchain: stable
500507
docker-options: -e CI
501508

502509
- run: ${{ (matrix.os == 'windows' && 'dir') || 'ls -lh' }} dist/
503510

504511
- run: twine check --strict dist/*
505512

506-
- uses: actions/upload-artifact@v4
513+
- uses: actions/upload-artifact@v5
507514
with:
508515
name: pypi_files_${{ matrix.os }}_${{ matrix.target }}_${{ matrix.interpreter || 'all' }}_${{ matrix.manylinux }}
509516
path: dist
510517

511518
build-pgo:
512-
name: build pgo-optimized on ${{ matrix.os }} / ${{ matrix.interpreter }}
519+
name: build pgo-optimized on ${{ matrix.platform.os }} / ${{ matrix.interpreter }}
513520
# only run on push to main and on release
514521
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main' || contains(github.event.pull_request.labels.*.name, 'Full Build')
515522
strategy:
516523
fail-fast: false
517524
matrix:
518-
os: [linux, windows, macos]
519-
interpreter:
520-
["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
521-
include:
522-
# standard runners with override for macos arm
523-
- os: linux
524-
runs-on: ubuntu-latest
525-
- os: windows
526-
ls: dir
527-
runs-on: windows-latest
528-
- os: macos
529-
runs-on: macos-latest
525+
platform:
526+
[
527+
{ os: linux, runs-on: ubuntu-latest },
528+
{ os: linux_aarch64, runs-on: ubuntu-24.04-arm },
529+
{ os: windows, runs-on: windows-latest },
530+
{ os: macos, runs-on: macos-latest },
531+
]
532+
interpreter: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t"]
530533
exclude:
531534
# macos arm only supported from 3.10 and up
532-
- os: macos
535+
- platform:
536+
os: macos
533537
interpreter: "3.9"
534538

535-
runs-on: ${{ matrix.runs-on }}
539+
runs-on: ${{ matrix.platform.runs-on }}
536540
steps:
537541
- uses: actions/checkout@v5
538542

539543
- name: install uv
540-
uses: astral-sh/setup-uv@v6
544+
uses: astral-sh/setup-uv@v7
541545
with:
542546
python-version: ${{ matrix.interpreter }}
543547

@@ -555,11 +559,11 @@ jobs:
555559
interpreter: ${{ matrix.interpreter }}
556560
rust-toolchain: ${{ steps.rust-toolchain.outputs.name }}
557561

558-
- run: ${{ matrix.ls || 'ls -lh' }} dist/
562+
- run: ${{ (startsWith(matrix.platform.os, 'windows') && 'dir') || 'ls -lh' }} dist/
559563

560-
- uses: actions/upload-artifact@v4
564+
- uses: actions/upload-artifact@v5
561565
with:
562-
name: pypi_files_${{ matrix.os }}_${{ matrix.interpreter }}
566+
name: pypi_files_${{ matrix.platform.os }}_${{ matrix.interpreter }}
563567
path: dist
564568

565569
inspect-pypi-assets:
@@ -570,7 +574,7 @@ jobs:
570574
- uses: actions/checkout@v5
571575

572576
- name: get dist artifacts
573-
uses: actions/download-artifact@v5
577+
uses: actions/download-artifact@v6
574578
with:
575579
pattern: pypi_files_*
576580
merge-multiple: true
@@ -611,7 +615,7 @@ jobs:
611615
- uses: actions/checkout@v5
612616

613617
- name: get dist artifacts
614-
uses: actions/download-artifact@v5
618+
uses: actions/download-artifact@v6
615619
with:
616620
pattern: pypi_files_linux_*
617621
merge-multiple: true
@@ -666,10 +670,10 @@ jobs:
666670
- uses: actions/checkout@v5
667671

668672
- name: install uv
669-
uses: astral-sh/setup-uv@v6
673+
uses: astral-sh/setup-uv@v7
670674

671675
- name: get dist artifacts
672-
uses: actions/download-artifact@v5
676+
uses: actions/download-artifact@v6
673677
with:
674678
pattern: pypi_files_*
675679
merge-multiple: true
@@ -694,22 +698,25 @@ jobs:
694698
steps:
695699
- uses: actions/checkout@v5
696700

697-
- uses: astral-sh/setup-uv@v6
701+
- uses: astral-sh/setup-uv@v7
698702

699703
- name: check package version
700704
run: uv run .github/check_version.py
701705

702706
- name: get dist artifacts
703-
uses: actions/download-artifact@v5
707+
uses: actions/download-artifact@v6
704708
with:
705709
pattern: pypi_files_*
706710
merge-multiple: true
707711
path: dist
708712

713+
- name: Test wheels integrity
714+
run: for whl in dist/*.whl; do unzip -qt "$whl"; done
715+
709716
- run: uv publish --trusted-publishing always
710717

711718
- name: get wasm dist artifacts
712-
uses: actions/download-artifact@v5
719+
uses: actions/download-artifact@v6
713720
with:
714721
name: wasm_wheels
715722
path: wasm

.github/workflows/codspeed.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
python-version: ${{ env.UV_PYTHON}}
2727

2828
- name: install uv
29-
uses: astral-sh/setup-uv@v6
29+
uses: astral-sh/setup-uv@v7
3030
with:
3131
enable-cache: true
3232

0 commit comments

Comments
 (0)