From 9d1f4a8f42fb508cc74b74c0291e7720d01c7316 Mon Sep 17 00:00:00 2001 From: ijl Date: Wed, 1 May 2024 00:28:26 +0000 Subject: [PATCH] arm7 --- .github/workflows/artifact.yaml | 785 ++++++++++++++++---------------- 1 file changed, 396 insertions(+), 389 deletions(-) diff --git a/.github/workflows/artifact.yaml b/.github/workflows/artifact.yaml index 47710583..9eddfd1d 100644 --- a/.github/workflows/artifact.yaml +++ b/.github/workflows/artifact.yaml @@ -6,196 +6,196 @@ env: UNSAFE_PYO3_SKIP_VERSION_CHECK: "1" jobs: - sdist: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - env: - RUST_TOOLCHAIN: "1.72" # MSRV - steps: - - name: rustup stable - run: | - curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain "${RUST_TOOLCHAIN}" -y - rustup default "${RUST_TOOLCHAIN}" - - - uses: actions/checkout@v4 - - - run: python3 -m pip install --user --upgrade pip "maturin>=1,<2" wheel - - - name: Vendor dependencies - run: | - maturin build - cargo fetch - mkdir .cargo - cp ci/sdist.toml .cargo/config.toml - cargo vendor include/cargo --versioned-dirs - - - run: maturin sdist --out=dist - - - run: python3 -m pip install --user dist/orjson*.tar.gz - env: - CARGO_NET_OFFLINE: "true" - - - run: python3 -m pip install --user -r test/requirements.txt -r integration/requirements.txt mypy - - - run: pytest -s -rxX -v -n 4 test - env: - PYTHONMALLOC: "debug" - - - run: ./integration/run thread - - run: ./integration/run http - - run: ./integration/run init - - run: ./integration/run typestubs - - - name: Store sdist - if: "startsWith(github.ref, 'refs/tags/')" - uses: actions/upload-artifact@v4 - with: - name: orjson_sdist - path: dist - overwrite: true - retention-days: 1 - - manylinux_2_17_amd64: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - python: [ - { version: '3.12', abi: 'cp312-cp312' }, - { version: '3.11', abi: 'cp311-cp311' }, - { version: '3.10', abi: 'cp310-cp310' }, - { version: '3.9', abi: 'cp39-cp39' }, - { version: '3.8', abi: 'cp38-cp38' }, - ] - env: - CC: "clang" - CFLAGS: "-Os -fstrict-aliasing -flto=full" - LDFLAGS: "-fuse-ld=lld -Wl,--as-needed" - RUSTFLAGS: "-C linker=clang -C lto=fat -C link-arg=-fuse-ld=lld -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=4 -D warnings" - PATH: "/__w/orjson/orjson/.venv/bin:/github/home/.cargo/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" - container: - image: fedora:41 - options: --user 0 - steps: - - - name: cpuinfo - run: cat /proc/cpuinfo - - - uses: actions/checkout@v4 - - - name: Build environment - run: | - dnf install -y rustup clang lld python${{ matrix.python.version }} - - rustup-init --default-toolchain "${RUST_TOOLCHAIN}-x86_64-unknown-linux-gnu" --profile minimal --component rust-src -y - cargo fetch --target=x86_64-unknown-linux-gnu & - - curl -LsSf https://astral.sh/uv/install.sh | sh - uv venv --python python${{ matrix.python.version }} - uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt - - mkdir .cargo - cp ci/config.toml .cargo/config.toml - - - name: maturin - run: | - maturin build --release --strip \ - --features=no-panic,unstable-simd,yyjson \ - --compatibility manylinux_2_17 \ - --interpreter python${{ matrix.python.version }} \ - --target=x86_64-unknown-linux-gnu - uv pip install target/wheels/orjson*.whl - - - run: pytest -s -rxX -v -n 4 test - env: - PYTHONMALLOC: "debug" - - - run: ./integration/run thread - - run: ./integration/run http - - run: ./integration/run init - - - name: Store wheels - if: "startsWith(github.ref, 'refs/tags/')" - uses: actions/upload-artifact@v4 - with: - name: orjson_manylinux_2_17_amd64_${{ matrix.python.version }} - path: target/wheels - overwrite: true - retention-days: 1 - - musllinux_1_2: - runs-on: ubuntu-22.04 - strategy: - fail-fast: false - matrix: - python: [ - { version: '3.12' }, - { version: '3.11' }, - { version: '3.10' }, - { version: '3.9' }, - { version: '3.8' }, - ] - platform: - - target: aarch64-unknown-linux-musl - arch: aarch64 - platform: linux/arm64 - - target: x86_64-unknown-linux-musl - arch: x86_64 - platform: linux/amd64 - steps: - - uses: actions/checkout@v4 - - - name: build-std - run: | - mkdir .cargo - cp ci/config.toml .cargo/config.toml - - - name: Build - uses: PyO3/maturin-action@v1 - env: - CC: "gcc" - CFLAGS: "-Os" - LDFLAGS: "-Wl,--as-needed" - RUSTFLAGS: "-Z mir-opt-level=4 -Z threads=4 -D warnings -C target-feature=-crt-static" - with: - rust-toolchain: nightly-2024-04-30 - rustup-components: rust-src - target: ${{ matrix.platform.target }} - manylinux: musllinux_1_2 - args: --release --strip --out=dist --features=no-panic,unstable-simd,yyjson -i python${{ matrix.python.version }} - - - name: QEMU - if: matrix.platform.arch != 'x86_64' - uses: docker/setup-qemu-action@v3 - with: - image: tonistiigi/binfmt:qemu-v8.1.5 - platforms: ${{ matrix.platform.platform }} - - - name: Test - uses: addnab/docker-run-action@v3 - with: - image: quay.io/pypa/musllinux_1_2_${{ matrix.platform.arch }}:latest - options: -v ${{ github.workspace }}:/io -w /io - run: | - apk add tzdata - sed -i '/^psutil/d' test/requirements.txt # missing 3.11, 3.12 wheels - sed -i '/^numpy/d' test/requirements.txt - - python${{ matrix.python.version }} -m venv venv - venv/bin/pip install -U pip wheel - venv/bin/pip install -r test/requirements.txt - venv/bin/pip install orjson --no-index --find-links dist/ --force-reinstall - venv/bin/python -m pytest -s -rxX -v -n 4 test - - - name: Store wheels - if: "startsWith(github.ref, 'refs/tags/')" - uses: actions/upload-artifact@v4 - with: - name: orjson_musllinux_1_2_${{ matrix.platform.arch }}_${{ matrix.python.version }} - path: dist - overwrite: true - retention-days: 1 + # sdist: + # runs-on: ubuntu-22.04 + # strategy: + # fail-fast: false + # env: + # RUST_TOOLCHAIN: "1.72" # MSRV + # steps: + # - name: rustup stable + # run: | + # curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain "${RUST_TOOLCHAIN}" -y + # rustup default "${RUST_TOOLCHAIN}" + + # - uses: actions/checkout@v4 + + # - run: python3 -m pip install --user --upgrade pip "maturin>=1,<2" wheel + + # - name: Vendor dependencies + # run: | + # maturin build + # cargo fetch + # mkdir .cargo + # cp ci/sdist.toml .cargo/config.toml + # cargo vendor include/cargo --versioned-dirs + + # - run: maturin sdist --out=dist + + # - run: python3 -m pip install --user dist/orjson*.tar.gz + # env: + # CARGO_NET_OFFLINE: "true" + + # - run: python3 -m pip install --user -r test/requirements.txt -r integration/requirements.txt mypy + + # - run: pytest -s -rxX -v -n 4 test + # env: + # PYTHONMALLOC: "debug" + + # - run: ./integration/run thread + # - run: ./integration/run http + # - run: ./integration/run init + # - run: ./integration/run typestubs + + # - name: Store sdist + # if: "startsWith(github.ref, 'refs/tags/')" + # uses: actions/upload-artifact@v4 + # with: + # name: orjson_sdist + # path: dist + # overwrite: true + # retention-days: 1 + + # manylinux_2_17_amd64: + # runs-on: ubuntu-22.04 + # strategy: + # fail-fast: false + # matrix: + # python: [ + # { version: '3.12', abi: 'cp312-cp312' }, + # { version: '3.11', abi: 'cp311-cp311' }, + # { version: '3.10', abi: 'cp310-cp310' }, + # { version: '3.9', abi: 'cp39-cp39' }, + # { version: '3.8', abi: 'cp38-cp38' }, + # ] + # env: + # CC: "clang" + # CFLAGS: "-Os -fstrict-aliasing -flto=full" + # LDFLAGS: "-fuse-ld=lld -Wl,--as-needed" + # RUSTFLAGS: "-C linker=clang -C lto=fat -C link-arg=-fuse-ld=lld -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=4 -D warnings" + # PATH: "/__w/orjson/orjson/.venv/bin:/github/home/.cargo/bin:/root/.local/bin:/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + # container: + # image: fedora:41 + # options: --user 0 + # steps: + + # - name: cpuinfo + # run: cat /proc/cpuinfo + + # - uses: actions/checkout@v4 + + # - name: Build environment + # run: | + # dnf install -y rustup clang lld python${{ matrix.python.version }} + + # rustup-init --default-toolchain "${RUST_TOOLCHAIN}-x86_64-unknown-linux-gnu" --profile minimal --component rust-src -y + # cargo fetch --target=x86_64-unknown-linux-gnu & + + # curl -LsSf https://astral.sh/uv/install.sh | sh + # uv venv --python python${{ matrix.python.version }} + # uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt + + # mkdir .cargo + # cp ci/config.toml .cargo/config.toml + + # - name: maturin + # run: | + # maturin build --release --strip \ + # --features=no-panic,unstable-simd,yyjson \ + # --compatibility manylinux_2_17 \ + # --interpreter python${{ matrix.python.version }} \ + # --target=x86_64-unknown-linux-gnu + # uv pip install target/wheels/orjson*.whl + + # - run: pytest -s -rxX -v -n 4 test + # env: + # PYTHONMALLOC: "debug" + + # - run: ./integration/run thread + # - run: ./integration/run http + # - run: ./integration/run init + + # - name: Store wheels + # if: "startsWith(github.ref, 'refs/tags/')" + # uses: actions/upload-artifact@v4 + # with: + # name: orjson_manylinux_2_17_amd64_${{ matrix.python.version }} + # path: target/wheels + # overwrite: true + # retention-days: 1 + + # musllinux_1_2: + # runs-on: ubuntu-22.04 + # strategy: + # fail-fast: false + # matrix: + # python: [ + # { version: '3.12' }, + # { version: '3.11' }, + # { version: '3.10' }, + # { version: '3.9' }, + # { version: '3.8' }, + # ] + # platform: + # - target: aarch64-unknown-linux-musl + # arch: aarch64 + # platform: linux/arm64 + # - target: x86_64-unknown-linux-musl + # arch: x86_64 + # platform: linux/amd64 + # steps: + # - uses: actions/checkout@v4 + + # - name: build-std + # run: | + # mkdir .cargo + # cp ci/config.toml .cargo/config.toml + + # - name: Build + # uses: PyO3/maturin-action@v1 + # env: + # CC: "gcc" + # CFLAGS: "-Os" + # LDFLAGS: "-Wl,--as-needed" + # RUSTFLAGS: "-Z mir-opt-level=4 -Z threads=4 -D warnings -C target-feature=-crt-static" + # with: + # rust-toolchain: nightly-2024-04-30 + # rustup-components: rust-src + # target: ${{ matrix.platform.target }} + # manylinux: musllinux_1_2 + # args: --release --strip --out=dist --features=no-panic,unstable-simd,yyjson -i python${{ matrix.python.version }} + + # - name: QEMU + # if: matrix.platform.arch != 'x86_64' + # uses: docker/setup-qemu-action@v3 + # with: + # image: tonistiigi/binfmt:qemu-v8.1.5 + # platforms: ${{ matrix.platform.platform }} + + # - name: Test + # uses: addnab/docker-run-action@v3 + # with: + # image: quay.io/pypa/musllinux_1_2_${{ matrix.platform.arch }}:latest + # options: -v ${{ github.workspace }}:/io -w /io + # run: | + # apk add tzdata + # sed -i '/^psutil/d' test/requirements.txt # missing 3.11, 3.12 wheels + # sed -i '/^numpy/d' test/requirements.txt + + # python${{ matrix.python.version }} -m venv venv + # venv/bin/pip install -U pip wheel + # venv/bin/pip install -r test/requirements.txt + # venv/bin/pip install orjson --no-index --find-links dist/ --force-reinstall + # venv/bin/python -m pytest -s -rxX -v -n 4 test + + # - name: Store wheels + # if: "startsWith(github.ref, 'refs/tags/')" + # uses: actions/upload-artifact@v4 + # with: + # name: orjson_musllinux_1_2_${{ matrix.platform.arch }}_${{ matrix.python.version }} + # path: dist + # overwrite: true + # retention-days: 1 manylinux_2_17_non_amd64: runs-on: ubuntu-22.04 @@ -204,40 +204,47 @@ jobs: matrix: python: [ { version: '3.12', abi: 'cp312-cp312' }, - { version: '3.11', abi: 'cp311-cp311' }, - { version: '3.10', abi: 'cp310-cp310' }, - { version: '3.9', abi: 'cp39-cp39' }, - { version: '3.8', abi: 'cp38-cp38' }, + # { version: '3.11', abi: 'cp311-cp311' }, + # { version: '3.10', abi: 'cp310-cp310' }, + # { version: '3.9', abi: 'cp39-cp39' }, + # { version: '3.8', abi: 'cp38-cp38' }, ] target: [ + # { + # arch: 'aarch64', + # cflags: '-Os -flto=full -fstrict-aliasing', + # features: 'no-panic,unstable-simd,yyjson', + # rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings', + # target: 'aarch64-unknown-linux-gnu', + # }, { - arch: 'aarch64', - cflags: '-Os -flto=full -fstrict-aliasing', - features: 'no-panic,unstable-simd,yyjson', - rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings', - target: 'aarch64-unknown-linux-gnu', - }, - { - arch: 'ppc64le', - cflags: '-Os -flto=full -fstrict-aliasing', - features: 'no-panic,unstable-simd,yyjson', - rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings', - target: 'powerpc64le-unknown-linux-gnu', - }, - { - arch: 's390x', - cflags: '-Os -flto=full -fstrict-aliasing -march=z10', - features: 'no-panic,yyjson', - rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings -C target-cpu=z10', - target: 's390x-unknown-linux-gnu', + arch: 'armv7', + cflags: '-Os -fstrict-aliasing', + features: 'yyjson', # no SIMD + rustflags: '-D warnings -C opt-level=s', + target: 'armv7-unknown-linux-gnueabihf', }, + # { + # arch: 'ppc64le', + # cflags: '-Os -flto=full -fstrict-aliasing', + # features: 'no-panic,unstable-simd,yyjson', + # rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings', + # target: 'powerpc64le-unknown-linux-gnu', + # }, + # { + # arch: 's390x', + # cflags: '-Os -flto=full -fstrict-aliasing -march=z10', + # features: 'no-panic,yyjson', + # rustflags: '-Z mir-opt-level=4 -C lto=fat -D warnings -C target-cpu=z10', + # target: 's390x-unknown-linux-gnu', + # }, ] steps: - uses: actions/checkout@v4 - - name: build-std - run: | - mkdir .cargo - cp ci/config.toml .cargo/config.toml + # - name: build-std + # run: | + # mkdir .cargo + # cp ci/config.toml .cargo/config.toml - name: Build uses: PyO3/maturin-action@v1 @@ -251,7 +258,7 @@ jobs: rust-toolchain: nightly-2024-04-30 rustup-components: rust-src manylinux: auto - args: --release --strip --out=dist --features=${{ matrix.target.features }} -i python${{ matrix.python.version }} + args: --profile=dev --out=dist --features=${{ matrix.target.features }} -i python${{ matrix.python.version }} - uses: uraimo/run-on-arch-action@v2 name: Test @@ -283,174 +290,174 @@ jobs: overwrite: true retention-days: 1 - macos_universal2_aarch64: - runs-on: macos-14 - strategy: - fail-fast: false - matrix: - python: [ - { version: '3.12', macosx_target: "10.15" }, - { version: '3.11', macosx_target: "10.15" }, - { version: '3.10', macosx_target: "10.15" }, - ] - env: - CC: "clang" - CFLAGS: "-Os -fstrict-aliasing -flto=full" - LDFLAGS: "-Wl,--as-needed" - CFLAGS_x86_64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -march=x86-64-v2 -mtune=generic" - CFLAGS_aarch64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -mcpu=apple-m1 -mtune=generic" - RUSTFLAGS: "-C lto=fat -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=3 -D warnings" - PATH: "/Users/runner/work/orjson/orjson/.venv/bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin" - steps: - - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: "${{ matrix.python.version }}" - - - uses: dtolnay/rust-toolchain@master - with: - toolchain: "nightly-2024-04-30" - targets: "aarch64-apple-darwin, x86_64-apple-darwin" - components: "rust-src" - - - name: Build environment - run: | - cargo fetch --target aarch64-apple-darwin & - - curl -LsSf https://astral.sh/uv/install.sh | sh - uv venv --python python${{ matrix.python.version }} - uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt - - mkdir .cargo - cp ci/config.toml .cargo/config.toml - - - name: maturin - run: | - PATH=$HOME/.cargo/bin:$PATH \ - MACOSX_DEPLOYMENT_TARGET="${{ matrix.python.macosx_target }}" \ - PYO3_CROSS_LIB_DIR=$(python -c "import sysconfig;print(sysconfig.get_config_var('LIBDIR'))") \ - maturin build --release --strip \ - --features=no-panic,unstable-simd,yyjson \ - --interpreter python${{ matrix.python.version }} \ - --target=universal2-apple-darwin - uv pip install target/wheels/orjson*.whl - - - run: pytest -s -rxX -v -n 3 test - env: - PYTHONMALLOC: "debug" - - - run: source .venv/bin/activate && ./integration/run thread - - run: source .venv/bin/activate && ./integration/run http - - run: source .venv/bin/activate && ./integration/run init - - - name: Store wheels - if: "startsWith(github.ref, 'refs/tags/')" - uses: actions/upload-artifact@v4 - with: - name: orjson_universal2_aarch64_${{ matrix.python.version }} - path: target/wheels - overwrite: true - retention-days: 1 - - macos_universal2_amd64: - runs-on: macos-13 - strategy: - fail-fast: false - matrix: - python: [ - { version: '3.9', macosx_target: "10.15" }, - { version: '3.8', macosx_target: "10.15" }, - ] - env: - CC: "clang" - CFLAGS: "-Os -fstrict-aliasing -flto=full" - LDFLAGS: "-Wl,--as-needed" - CFLAGS_x86_64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -march=x86-64-v2 -mtune=generic" - CFLAGS_aarch64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -mcpu=apple-m1 -mtune=generic" - RUSTFLAGS: "-C lto=fat -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=3 -D warnings" - PATH: "/Users/runner/work/orjson/orjson/.venv/bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin" - steps: - - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - with: - python-version: "${{ matrix.python.version }}" - - - uses: dtolnay/rust-toolchain@master - with: - toolchain: "nightly-2024-04-30" - targets: "aarch64-apple-darwin, x86_64-apple-darwin" - components: "rust-src" - - - name: Build environment - run: | - cargo fetch --target aarch64-apple-darwin & - - curl -LsSf https://astral.sh/uv/install.sh | sh - uv venv --python python${{ matrix.python.version }} - uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt - - mkdir .cargo - cp ci/config.toml .cargo/config.toml - - - name: maturin - run: | - PATH=$HOME/.cargo/bin:$PATH \ - MACOSX_DEPLOYMENT_TARGET="${{ matrix.python.macosx_target }}" \ - PYO3_CROSS_LIB_DIR=$(python -c "import sysconfig;print(sysconfig.get_config_var('LIBDIR'))") \ - maturin build --release --strip \ - --features=no-panic,unstable-simd,yyjson \ - --interpreter python${{ matrix.python.version }} \ - --target=universal2-apple-darwin - uv pip install target/wheels/orjson*.whl - - - run: pytest -s -rxX -v -n 3 test - env: - PYTHONMALLOC: "debug" - - - run: source .venv/bin/activate && ./integration/run thread - - run: source .venv/bin/activate && ./integration/run http - - run: source .venv/bin/activate && ./integration/run init - - - name: Store wheels - if: "startsWith(github.ref, 'refs/tags/')" - uses: actions/upload-artifact@v4 - with: - name: orjson_universal2_amd64_${{ matrix.python.version }} - path: target/wheels - overwrite: true - retention-days: 1 - - pypi: - name: PyPI - runs-on: ubuntu-22.04 - if: "startsWith(github.ref, 'refs/tags/')" - needs: [ - sdist, - manylinux_2_17_amd64, - musllinux_1_2, - manylinux_2_17_non_amd64, - macos_universal2_aarch64, - macos_universal2_amd64, - ] - steps: - - uses: actions/download-artifact@v4 - with: - pattern: orjson_* - merge-multiple: true - - uses: actions/setup-python@v5 - with: - python-version: "3.12" - - run: pip install pip "maturin>=1,<2" - - run: ls -1 . - - name: deploy wheel - run: maturin upload --skip-existing --username "$MATURIN_USERNAME" *.whl - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} - - name: deploy sdist - run: maturin upload --skip-existing --username "$MATURIN_USERNAME" *.tar.gz - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + # macos_universal2_aarch64: + # runs-on: macos-14 + # strategy: + # fail-fast: false + # matrix: + # python: [ + # { version: '3.12', macosx_target: "10.15" }, + # { version: '3.11', macosx_target: "10.15" }, + # { version: '3.10', macosx_target: "10.15" }, + # ] + # env: + # CC: "clang" + # CFLAGS: "-Os -fstrict-aliasing -flto=full" + # LDFLAGS: "-Wl,--as-needed" + # CFLAGS_x86_64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -march=x86-64-v2 -mtune=generic" + # CFLAGS_aarch64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -mcpu=apple-m1 -mtune=generic" + # RUSTFLAGS: "-C lto=fat -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=3 -D warnings" + # PATH: "/Users/runner/work/orjson/orjson/.venv/bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin" + # steps: + + # - uses: actions/checkout@v4 + + # - uses: actions/setup-python@v5 + # with: + # python-version: "${{ matrix.python.version }}" + + # - uses: dtolnay/rust-toolchain@master + # with: + # toolchain: "nightly-2024-04-30" + # targets: "aarch64-apple-darwin, x86_64-apple-darwin" + # components: "rust-src" + + # - name: Build environment + # run: | + # cargo fetch --target aarch64-apple-darwin & + + # curl -LsSf https://astral.sh/uv/install.sh | sh + # uv venv --python python${{ matrix.python.version }} + # uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt + + # mkdir .cargo + # cp ci/config.toml .cargo/config.toml + + # - name: maturin + # run: | + # PATH=$HOME/.cargo/bin:$PATH \ + # MACOSX_DEPLOYMENT_TARGET="${{ matrix.python.macosx_target }}" \ + # PYO3_CROSS_LIB_DIR=$(python -c "import sysconfig;print(sysconfig.get_config_var('LIBDIR'))") \ + # maturin build --release --strip \ + # --features=no-panic,unstable-simd,yyjson \ + # --interpreter python${{ matrix.python.version }} \ + # --target=universal2-apple-darwin + # uv pip install target/wheels/orjson*.whl + + # - run: pytest -s -rxX -v -n 3 test + # env: + # PYTHONMALLOC: "debug" + + # - run: source .venv/bin/activate && ./integration/run thread + # - run: source .venv/bin/activate && ./integration/run http + # - run: source .venv/bin/activate && ./integration/run init + + # - name: Store wheels + # if: "startsWith(github.ref, 'refs/tags/')" + # uses: actions/upload-artifact@v4 + # with: + # name: orjson_universal2_aarch64_${{ matrix.python.version }} + # path: target/wheels + # overwrite: true + # retention-days: 1 + + # macos_universal2_amd64: + # runs-on: macos-13 + # strategy: + # fail-fast: false + # matrix: + # python: [ + # { version: '3.9', macosx_target: "10.15" }, + # { version: '3.8', macosx_target: "10.15" }, + # ] + # env: + # CC: "clang" + # CFLAGS: "-Os -fstrict-aliasing -flto=full" + # LDFLAGS: "-Wl,--as-needed" + # CFLAGS_x86_64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -march=x86-64-v2 -mtune=generic" + # CFLAGS_aarch64_apple_darwin: "-O2 -fstrict-aliasing -flto=full -mcpu=apple-m1 -mtune=generic" + # RUSTFLAGS: "-C lto=fat -Z mir-opt-level=4 -Z virtual-function-elimination -Z threads=3 -D warnings" + # PATH: "/Users/runner/work/orjson/orjson/.venv/bin:/Users/runner/.cargo/bin:/usr/local/opt/curl/bin:/usr/local/bin:/usr/local/sbin:/Users/runner/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin:/usr/sbin:/sbin" + # steps: + + # - uses: actions/checkout@v4 + + # - uses: actions/setup-python@v5 + # with: + # python-version: "${{ matrix.python.version }}" + + # - uses: dtolnay/rust-toolchain@master + # with: + # toolchain: "nightly-2024-04-30" + # targets: "aarch64-apple-darwin, x86_64-apple-darwin" + # components: "rust-src" + + # - name: Build environment + # run: | + # cargo fetch --target aarch64-apple-darwin & + + # curl -LsSf https://astral.sh/uv/install.sh | sh + # uv venv --python python${{ matrix.python.version }} + # uv pip install --upgrade "maturin>=1,<2" -r test/requirements.txt -r integration/requirements.txt + + # mkdir .cargo + # cp ci/config.toml .cargo/config.toml + + # - name: maturin + # run: | + # PATH=$HOME/.cargo/bin:$PATH \ + # MACOSX_DEPLOYMENT_TARGET="${{ matrix.python.macosx_target }}" \ + # PYO3_CROSS_LIB_DIR=$(python -c "import sysconfig;print(sysconfig.get_config_var('LIBDIR'))") \ + # maturin build --release --strip \ + # --features=no-panic,unstable-simd,yyjson \ + # --interpreter python${{ matrix.python.version }} \ + # --target=universal2-apple-darwin + # uv pip install target/wheels/orjson*.whl + + # - run: pytest -s -rxX -v -n 3 test + # env: + # PYTHONMALLOC: "debug" + + # - run: source .venv/bin/activate && ./integration/run thread + # - run: source .venv/bin/activate && ./integration/run http + # - run: source .venv/bin/activate && ./integration/run init + + # - name: Store wheels + # if: "startsWith(github.ref, 'refs/tags/')" + # uses: actions/upload-artifact@v4 + # with: + # name: orjson_universal2_amd64_${{ matrix.python.version }} + # path: target/wheels + # overwrite: true + # retention-days: 1 + + # pypi: + # name: PyPI + # runs-on: ubuntu-22.04 + # if: "startsWith(github.ref, 'refs/tags/')" + # needs: [ + # sdist, + # manylinux_2_17_amd64, + # musllinux_1_2, + # manylinux_2_17_non_amd64, + # macos_universal2_aarch64, + # macos_universal2_amd64, + # ] + # steps: + # - uses: actions/download-artifact@v4 + # with: + # pattern: orjson_* + # merge-multiple: true + # - uses: actions/setup-python@v5 + # with: + # python-version: "3.12" + # - run: pip install pip "maturin>=1,<2" + # - run: ls -1 . + # - name: deploy wheel + # run: maturin upload --skip-existing --username "$MATURIN_USERNAME" *.whl + # env: + # MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} + # - name: deploy sdist + # run: maturin upload --skip-existing --username "$MATURIN_USERNAME" *.tar.gz + # env: + # MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}