Skip to content

Commit dc083e8

Browse files
committed
Further compatibility and build misc
1 parent 18f0186 commit dc083e8

39 files changed

+354
-1801
lines changed

.github/actions/manylinux/action.yaml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ inputs:
99
required: true
1010
compatibility:
1111
required: true
12-
publish:
13-
required: true
1412

1513
runs:
1614
using: "composite"

.github/workflows/artifact.yaml

Lines changed: 39 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@ name: artifact
22
on: push
33
env:
44
FORCE_COLOR: "1"
5+
ORJSON_BUILD_FREETHREADED: "1"
56
PIP_DISABLE_PIP_VERSION_CHECK: "1"
6-
RUST_TOOLCHAIN: "nightly-2025-10-21"
7+
RUST_TOOLCHAIN: "nightly-2025-12-01"
78
RUST_TOOLCHAIN_STABLE: "1.85"
89
UNSAFE_PYO3_BUILD_FREE_THREADED: "1"
910
UNSAFE_PYO3_SKIP_VERSION_CHECK: "1"
@@ -26,12 +27,12 @@ jobs:
2627
curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain "${RUST_TOOLCHAIN_STABLE}" -y
2728
rustup default "${RUST_TOOLCHAIN_STABLE}"
2829
29-
- uses: actions/checkout@v5
30+
- uses: actions/checkout@v6
3031

3132
- name: Cargo.toml and pyproject.toml version must match
3233
run: ./script/check-version
3334

34-
- run: python3 -m pip install --user --upgrade pip "maturin>=1,<2" wheel
35+
- run: python3 -m pip install --user --upgrade pip "maturin>=1.10,<2" wheel
3536

3637
- name: Vendor dependencies
3738
run: |
@@ -59,7 +60,7 @@ jobs:
5960
- run: ./integration/run typestubs
6061

6162
- name: Store sdist
62-
uses: actions/upload-artifact@v4
63+
uses: actions/upload-artifact@v5
6364
with:
6465
name: orjson_sdist
6566
path: dist
@@ -68,84 +69,26 @@ jobs:
6869
if-no-files-found: "error"
6970
compression-level: 0
7071

71-
manylinux_amd64:
72-
runs-on: ubuntu-24.04
72+
manylinux:
73+
name: "manylinux_${{ matrix.arch.arch }}_${{ matrix.python.interpreter }}"
74+
runs-on: "${{ matrix.arch.runner }}"
7375
container:
7476
image: fedora:rawhide
7577
timeout-minutes: 10
7678
strategy:
7779
fail-fast: false
7880
matrix:
7981
python: [
80-
{ interpreter: 'python3.14t', compatibility: "manylinux_2_34", publish: false },
8182
{ interpreter: 'python3.14', compatibility: "manylinux_2_17", publish: true },
8283
{ interpreter: 'python3.13', compatibility: "manylinux_2_17", publish: true },
8384
{ interpreter: 'python3.12', compatibility: "manylinux_2_17", publish: true },
8485
{ interpreter: 'python3.11', compatibility: "manylinux_2_17", publish: true },
8586
{ interpreter: 'python3.10', compatibility: "manylinux_2_17", publish: true },
8687
{ interpreter: 'python3.9', compatibility: "manylinux_2_17", publish: true },
8788
]
88-
env:
89-
CARGO_TARGET_DIR: "/tmp/orjson"
90-
CC: "clang"
91-
CFLAGS: "-O2 -fstrict-aliasing -fno-plt -emit-llvm"
92-
LDFLAGS: "-fuse-ld=lld -Wl,-plugin-opt=also-emit-llvm -Wl,--as-needed -Wl,-zrelro,-znow"
93-
RUSTFLAGS: "-Z unstable-options -C panic=immediate-abort -C linker=clang -C link-arg=-fuse-ld=lld -C linker-plugin-lto -C link-arg=-Wl,-zrelro,-znow -Z mir-opt-level=4 -Z threads=4 -D warnings"
94-
VENV: ".venv"
95-
steps:
96-
97-
- name: CPU info
98-
run: cat /proc/cpuinfo
99-
100-
- run: dnf install --setopt=install_weak_deps=false -y git
101-
102-
- uses: actions/checkout@v5
103-
104-
- name: Build and test
105-
uses: ./.github/actions/manylinux
106-
with:
107-
arch: "x86_64"
108-
interpreter: "${{ matrix.python.interpreter }}"
109-
features: "avx512"
110-
compatibility: "${{ matrix.python.compatibility }}"
111-
publish: "${{ matrix.python.publish }}"
112-
113-
- name: Store wheels
114-
if: matrix.python.publish == true
115-
uses: actions/upload-artifact@v4
116-
with:
117-
name: "orjson_manylinux_amd64_${{ matrix.python.interpreter }}_${{ matrix.python.compatibility }}"
118-
path: dist
119-
overwrite: true
120-
retention-days: 1
121-
122-
- name: Debug
123-
env:
124-
CARGO_TARGET_DIR: "/tmp/orjson"
125-
ORJSON_FEATURES: "avx512"
126-
PYTHON: "${{ matrix.python.interpreter }}"
127-
TARGET: "x86_64-unknown-linux-gnu"
128-
run: |
129-
export PATH="$PWD/.venv:$HOME/.cargo/bin:$PATH"
130-
source .venv/bin/activate
131-
script/debug
132-
133-
manylinux_aarch64:
134-
runs-on: ubuntu-24.04-arm
135-
container:
136-
image: fedora:rawhide
137-
timeout-minutes: 10
138-
strategy:
139-
fail-fast: false
140-
matrix:
141-
python: [
142-
{ interpreter: 'python3.14t', compatibility: "manylinux_2_34", publish: false },
143-
{ interpreter: 'python3.14', compatibility: "manylinux_2_17", publish: true },
144-
{ interpreter: 'python3.13', compatibility: "manylinux_2_17", publish: true },
145-
{ interpreter: 'python3.12', compatibility: "manylinux_2_17", publish: true },
146-
{ interpreter: 'python3.11', compatibility: "manylinux_2_17", publish: true },
147-
{ interpreter: 'python3.10', compatibility: "manylinux_2_17", publish: true },
148-
{ interpreter: 'python3.9', compatibility: "manylinux_2_17", publish: true },
89+
arch: [
90+
{ runner: "ubuntu-24.04", arch: "x86_64", features: "avx512", },
91+
{ runner: "ubuntu-24.04-arm", arch: "aarch64", features: "generic_simd" },
14992
]
15093
env:
15194
CARGO_TARGET_DIR: "/tmp/orjson"
@@ -159,34 +102,32 @@ jobs:
159102
- name: CPU info
160103
run: cat /proc/cpuinfo
161104

162-
- run: dnf install --setopt=install_weak_deps=false -y git
105+
- run: dnf install --setopt=install_weak_deps=false -y git-core
163106

164-
- uses: actions/checkout@v5
107+
- uses: actions/checkout@v6
165108

166109
- name: Build and test
167110
uses: ./.github/actions/manylinux
168111
with:
169-
arch: "aarch64"
112+
arch: "${{ matrix.arch.arch }}"
170113
interpreter: "${{ matrix.python.interpreter }}"
171-
features: "generic_simd"
114+
features: "${{ matrix.arch.features }}"
172115
compatibility: "${{ matrix.python.compatibility }}"
173-
publish: "${{ matrix.python.publish }}"
174116

175117
- name: Store wheels
176118
if: matrix.python.publish == true
177-
uses: actions/upload-artifact@v4
119+
uses: actions/upload-artifact@v5
178120
with:
179-
name: "orjson_manylinux_aarch64_${{ matrix.python.interpreter }}_${{ matrix.python.compatibility }}"
121+
name: "orjson_manylinux_${{ matrix.arch.arch }}_${{ matrix.python.interpreter }}_${{ matrix.python.compatibility }}"
180122
path: dist
181123
overwrite: true
182124
retention-days: 1
183125

184126
- name: Debug
185127
env:
186128
CARGO_TARGET_DIR: "/tmp/orjson"
187-
ORJSON_FEATURES: "generic_simd"
188129
PYTHON: "${{ matrix.python.interpreter }}"
189-
TARGET: "aarch64-unknown-linux-gnu"
130+
TARGET: "${{ matrix.arch.arch }}-unknown-linux-gnu"
190131
run: |
191132
export PATH="$PWD/.venv:$HOME/.cargo/bin:$PATH"
192133
source .venv/bin/activate
@@ -237,7 +178,7 @@ jobs:
237178
},
238179
]
239180
steps:
240-
- uses: actions/checkout@v5
181+
- uses: actions/checkout@v6
241182

242183
- name: build-std
243184
run: |
@@ -260,7 +201,7 @@ jobs:
260201

261202
- name: Store wheels
262203
if: matrix.python.publish == true
263-
uses: actions/upload-artifact@v4
204+
uses: actions/upload-artifact@v5
264205
with:
265206
name: "orjson_manylinux_${{ matrix.target.arch }}_${{ matrix.python.interpreter }}"
266207
path: dist
@@ -322,7 +263,7 @@ jobs:
322263
platform: linux/386
323264
features: unwind
324265
steps:
325-
- uses: actions/checkout@v5
266+
- uses: actions/checkout@v6
326267

327268
- name: build-std
328269
run: |
@@ -365,7 +306,7 @@ jobs:
365306
366307
- name: Store wheels
367308
if: matrix.python.publish == true
368-
uses: actions/upload-artifact@v4
309+
uses: actions/upload-artifact@v5
369310
with:
370311
name: orjson_musllinux_${{ matrix.platform.arch }}_${{ matrix.python.version }}
371312
path: dist
@@ -398,7 +339,7 @@ jobs:
398339
platform: linux/arm/v7
399340
features: ''
400341
steps:
401-
- uses: actions/checkout@v5
342+
- uses: actions/checkout@v6
402343

403344
- name: build-std
404345
run: |
@@ -438,7 +379,7 @@ jobs:
438379
439380
- name: Store wheels
440381
if: matrix.python.publish == true
441-
uses: actions/upload-artifact@v4
382+
uses: actions/upload-artifact@v5
442383
with:
443384
name: orjson_musllinux_${{ matrix.platform.arch }}_${{ matrix.python.version }}
444385
path: dist
@@ -454,7 +395,6 @@ jobs:
454395
fail-fast: false
455396
matrix:
456397
python: [
457-
{ version: '3.14t', macosx_target: "15.0", publish: false },
458398
{ version: '3.14', macosx_target: "15.0", publish: true },
459399
{ version: '3.13', macosx_target: "15.0", publish: true },
460400
{ version: '3.12', macosx_target: "15.0", publish: true },
@@ -471,7 +411,7 @@ jobs:
471411
- name: CPU info
472412
run: sysctl -a | grep brand
473413

474-
- uses: actions/checkout@v5
414+
- uses: actions/checkout@v6
475415

476416
- uses: actions/setup-python@v6
477417
with:
@@ -492,7 +432,7 @@ jobs:
492432
493433
curl -LsSf https://astral.sh/uv/install.sh | sh
494434
uv venv --python python${{ matrix.python.version }}
495-
uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt
435+
uv pip install --upgrade "maturin>=1.10,<2" -r test/requirements.txt -r integration/requirements.txt
496436
497437
mkdir .cargo
498438
cp ci/config.toml .cargo/config.toml
@@ -521,7 +461,7 @@ jobs:
521461

522462
- name: Store wheels
523463
if: matrix.python.publish == true
524-
uses: actions/upload-artifact@v4
464+
uses: actions/upload-artifact@v5
525465
with:
526466
name: orjson_macos_aarch64_${{ matrix.python.version }}
527467
path: target/wheels
@@ -557,7 +497,7 @@ jobs:
557497
- name: CPU info
558498
run: sysctl -a | grep brand
559499

560-
- uses: actions/checkout@v5
500+
- uses: actions/checkout@v6
561501

562502
- uses: actions/setup-python@v6
563503
with:
@@ -578,7 +518,7 @@ jobs:
578518
579519
curl -LsSf https://astral.sh/uv/install.sh | sh
580520
uv venv --python python${{ matrix.python.version }}
581-
uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt
521+
uv pip install --upgrade "maturin>=1.10,<2" -r test/requirements.txt -r integration/requirements.txt
582522
583523
mkdir .cargo
584524
cp ci/config.toml .cargo/config.toml
@@ -607,7 +547,7 @@ jobs:
607547

608548
- name: Store wheels
609549
if: matrix.python.publish == true
610-
uses: actions/upload-artifact@v4
550+
uses: actions/upload-artifact@v5
611551
with:
612552
name: orjson_universal2_aarch64_${{ matrix.python.version }}
613553
path: target/wheels
@@ -644,7 +584,7 @@ jobs:
644584
shell: pwsh
645585
run: Get-WmiObject -Class Win32_Processor -ComputerName. | Select-Object -Property Name, NumberOfCores, NumberOfLogicalProcessors
646586

647-
- uses: actions/checkout@v5
587+
- uses: actions/checkout@v6
648588

649589
- uses: actions/setup-python@v6
650590
with:
@@ -662,7 +602,7 @@ jobs:
662602
run: |
663603
cargo fetch --target "${{ matrix.platform.target }}" &
664604
665-
python.exe -m pip install --upgrade pip "maturin>=1,<2" wheel
605+
python.exe -m pip install --upgrade pip "maturin>=1.10,<2" wheel
666606
python.exe -m pip install -r test\requirements.txt
667607
668608
mkdir .cargo
@@ -679,7 +619,7 @@ jobs:
679619

680620
- name: Store wheels
681621
if: matrix.python.publish == true
682-
uses: actions/upload-artifact@v4
622+
uses: actions/upload-artifact@v5
683623
with:
684624
name: orjson_windows_amd64_${{ matrix.platform.arch }}_${{ matrix.python.version }}
685625
path: target\wheels
@@ -711,7 +651,7 @@ jobs:
711651
shell: pwsh
712652
run: Get-WmiObject -Class Win32_Processor -ComputerName. | Select-Object -Property Name, NumberOfCores, NumberOfLogicalProcessors
713653

714-
- uses: actions/checkout@v5
654+
- uses: actions/checkout@v6
715655

716656
- uses: actions/setup-python@v6
717657
with:
@@ -732,7 +672,7 @@ jobs:
732672
cargo fetch --target "$" &
733673
734674
python.exe -m sysconfig
735-
python.exe -m pip install --upgrade pip "maturin>=1,<2" wheel
675+
python.exe -m pip install --upgrade pip "maturin>=1.10,<2" wheel
736676
python.exe -m pip install -r test\requirements.txt
737677
738678
mkdir .cargo
@@ -749,7 +689,7 @@ jobs:
749689

750690
- name: Store wheels
751691
if: matrix.python.publish == true
752-
uses: actions/upload-artifact@v4
692+
uses: actions/upload-artifact@v5
753693
with:
754694
name: orjson_windows_aarch64_${{ matrix.python.version }}
755695
path: target\wheels
@@ -765,8 +705,7 @@ jobs:
765705
needs: [
766706
macos_aarch64,
767707
macos_universal2_aarch64,
768-
manylinux_aarch64,
769-
manylinux_amd64,
708+
manylinux,
770709
manylinux_cross,
771710
musllinux_aarch64,
772711
musllinux_amd64,
@@ -780,9 +719,9 @@ jobs:
780719
permissions:
781720
id-token: write
782721
steps:
783-
- uses: actions/checkout@v5
722+
- uses: actions/checkout@v6
784723

785-
- uses: actions/download-artifact@v4
724+
- uses: actions/download-artifact@v5
786725
with:
787726
merge-multiple: true
788727
path: dist/

.github/workflows/lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
with:
1212
python-version: "3.14"
1313

14-
- uses: actions/checkout@v5
14+
- uses: actions/checkout@v6
1515

1616
- run: curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain=stable --profile=default -y
1717
- run: pip install -r requirements-lint.txt

.github/workflows/unusual.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@ jobs:
2323
python-version: '${{ matrix.cfg.python }}'
2424
allow-prereleases: true
2525

26-
- run: python -m pip install --user --upgrade pip "maturin>=1,<2" wheel
26+
- run: python -m pip install --user --upgrade pip "maturin>=1.10,<2" wheel
2727

28-
- uses: actions/checkout@v4
28+
- uses: actions/checkout@v6
2929

3030
- name: build
3131
run: |

0 commit comments

Comments
 (0)