maturin 1.7.5__tar.gz → 1.7.6b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of maturin might be problematic. Click here for more details.
- {maturin-1.7.5 → maturin-1.7.6b1}/Cargo.lock +17 -42
- {maturin-1.7.5 → maturin-1.7.6b1}/Cargo.toml +3 -3
- {maturin-1.7.5 → maturin-1.7.6b1}/PKG-INFO +1 -1
- {maturin-1.7.5 → maturin-1.7.6b1}/src/build_context.rs +1 -7
- {maturin-1.7.5 → maturin-1.7.6b1}/src/build_options.rs +11 -7
- {maturin-1.7.5 → maturin-1.7.6b1}/src/ci.rs +78 -14
- {maturin-1.7.5 → maturin-1.7.6b1}/src/python_interpreter/config.rs +6 -3
- {maturin-1.7.5 → maturin-1.7.6b1}/src/python_interpreter/mod.rs +21 -19
- {maturin-1.7.5 → maturin-1.7.6b1}/.cirrus.yml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/.codespellrc +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/.config/nextest.toml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/.gitignore +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/.pre-commit-config.yaml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/Changelog.md +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/MANIFEST.in +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/README.md +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/clippy.toml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/license-apache +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/license-mit +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/maturin/__init__.py +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/maturin/__main__.py +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/maturin.schema.json +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/netlify.toml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/pyproject.toml +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/setup.py +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/audit.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/manylinux-policy.json +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/mod.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/musllinux-policy.json +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/musllinux.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/patchelf.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/platform_tag.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/policy.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/auditwheel/repair.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/cargo_toml.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/compile.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/cross_compile.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/develop.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/generate_json_schema.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/lib.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/main.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/metadata.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/module_writer.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/new_project.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/project_layout.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/pyproject_toml.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/python_interpreter/get_interpreter_metadata.py +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/source_distribution.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/target.rs +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/.gitignore.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/Cargo.toml.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/__init__.py.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/build.rs.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/example.udl.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/lib.rs.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/main.rs.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/pyproject.toml.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/templates/test_all.py.j2 +0 -0
- {maturin-1.7.5 → maturin-1.7.6b1}/src/upload.rs +0 -0
|
@@ -306,20 +306,20 @@ dependencies = [
|
|
|
306
306
|
|
|
307
307
|
[[package]]
|
|
308
308
|
name = "cbindgen"
|
|
309
|
-
version = "0.
|
|
309
|
+
version = "0.27.0"
|
|
310
310
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
311
|
-
checksum = "
|
|
311
|
+
checksum = "3fce8dd7fcfcbf3a0a87d8f515194b49d6135acab73e18bd380d1d93bb1a15eb"
|
|
312
312
|
dependencies = [
|
|
313
313
|
"heck 0.4.1",
|
|
314
|
-
"indexmap
|
|
314
|
+
"indexmap",
|
|
315
315
|
"log",
|
|
316
316
|
"proc-macro2",
|
|
317
317
|
"quote",
|
|
318
318
|
"serde",
|
|
319
319
|
"serde_json",
|
|
320
|
-
"syn
|
|
320
|
+
"syn 2.0.89",
|
|
321
321
|
"tempfile",
|
|
322
|
-
"toml
|
|
322
|
+
"toml",
|
|
323
323
|
]
|
|
324
324
|
|
|
325
325
|
[[package]]
|
|
@@ -364,7 +364,7 @@ version = "0.9.3"
|
|
|
364
364
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
365
365
|
checksum = "8eebd66744a15ded14960ab4ccdbfb51ad3b81f51f3f04a80adac98c985396c9"
|
|
366
366
|
dependencies = [
|
|
367
|
-
"hashbrown
|
|
367
|
+
"hashbrown",
|
|
368
368
|
"stacker",
|
|
369
369
|
]
|
|
370
370
|
|
|
@@ -960,12 +960,6 @@ dependencies = [
|
|
|
960
960
|
"scroll",
|
|
961
961
|
]
|
|
962
962
|
|
|
963
|
-
[[package]]
|
|
964
|
-
name = "hashbrown"
|
|
965
|
-
version = "0.12.3"
|
|
966
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
967
|
-
checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
|
|
968
|
-
|
|
969
963
|
[[package]]
|
|
970
964
|
name = "hashbrown"
|
|
971
965
|
version = "0.14.5"
|
|
@@ -1168,16 +1162,6 @@ dependencies = [
|
|
|
1168
1162
|
"winapi-util",
|
|
1169
1163
|
]
|
|
1170
1164
|
|
|
1171
|
-
[[package]]
|
|
1172
|
-
name = "indexmap"
|
|
1173
|
-
version = "1.9.3"
|
|
1174
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1175
|
-
checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
|
|
1176
|
-
dependencies = [
|
|
1177
|
-
"autocfg",
|
|
1178
|
-
"hashbrown 0.12.3",
|
|
1179
|
-
]
|
|
1180
|
-
|
|
1181
1165
|
[[package]]
|
|
1182
1166
|
name = "indexmap"
|
|
1183
1167
|
version = "2.5.0"
|
|
@@ -1185,7 +1169,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1185
1169
|
checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
|
|
1186
1170
|
dependencies = [
|
|
1187
1171
|
"equivalent",
|
|
1188
|
-
"hashbrown
|
|
1172
|
+
"hashbrown",
|
|
1189
1173
|
"serde",
|
|
1190
1174
|
]
|
|
1191
1175
|
|
|
@@ -1357,7 +1341,7 @@ dependencies = [
|
|
|
1357
1341
|
|
|
1358
1342
|
[[package]]
|
|
1359
1343
|
name = "maturin"
|
|
1360
|
-
version = "1.7.
|
|
1344
|
+
version = "1.7.6-beta.1"
|
|
1361
1345
|
dependencies = [
|
|
1362
1346
|
"anyhow",
|
|
1363
1347
|
"base64 0.21.7",
|
|
@@ -1384,7 +1368,7 @@ dependencies = [
|
|
|
1384
1368
|
"glob",
|
|
1385
1369
|
"goblin",
|
|
1386
1370
|
"ignore",
|
|
1387
|
-
"indexmap
|
|
1371
|
+
"indexmap",
|
|
1388
1372
|
"indoc",
|
|
1389
1373
|
"itertools",
|
|
1390
1374
|
"keyring",
|
|
@@ -1419,7 +1403,7 @@ dependencies = [
|
|
|
1419
1403
|
"textwrap",
|
|
1420
1404
|
"thiserror",
|
|
1421
1405
|
"time",
|
|
1422
|
-
"toml
|
|
1406
|
+
"toml",
|
|
1423
1407
|
"toml_edit 0.22.16",
|
|
1424
1408
|
"tracing",
|
|
1425
1409
|
"tracing-subscriber",
|
|
@@ -1465,9 +1449,9 @@ dependencies = [
|
|
|
1465
1449
|
|
|
1466
1450
|
[[package]]
|
|
1467
1451
|
name = "minijinja"
|
|
1468
|
-
version = "
|
|
1452
|
+
version = "2.5.0"
|
|
1469
1453
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1470
|
-
checksum = "
|
|
1454
|
+
checksum = "2c37e1b517d1dcd0e51dc36c4567b9d5a29262b3ec8da6cb5d35e27a8fb529b5"
|
|
1471
1455
|
dependencies = [
|
|
1472
1456
|
"serde",
|
|
1473
1457
|
]
|
|
@@ -1815,11 +1799,11 @@ version = "0.11.0"
|
|
|
1815
1799
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1816
1800
|
checksum = "ef7061023bcb58a0fc4a4bbe9819c13b0dca7c2abc14da14f5ecc1532ab3a36a"
|
|
1817
1801
|
dependencies = [
|
|
1818
|
-
"indexmap
|
|
1802
|
+
"indexmap",
|
|
1819
1803
|
"pep440_rs",
|
|
1820
1804
|
"pep508_rs",
|
|
1821
1805
|
"serde",
|
|
1822
|
-
"toml
|
|
1806
|
+
"toml",
|
|
1823
1807
|
]
|
|
1824
1808
|
|
|
1825
1809
|
[[package]]
|
|
@@ -2580,15 +2564,6 @@ dependencies = [
|
|
|
2580
2564
|
"zerovec",
|
|
2581
2565
|
]
|
|
2582
2566
|
|
|
2583
|
-
[[package]]
|
|
2584
|
-
name = "toml"
|
|
2585
|
-
version = "0.5.11"
|
|
2586
|
-
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2587
|
-
checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
|
|
2588
|
-
dependencies = [
|
|
2589
|
-
"serde",
|
|
2590
|
-
]
|
|
2591
|
-
|
|
2592
2567
|
[[package]]
|
|
2593
2568
|
name = "toml"
|
|
2594
2569
|
version = "0.8.15"
|
|
@@ -2616,7 +2591,7 @@ version = "0.21.1"
|
|
|
2616
2591
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2617
2592
|
checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
|
|
2618
2593
|
dependencies = [
|
|
2619
|
-
"indexmap
|
|
2594
|
+
"indexmap",
|
|
2620
2595
|
"toml_datetime",
|
|
2621
2596
|
"winnow 0.5.40",
|
|
2622
2597
|
]
|
|
@@ -2627,7 +2602,7 @@ version = "0.22.16"
|
|
|
2627
2602
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
2628
2603
|
checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788"
|
|
2629
2604
|
dependencies = [
|
|
2630
|
-
"indexmap
|
|
2605
|
+
"indexmap",
|
|
2631
2606
|
"serde",
|
|
2632
2607
|
"serde_spanned",
|
|
2633
2608
|
"toml_datetime",
|
|
@@ -3198,7 +3173,7 @@ dependencies = [
|
|
|
3198
3173
|
"serde_json",
|
|
3199
3174
|
"sha2",
|
|
3200
3175
|
"tempfile",
|
|
3201
|
-
"toml
|
|
3176
|
+
"toml",
|
|
3202
3177
|
"tracing",
|
|
3203
3178
|
"tracing-subscriber",
|
|
3204
3179
|
"twox-hash",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
authors = ["konstin <konstin@mailbox.org>", "messense <messense@icloud.com>"]
|
|
3
3
|
name = "maturin"
|
|
4
|
-
version = "1.7.
|
|
4
|
+
version = "1.7.6-beta.1"
|
|
5
5
|
description = "Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages"
|
|
6
6
|
exclude = [
|
|
7
7
|
"test-crates/**/*",
|
|
@@ -45,7 +45,7 @@ glob = "0.3.0"
|
|
|
45
45
|
cargo-config2 = "0.1.24"
|
|
46
46
|
cargo_metadata = "0.18.0"
|
|
47
47
|
cargo-options = "0.7.2"
|
|
48
|
-
cbindgen = { version = "0.
|
|
48
|
+
cbindgen = { version = "0.27.0", default-features = false }
|
|
49
49
|
flate2 = "1.0.18"
|
|
50
50
|
goblin = "0.9.0"
|
|
51
51
|
platform-info = "2.0.2"
|
|
@@ -107,7 +107,7 @@ tracing-subscriber = { version = "0.3.15", features = ["env-filter"] }
|
|
|
107
107
|
# project scaffolding, maturin new/init/generate-ci
|
|
108
108
|
dialoguer = { version = "0.11.0", default-features = false, optional = true }
|
|
109
109
|
console = { version = "0.15.4", optional = true }
|
|
110
|
-
minijinja = { version = "
|
|
110
|
+
minijinja = { version = "2.5.0", optional = true }
|
|
111
111
|
|
|
112
112
|
# upload
|
|
113
113
|
bytesize = { version = "1.0.1", optional = true }
|
|
@@ -7,7 +7,6 @@ use crate::module_writer::{
|
|
|
7
7
|
write_uniffi_module, write_wasm_launcher, WheelWriter,
|
|
8
8
|
};
|
|
9
9
|
use crate::project_layout::ProjectLayout;
|
|
10
|
-
use crate::python_interpreter::InterpreterKind;
|
|
11
10
|
use crate::source_distribution::source_distribution;
|
|
12
11
|
use crate::target::{Arch, Os};
|
|
13
12
|
use crate::{
|
|
@@ -235,12 +234,7 @@ impl BuildContext {
|
|
|
235
234
|
if !non_abi3_interps.is_empty() {
|
|
236
235
|
let interp_names: HashSet<_> = non_abi3_interps
|
|
237
236
|
.iter()
|
|
238
|
-
.map(|interp|
|
|
239
|
-
InterpreterKind::CPython | InterpreterKind::GraalPy => {
|
|
240
|
-
interp.implementation_name.to_string()
|
|
241
|
-
}
|
|
242
|
-
InterpreterKind::PyPy => "PyPy".to_string(),
|
|
243
|
-
})
|
|
237
|
+
.map(|interp| format!("{}{}{}", interp, interp.major, interp.minor))
|
|
244
238
|
.collect();
|
|
245
239
|
eprintln!(
|
|
246
240
|
"⚠️ Warning: {} does not yet support abi3 so the build artifacts will be version-specific.",
|
|
@@ -1266,12 +1266,7 @@ fn find_interpreter_in_sysconfig(
|
|
|
1266
1266
|
)
|
|
1267
1267
|
} else if let Some(ver) = python.strip_prefix("python") {
|
|
1268
1268
|
// Also accept things like `python3.13t` for free-threaded python
|
|
1269
|
-
let (ver, abiflags) =
|
|
1270
|
-
if let Some(ver) = ver.strip_prefix('-').unwrap_or(ver).strip_suffix('t') {
|
|
1271
|
-
(ver, "t")
|
|
1272
|
-
} else {
|
|
1273
|
-
(ver, "")
|
|
1274
|
-
};
|
|
1269
|
+
let (ver, abiflags) = maybe_free_threaded(ver.strip_prefix('-').unwrap_or(ver));
|
|
1275
1270
|
(InterpreterKind::CPython, ver, abiflags)
|
|
1276
1271
|
} else if python
|
|
1277
1272
|
.chars()
|
|
@@ -1280,7 +1275,8 @@ fn find_interpreter_in_sysconfig(
|
|
|
1280
1275
|
.unwrap_or(false)
|
|
1281
1276
|
{
|
|
1282
1277
|
// Eg: -i 3.9 without interpreter kind, assume it's CPython
|
|
1283
|
-
(
|
|
1278
|
+
let (ver, abiflags) = maybe_free_threaded(&python);
|
|
1279
|
+
(InterpreterKind::CPython, ver, abiflags)
|
|
1284
1280
|
} else {
|
|
1285
1281
|
// if interpreter not known
|
|
1286
1282
|
if std::path::Path::new(&python).is_file() {
|
|
@@ -1319,6 +1315,14 @@ fn find_interpreter_in_sysconfig(
|
|
|
1319
1315
|
Ok(interpreters)
|
|
1320
1316
|
}
|
|
1321
1317
|
|
|
1318
|
+
fn maybe_free_threaded(python_ver: &str) -> (&str, &str) {
|
|
1319
|
+
if let Some(ver) = python_ver.strip_suffix('t') {
|
|
1320
|
+
(ver, "t")
|
|
1321
|
+
} else {
|
|
1322
|
+
(python_ver, "")
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1322
1326
|
/// We need to pass the global flags to cargo metadata
|
|
1323
1327
|
/// (https://github.com/PyO3/maturin/issues/211 and https://github.com/PyO3/maturin/issues/472),
|
|
1324
1328
|
/// but we can't pass all the extra args, as e.g. `--target` isn't supported, so this tries to
|
|
@@ -376,17 +376,29 @@ jobs:\n",
|
|
|
376
376
|
sccache: 'true'
|
|
377
377
|
"
|
|
378
378
|
));
|
|
379
|
-
match platform {
|
|
380
|
-
Platform::ManyLinux =>
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
379
|
+
let maturin_action_args = match platform {
|
|
380
|
+
Platform::ManyLinux => "manylinux: auto",
|
|
381
|
+
Platform::Musllinux => "manylinux: musllinux_1_2",
|
|
382
|
+
Platform::Emscripten => "rust-toolchain: nightly",
|
|
383
|
+
_ => "",
|
|
384
|
+
};
|
|
385
|
+
if !maturin_action_args.is_empty() {
|
|
386
|
+
conf.push_str(&format!(" {maturin_action_args}\n"));
|
|
387
|
+
}
|
|
388
|
+
if is_abi3 {
|
|
389
|
+
// build free-threaded wheel for python3.13t
|
|
390
|
+
conf.push_str(&format!(
|
|
391
|
+
" - name: Build free-threaded wheels
|
|
392
|
+
uses: PyO3/maturin-action@v1
|
|
393
|
+
with:
|
|
394
|
+
target: ${{{{ matrix.platform.target }}}}
|
|
395
|
+
args: --release --out dist{maturin_args} -i python3.13t
|
|
396
|
+
sccache: 'true'
|
|
397
|
+
"
|
|
398
|
+
));
|
|
399
|
+
if !maturin_action_args.is_empty() {
|
|
400
|
+
conf.push_str(&format!(" {maturin_action_args}\n"));
|
|
388
401
|
}
|
|
389
|
-
_ => {}
|
|
390
402
|
}
|
|
391
403
|
// upload wheels
|
|
392
404
|
let artifact_name = match platform {
|
|
@@ -904,6 +916,13 @@ mod tests {
|
|
|
904
916
|
args: --release --out dist
|
|
905
917
|
sccache: 'true'
|
|
906
918
|
manylinux: auto
|
|
919
|
+
- name: Build free-threaded wheels
|
|
920
|
+
uses: PyO3/maturin-action@v1
|
|
921
|
+
with:
|
|
922
|
+
target: ${{ matrix.platform.target }}
|
|
923
|
+
args: --release --out dist -i python3.13t
|
|
924
|
+
sccache: 'true'
|
|
925
|
+
manylinux: auto
|
|
907
926
|
- name: Upload wheels
|
|
908
927
|
uses: actions/upload-artifact@v4
|
|
909
928
|
with:
|
|
@@ -935,6 +954,13 @@ mod tests {
|
|
|
935
954
|
args: --release --out dist
|
|
936
955
|
sccache: 'true'
|
|
937
956
|
manylinux: musllinux_1_2
|
|
957
|
+
- name: Build free-threaded wheels
|
|
958
|
+
uses: PyO3/maturin-action@v1
|
|
959
|
+
with:
|
|
960
|
+
target: ${{ matrix.platform.target }}
|
|
961
|
+
args: --release --out dist -i python3.13t
|
|
962
|
+
sccache: 'true'
|
|
963
|
+
manylinux: musllinux_1_2
|
|
938
964
|
- name: Upload wheels
|
|
939
965
|
uses: actions/upload-artifact@v4
|
|
940
966
|
with:
|
|
@@ -962,7 +988,13 @@ mod tests {
|
|
|
962
988
|
target: ${{ matrix.platform.target }}
|
|
963
989
|
args: --release --out dist
|
|
964
990
|
sccache: 'true'
|
|
965
|
-
- name:
|
|
991
|
+
- name: Build free-threaded wheels
|
|
992
|
+
uses: PyO3/maturin-action@v1
|
|
993
|
+
with:
|
|
994
|
+
target: ${{ matrix.platform.target }}
|
|
995
|
+
args: --release --out dist -i python3.13t
|
|
996
|
+
sccache: 'true'
|
|
997
|
+
- name: Upload wheels
|
|
966
998
|
uses: actions/upload-artifact@v4
|
|
967
999
|
with:
|
|
968
1000
|
name: wheels-windows-${{ matrix.platform.target }}
|
|
@@ -988,7 +1020,13 @@ mod tests {
|
|
|
988
1020
|
target: ${{ matrix.platform.target }}
|
|
989
1021
|
args: --release --out dist
|
|
990
1022
|
sccache: 'true'
|
|
991
|
-
- name:
|
|
1023
|
+
- name: Build free-threaded wheels
|
|
1024
|
+
uses: PyO3/maturin-action@v1
|
|
1025
|
+
with:
|
|
1026
|
+
target: ${{ matrix.platform.target }}
|
|
1027
|
+
args: --release --out dist -i python3.13t
|
|
1028
|
+
sccache: 'true'
|
|
1029
|
+
- name: Upload wheels
|
|
992
1030
|
uses: actions/upload-artifact@v4
|
|
993
1031
|
with:
|
|
994
1032
|
name: wheels-macos-${{ matrix.platform.target }}
|
|
@@ -1081,6 +1119,13 @@ mod tests {
|
|
|
1081
1119
|
args: --release --out dist
|
|
1082
1120
|
sccache: 'true'
|
|
1083
1121
|
manylinux: auto
|
|
1122
|
+
- name: Build free-threaded wheels
|
|
1123
|
+
uses: PyO3/maturin-action@v1
|
|
1124
|
+
with:
|
|
1125
|
+
target: ${{ matrix.platform.target }}
|
|
1126
|
+
args: --release --out dist -i python3.13t
|
|
1127
|
+
sccache: 'true'
|
|
1128
|
+
manylinux: auto
|
|
1084
1129
|
- name: Upload wheels
|
|
1085
1130
|
uses: actions/upload-artifact@v4
|
|
1086
1131
|
with:
|
|
@@ -1112,6 +1157,13 @@ mod tests {
|
|
|
1112
1157
|
args: --release --out dist
|
|
1113
1158
|
sccache: 'true'
|
|
1114
1159
|
manylinux: musllinux_1_2
|
|
1160
|
+
- name: Build free-threaded wheels
|
|
1161
|
+
uses: PyO3/maturin-action@v1
|
|
1162
|
+
with:
|
|
1163
|
+
target: ${{ matrix.platform.target }}
|
|
1164
|
+
args: --release --out dist -i python3.13t
|
|
1165
|
+
sccache: 'true'
|
|
1166
|
+
manylinux: musllinux_1_2
|
|
1115
1167
|
- name: Upload wheels
|
|
1116
1168
|
uses: actions/upload-artifact@v4
|
|
1117
1169
|
with:
|
|
@@ -1139,7 +1191,13 @@ mod tests {
|
|
|
1139
1191
|
target: ${{ matrix.platform.target }}
|
|
1140
1192
|
args: --release --out dist
|
|
1141
1193
|
sccache: 'true'
|
|
1142
|
-
- name:
|
|
1194
|
+
- name: Build free-threaded wheels
|
|
1195
|
+
uses: PyO3/maturin-action@v1
|
|
1196
|
+
with:
|
|
1197
|
+
target: ${{ matrix.platform.target }}
|
|
1198
|
+
args: --release --out dist -i python3.13t
|
|
1199
|
+
sccache: 'true'
|
|
1200
|
+
- name: Upload wheels
|
|
1143
1201
|
uses: actions/upload-artifact@v4
|
|
1144
1202
|
with:
|
|
1145
1203
|
name: wheels-windows-${{ matrix.platform.target }}
|
|
@@ -1165,7 +1223,13 @@ mod tests {
|
|
|
1165
1223
|
target: ${{ matrix.platform.target }}
|
|
1166
1224
|
args: --release --out dist
|
|
1167
1225
|
sccache: 'true'
|
|
1168
|
-
- name:
|
|
1226
|
+
- name: Build free-threaded wheels
|
|
1227
|
+
uses: PyO3/maturin-action@v1
|
|
1228
|
+
with:
|
|
1229
|
+
target: ${{ matrix.platform.target }}
|
|
1230
|
+
args: --release --out dist -i python3.13t
|
|
1231
|
+
sccache: 'true'
|
|
1232
|
+
- name: Upload wheels
|
|
1169
1233
|
uses: actions/upload-artifact@v4
|
|
1170
1234
|
with:
|
|
1171
1235
|
name: wheels-macos-${{ matrix.platform.target }}
|
|
@@ -120,6 +120,11 @@ impl InterpreterConfig {
|
|
|
120
120
|
})
|
|
121
121
|
}
|
|
122
122
|
(Os::Windows, CPython) => {
|
|
123
|
+
let abiflags = if python_version < (3, 8) {
|
|
124
|
+
"m".to_string()
|
|
125
|
+
} else {
|
|
126
|
+
abiflags.to_string()
|
|
127
|
+
};
|
|
123
128
|
let ext_suffix = if python_version < (3, 8) {
|
|
124
129
|
".pyd".to_string()
|
|
125
130
|
} else {
|
|
@@ -135,8 +140,7 @@ impl InterpreterConfig {
|
|
|
135
140
|
major,
|
|
136
141
|
minor,
|
|
137
142
|
interpreter_kind: CPython,
|
|
138
|
-
|
|
139
|
-
abiflags: String::new(),
|
|
143
|
+
abiflags,
|
|
140
144
|
ext_suffix,
|
|
141
145
|
pointer_width: Some(target.pointer_width()),
|
|
142
146
|
gil_disabled,
|
|
@@ -152,7 +156,6 @@ impl InterpreterConfig {
|
|
|
152
156
|
major,
|
|
153
157
|
minor,
|
|
154
158
|
interpreter_kind: PyPy,
|
|
155
|
-
// abiflags is always empty on Windows
|
|
156
159
|
abiflags: String::new(),
|
|
157
160
|
ext_suffix,
|
|
158
161
|
pointer_width: Some(target.pointer_width()),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
pub use self::config::InterpreterConfig;
|
|
2
2
|
use crate::auditwheel::PlatformTag;
|
|
3
3
|
use crate::{BridgeModel, BuildContext, Target};
|
|
4
|
-
use anyhow::{bail, format_err, Context, Result};
|
|
4
|
+
use anyhow::{bail, ensure, format_err, Context, Result};
|
|
5
5
|
use pep440_rs::{Version, VersionSpecifiers};
|
|
6
6
|
use regex::Regex;
|
|
7
7
|
use serde::Deserialize;
|
|
@@ -427,7 +427,19 @@ fn fun_with_abiflags(
|
|
|
427
427
|
Ok("".to_string())
|
|
428
428
|
} else if message.system == "windows" {
|
|
429
429
|
if matches!(message.abiflags.as_deref(), Some("") | None) {
|
|
430
|
-
|
|
430
|
+
// windows has a few annoying cases, but its abiflags in sysconfig always empty
|
|
431
|
+
// python <= 3.7 has "m"
|
|
432
|
+
if message.minor <= 7 {
|
|
433
|
+
Ok("m".to_string())
|
|
434
|
+
} else if message.gil_disabled {
|
|
435
|
+
ensure!(
|
|
436
|
+
message.minor >= 13,
|
|
437
|
+
"gil_disabled is only available in python 3.13+ ಠ_ಠ"
|
|
438
|
+
);
|
|
439
|
+
Ok("t".to_string())
|
|
440
|
+
} else {
|
|
441
|
+
Ok("".to_string())
|
|
442
|
+
}
|
|
431
443
|
} else {
|
|
432
444
|
bail!("A python 3 interpreter on Windows does not define abiflags in its sysconfig ಠ_ಠ")
|
|
433
445
|
}
|
|
@@ -499,23 +511,13 @@ impl PythonInterpreter {
|
|
|
499
511
|
} else {
|
|
500
512
|
match self.interpreter_kind {
|
|
501
513
|
InterpreterKind::CPython => {
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
)
|
|
510
|
-
} else {
|
|
511
|
-
// On windows the abiflags are missing, but this seems to work
|
|
512
|
-
format!(
|
|
513
|
-
"cp{major}{minor}-none-{platform}",
|
|
514
|
-
major = self.major,
|
|
515
|
-
minor = self.minor,
|
|
516
|
-
platform = platform
|
|
517
|
-
)
|
|
518
|
-
}
|
|
514
|
+
format!(
|
|
515
|
+
"cp{major}{minor}-cp{major}{minor}{abiflags}-{platform}",
|
|
516
|
+
major = self.major,
|
|
517
|
+
minor = self.minor,
|
|
518
|
+
abiflags = self.abiflags,
|
|
519
|
+
platform = platform
|
|
520
|
+
)
|
|
519
521
|
}
|
|
520
522
|
InterpreterKind::PyPy => {
|
|
521
523
|
// pypy uses its version as part of the ABI, e.g.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|