7474 strategy :
7575 fail-fast : false
7676 matrix :
77- python-version : ["3.10"]
78- os : [macos-latest, windows-latest]
77+ include :
78+ - os : macos-latest
79+ python-version : " 3.10"
80+ artifact-suffix : " "
81+ - os : macos-latest
82+ python-version : " 3.11"
83+ artifact-suffix : " "
84+ - os : macos-latest
85+ python-version : " 3.12"
86+ artifact-suffix : " "
87+ - os : macos-latest
88+ python-version : " 3.13"
89+ artifact-suffix : " "
90+ - os : macos-latest
91+ python-version : " 3.14"
92+ artifact-suffix : " "
93+ - os : macos-latest
94+ python-version : " 3.13t"
95+ artifact-suffix : " -freethreaded"
96+ - os : macos-latest
97+ python-version : " 3.14t"
98+ artifact-suffix : " -freethreaded"
99+ - os : windows-latest
100+ python-version : " 3.10"
101+ artifact-suffix : " "
102+ - os : windows-latest
103+ python-version : " 3.11"
104+ artifact-suffix : " "
105+ - os : windows-latest
106+ python-version : " 3.12"
107+ artifact-suffix : " "
108+ - os : windows-latest
109+ python-version : " 3.13"
110+ artifact-suffix : " "
111+ - os : windows-latest
112+ python-version : " 3.14"
113+ artifact-suffix : " "
114+ - os : windows-latest
115+ python-version : " 3.13t"
116+ artifact-suffix : " -freethreaded"
117+ - os : windows-latest
118+ python-version : " 3.14t"
119+ artifact-suffix : " -freethreaded"
79120 steps :
80121 - uses : actions/checkout@v5
81122
@@ -105,7 +146,7 @@ jobs:
105146 - name : Build Python package
106147 run : |
107148 uv sync --dev --no-install-package datafusion
108- uv run --no-project maturin build --release --strip --features substrait
149+ uv run --no-project maturin build --release --strip --features substrait --interpreter python
109150
110151 - name : List Windows wheels
111152 if : matrix.os == 'windows-latest'
@@ -121,7 +162,7 @@ jobs:
121162 - name : Archive wheels
122163 uses : actions/upload-artifact@v4
123164 with :
124- name : dist-${{ matrix.os }}
165+ name : dist-${{ matrix.os }}${{ matrix.artifact-suffix }}
125166 path : target/wheels/*
126167
127168 build-macos-x86_64 :
@@ -131,7 +172,21 @@ jobs:
131172 strategy :
132173 fail-fast : false
133174 matrix :
134- python-version : ["3.10"]
175+ include :
176+ - python-version : " 3.10"
177+ artifact-suffix : " "
178+ - python-version : " 3.11"
179+ artifact-suffix : " "
180+ - python-version : " 3.12"
181+ artifact-suffix : " "
182+ - python-version : " 3.13"
183+ artifact-suffix : " "
184+ - python-version : " 3.14"
185+ artifact-suffix : " "
186+ - python-version : " 3.13t"
187+ artifact-suffix : " -freethreaded"
188+ - python-version : " 3.14t"
189+ artifact-suffix : " -freethreaded"
135190 steps :
136191 - uses : actions/checkout@v5
137192
@@ -161,21 +216,29 @@ jobs:
161216 - name : Build Python package
162217 run : |
163218 uv sync --dev --no-install-package datafusion
164- uv run --no-project maturin build --release --strip --features substrait
219+ uv run --no-project maturin build --release --strip --features substrait --interpreter python
165220
166221 - name : List Mac wheels
167222 run : find target/wheels/
168223
169224 - name : Archive wheels
170225 uses : actions/upload-artifact@v4
171226 with :
172- name : dist-macos-aarch64
227+ name : dist-macos-aarch64${{ matrix.artifact-suffix }}
173228 path : target/wheels/*
174229
175230 build-manylinux-x86_64 :
176231 needs : [generate-license]
177232 name : Manylinux x86_64
178233 runs-on : ubuntu-latest
234+ strategy :
235+ fail-fast : false
236+ matrix :
237+ include :
238+ - interpreter : " 3.10 3.11 3.12 3.13 3.14"
239+ artifact-suffix : " "
240+ - interpreter : " 3.13t 3.14t"
241+ artifact-suffix : " -freethreaded"
179242 steps :
180243 - uses : actions/checkout@v5
181244 - run : rm LICENSE.txt
@@ -194,17 +257,26 @@ jobs:
194257 target : x86_64
195258 manylinux : auto
196259 rustup-components : rust-std rustfmt # Keep them in one line due to https://github.com/PyO3/maturin-action/issues/153
260+ interpreter : ${{ matrix.interpreter }}
197261 args : --release --manylinux 2014 --features protoc,substrait
198262 - name : Archive wheels
199263 uses : actions/upload-artifact@v4
200264 with :
201- name : dist-manylinux-x86_64
265+ name : dist-manylinux-x86_64${{ matrix.artifact-suffix }}
202266 path : target/wheels/*
203267
204268 build-manylinux-aarch64 :
205269 needs : [generate-license]
206270 name : Manylinux arm64
207271 runs-on : ubuntu-latest
272+ strategy :
273+ fail-fast : false
274+ matrix :
275+ include :
276+ - interpreter : " 3.10 3.11 3.12 3.13 3.14"
277+ artifact-suffix : " "
278+ - interpreter : " 3.13t 3.14t"
279+ artifact-suffix : " -freethreaded"
208280 steps :
209281 - uses : actions/checkout@v5
210282 - run : rm LICENSE.txt
@@ -224,11 +296,12 @@ jobs:
224296 # Use manylinux_2_28-cross because the manylinux2014-cross has GCC 4.8.5, which causes the build to fail
225297 manylinux : 2_28
226298 rustup-components : rust-std rustfmt # Keep them in one line due to https://github.com/PyO3/maturin-action/issues/153
299+ interpreter : ${{ matrix.interpreter }}
227300 args : --release --features protoc,substrait
228301 - name : Archive wheels
229302 uses : actions/upload-artifact@v4
230303 with :
231- name : dist-manylinux-aarch64
304+ name : dist-manylinux-aarch64${{ matrix.artifact-suffix }}
232305 path : target/wheels/*
233306
234307 build-sdist :
0 commit comments