55 branches :
66 - main
77 - release-*
8+ - ci-*
89 pull_request :
910
1011concurrency :
@@ -26,22 +27,12 @@ jobs:
2627 test :
2728 name : python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }}
2829 runs-on : ${{ matrix.platform.os }}
29- needs : [lint, check-msrv, examples]
30+ # needs: [lint, check-msrv, examples]
3031 strategy :
3132 fail-fast : ${{ !contains(github.event.pull_request.labels.*.name, 'CI-no-fail-fast') }}
3233 matrix :
33- python-version :
34- [
35- " 3.8" ,
36- " 3.9" ,
37- " 3.10" ,
38- " 3.11" ,
39- " 3.12" ,
40- " 3.13" ,
41- " 3.14" ,
42- " 3.14t" ,
43- " pypy-3.11" ,
44- ]
34+ # python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14", "3.14t", "pypy-3.11"]
35+ python-version : ["3.14", "3.14t", "3.15", "3.15t", "pypy-3.11"]
4536 platform :
4637 [
4738 {
@@ -67,31 +58,61 @@ jobs:
6758 ]
6859 include :
6960 - python-version : 3.8
70- platform : { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
61+ platform :
62+ {
63+ os : " macos-15-intel" ,
64+ python-architecture : " x64" ,
65+ rust-target : " x86_64-apple-darwin" ,
66+ }
7167 - python-version : 3.9
72- platform : { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
68+ platform :
69+ {
70+ os : " macos-15-intel" ,
71+ python-architecture : " x64" ,
72+ rust-target : " x86_64-apple-darwin" ,
73+ }
7374 exclude :
7475 - python-version : 3.8
75- platform : { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
76+ platform :
77+ {
78+ os : " macOS-latest" ,
79+ python-architecture : " arm64" ,
80+ rust-target : " aarch64-apple-darwin" ,
81+ }
7682 - python-version : 3.9
77- platform : { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
83+ platform :
84+ {
85+ os : " macOS-latest" ,
86+ python-architecture : " arm64" ,
87+ rust-target : " aarch64-apple-darwin" ,
88+ }
7889 # no 32 bit windows PyPy
7990 - python-version : pypy-3.11
80- platform : { os: "windows-latest", python-architecture: "x86", rust-target: "i686-pc-windows-msvc" }
91+ platform :
92+ {
93+ os : " windows-latest" ,
94+ python-architecture : " x86" ,
95+ rust-target : " i686-pc-windows-msvc" ,
96+ }
8197 steps :
8298 - uses : actions/checkout@v6
8399 - name : Set up Python ${{ matrix.python-version }}
84100 uses : actions/setup-python@v6
85101 with :
86102 python-version : ${{ matrix.python-version }}
87103 architecture : ${{ matrix.platform.python-architecture }}
104+ allow-prereleases : ${{ startsWith(matrix.python-version, '3.15') }}
105+ - name : Set up UV
106+ uses : astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
107+ with :
108+ enable-cache : false
88109 - name : Install Rust
89110 uses : dtolnay/rust-toolchain@stable
90111 with :
91112 targets : ${{ matrix.platform.rust-target }}
92113 - name : Test
93114 run : |
94- pip install "numpy" ml_dtypes
115+ uv pip install "numpy" ml_dtypes
95116 cargo test --all-features
96117 # Not on PyPy, because no embedding API
97118 if : ${{ !startsWith(matrix.python-version, 'pypy') }}
@@ -103,6 +124,10 @@ jobs:
103124 CARGO_TERM_VERBOSE : true
104125 CARGO_BUILD_TARGET : ${{ matrix.platform.rust-target }}
105126 RUST_BACKTRACE : 1
127+ UV_SYSTEM_PYTHON : true
128+ UV_PRERELEASE : ${{ startsWith(matrix.python-version, '3.15') && 'allow' || 'disallow' }}
129+ UV_NO_BUILD_PACKAGE : " numpy"
130+ UV_INDEX : ${{ startsWith(matrix.python-version, '3.15') && "https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/" | "" }}
106131
107132 test-numpy1 :
108133 name : python${{ matrix.python-version }}-${{ matrix.platform.python-architecture }} ${{ matrix.platform.os }} numpy1
@@ -137,14 +162,34 @@ jobs:
137162 ]
138163 include :
139164 - python-version : 3.8
140- platform : { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
165+ platform :
166+ {
167+ os : " macos-15-intel" ,
168+ python-architecture : " x64" ,
169+ rust-target : " x86_64-apple-darwin" ,
170+ }
141171 - python-version : 3.9
142- platform : { os: "macos-15-intel", python-architecture: "x64", rust-target: "x86_64-apple-darwin" }
172+ platform :
173+ {
174+ os : " macos-15-intel" ,
175+ python-architecture : " x64" ,
176+ rust-target : " x86_64-apple-darwin" ,
177+ }
143178 exclude :
144179 - python-version : 3.8
145- platform : { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
180+ platform :
181+ {
182+ os : " macOS-latest" ,
183+ python-architecture : " arm64" ,
184+ rust-target : " aarch64-apple-darwin" ,
185+ }
146186 - python-version : 3.9
147- platform : { os: "macOS-latest", python-architecture: "arm64", rust-target: "aarch64-apple-darwin" }
187+ platform :
188+ {
189+ os : " macOS-latest" ,
190+ python-architecture : " arm64" ,
191+ rust-target : " aarch64-apple-darwin" ,
192+ }
148193 steps :
149194 - uses : actions/checkout@v6
150195 - name : Set up Python ${{ matrix.python-version }}
0 commit comments