@@ -2,8 +2,9 @@ name: artifact
22on : push
33env :
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 : |
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/
0 commit comments