diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index ce9fd19..29518e7 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -28,14 +28,10 @@ jobs: target: x86_64 - runner: ubuntu-22.04 target: x86 - # - runner: ubuntu-22.04 - # target: aarch64 + - runner: ubuntu-22.04 + target: aarch64 - runner: ubuntu-22.04 target: armv7 - # - runner: ubuntu-22.04 - # target: s390x - # - runner: ubuntu-22.04 - # target: ppc64le steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 @@ -43,6 +39,9 @@ jobs: python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 + env: + # Ensure ring's ARM assembly sees an explicit architecture on aarch64 (glibc) + CFLAGS_aarch64_unknown_linux_gnu: -D__ARM_ARCH=8 with: target: ${{ matrix.platform.target }} args: --release --out dist --find-interpreter @@ -74,6 +73,9 @@ jobs: python-version: 3.x - name: Build wheels uses: PyO3/maturin-action@v1 + env: + # Ensure ring's ARM assembly sees an explicit architecture on aarch64 (musl) + CFLAGS_aarch64_unknown_linux_musl: -D__ARM_ARCH=8 with: target: ${{ matrix.platform.target }} args: --release --out dist --find-interpreter @@ -104,7 +106,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: -F python-binding --release --out dist --find-interpreter + args: --release --out dist --find-interpreter sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels uses: actions/upload-artifact@v4 @@ -130,7 +132,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: -F python-binding --release --out dist --find-interpreter + args: --release --out dist --find-interpreter sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - name: Upload wheels uses: actions/upload-artifact@v4 diff --git a/Cargo.lock b/Cargo.lock index 6b774e8..6dae6d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1317,7 +1317,7 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "openai-harmony" -version = "0.0.2" +version = "0.0.2-alpha.1" dependencies = [ "anyhow", "base64", diff --git a/Cargo.toml b/Cargo.toml index 53cd425..ea43da9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "openai-harmony" -version = "0.0.2" +version = "0.0.2-alpha.1" edition = "2021" license = "Apache-2.0" repository = "https://github.com/openai/harmony" diff --git a/README.md b/README.md index 1b9d4f4..6ce4885 100644 --- a/README.md +++ b/README.md @@ -177,10 +177,10 @@ source .venv/bin/activate # Install maturin and test dependencies pip install maturin pytest mypy ruff # tailor to your workflow # Compile the Rust crate *and* install the Python package in editable mode -maturin develop -F python-binding --release +maturin develop --release ``` -`maturin develop -F python-binding` builds _harmony_ with Cargo, produces a native extension +`maturin develop` builds _harmony_ with Cargo, produces a native extension (`openai_harmony..so`) and places it in your virtualenv next to the pure- Python wrapper – similar to `pip install -e .` for pure Python projects. diff --git a/pyproject.toml b/pyproject.toml index a89a2e6..4c8ad8c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,7 @@ readme = "README.md" demo = ["uvicorn", "fastapi"] [tool.maturin] -features = ["pyo3/extension-module"] +features = ["python-binding", "pyo3/extension-module"] module-name = "openai_harmony" python-source = "python" diff --git a/test_python.sh b/test_python.sh index 09a24de..51176a7 100755 --- a/test_python.sh +++ b/test_python.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash set -e source .venv/bin/activate -maturin develop -F python-binding --release +maturin develop --release pytest "$@"