@@ -343,7 +343,7 @@ jobs:
343343 version : ' 3.1.46'
344344 actions-cache-folder : emsdk-cache
345345
346- - run : pip install 'maturin>=1,<2' 'ruff==0.1.3 ' typing_extensions
346+ - run : pip install 'maturin>=1,<2' 'ruff==0.5.0 ' typing_extensions
347347
348348 - name : build wheels
349349 run : make build-wasm
@@ -455,10 +455,9 @@ jobs:
455455 target : i686
456456 python-architecture : x86
457457 interpreter : 3.8 3.9 3.10 3.11 3.12 3.13
458- # FIXME aarch64 builds broken, see https://github.com/PyO3/maturin/issues/2110
459- # - os: windows
460- # target: aarch64
461- # interpreter: 3.11 3.12 3.13
458+ - os : windows
459+ target : aarch64
460+ interpreter : 3.11 3.12 3.13
462461
463462 exclude :
464463 # See above; disabled for now.
@@ -475,7 +474,7 @@ jobs:
475474 python-version : ' 3.11'
476475 architecture : ${{ matrix.python-architecture || 'x64' }}
477476
478- - run : pip install -U twine 'ruff==0.1.3 ' typing_extensions
477+ - run : pip install -U twine 'ruff==0.5.0 ' typing_extensions
479478
480479 # generate self-schema now, so we don't have to do so inside docker in maturin build
481480 - run : python generate_self_schema.py
@@ -486,7 +485,9 @@ jobs:
486485 target : ${{ matrix.target }}
487486 manylinux : ${{ matrix.manylinux }}
488487 args : --release --out dist --interpreter ${{ matrix.interpreter || '3.8 3.9 3.10 3.11 3.12 3.13 pypy3.9 pypy3.10' }}
489- rust-toolchain : stable
488+ # Limit windows builds to 1.77 to keep Windows 7 support.
489+ # FIXME: Unpin when Python 3.8 support is dropped. (3.9 requires Windows 10)
490+ rust-toolchain : ${{ (matrix.os == 'windows' && '1.77') || 'stable' }}
490491 docker-options : -e CI
491492
492493 - run : ${{ (matrix.os == 'windows' && 'dir') || 'ls -lh' }} dist/
@@ -535,17 +536,18 @@ jobs:
535536
536537 - name : install rust stable
537538 id : rust-toolchain
538- uses : dtolnay/rust-toolchain@stable
539+ uses : dtolnay/rust-toolchain@master
539540 with :
540541 components : llvm-tools
542+ # Limit windows builds to 1.77 to keep Windows 7 support.
543+ # FIXME: Unpin when Python 3.8 support is dropped. (3.9 requires Windows 10)
544+ toolchain : ${{ (matrix.os == 'windows' && '1.77') || 'stable' }}
541545
542- - run : pip install -U 'ruff==0.1.3 ' typing_extensions
546+ - run : pip install -U 'ruff==0.5.0 ' typing_extensions
543547
544548 # generate self-schema now, so we don't have to do so inside docker in maturin build
545549 - run : python generate_self_schema.py
546550
547- - run : rustc --version --verbose
548-
549551 - name : build initial wheel
550552 uses : PyO3/maturin-action@v1
551553 with :
@@ -554,7 +556,7 @@ jobs:
554556 --release
555557 --out pgo-wheel
556558 --interpreter ${{ matrix.interpreter }}
557- rust-toolchain : stable
559+ rust-toolchain : ${{ steps.rust-toolchain.outputs.name }}
558560 docker-options : -e CI
559561 env :
560562 RUSTFLAGS : " -Cprofile-generate=${{ github.workspace }}/profdata"
@@ -569,7 +571,7 @@ jobs:
569571 pip install -r tests/requirements.txt
570572 pip install pydantic-core --no-index --no-deps --find-links pgo-wheel --force-reinstall
571573 pytest tests/benchmarks
572- rustup run stable bash -c 'echo LLVM_PROFDATA=$RUSTUP_HOME/toolchains/$RUSTUP_TOOLCHAIN/lib/rustlib/${{ env.RUST_HOST }}/bin/llvm-profdata >> "$GITHUB_ENV"'
574+ rustup run ${{ steps.rust-toolchain.outputs.name }} bash -c 'echo LLVM_PROFDATA=$RUSTUP_HOME/toolchains/$RUSTUP_TOOLCHAIN/lib/rustlib/${{ env.RUST_HOST }}/bin/llvm-profdata >> "$GITHUB_ENV"'
573575
574576 - name : merge pgo data
575577 run : ${{ env.LLVM_PROFDATA }} merge -o ${{ github.workspace }}/merged.profdata ${{ github.workspace }}/profdata
@@ -582,7 +584,7 @@ jobs:
582584 --release
583585 --out dist
584586 --interpreter ${{ matrix.interpreter }}
585- rust-toolchain : stable
587+ rust-toolchain : ${{steps.rust-toolchain.outputs.name}}
586588 docker-options : -e CI
587589 env :
588590 RUSTFLAGS : " -Cprofile-use=${{ github.workspace }}/merged.profdata"
0 commit comments