Merge pull request #11 from openai/dev/scl/fix-builds

Fix builds for ubuntu aarch64, fix missing feature flags on some platforms
This commit is contained in:
Scott Lessans 2025-08-05 10:49:37 -07:00 committed by GitHub
commit 6f4325b4fb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 16 additions and 14 deletions

View file

@ -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

2
Cargo.lock generated
View file

@ -1317,7 +1317,7 @@ checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d"
[[package]]
name = "openai-harmony"
version = "0.0.2"
version = "0.0.2-alpha.1"
dependencies = [
"anyhow",
"base64",

View file

@ -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"

View file

@ -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.<abi>.so`) and places it in your virtualenv next to the pure-
Python wrapper similar to `pip install -e .` for pure Python projects.

View file

@ -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"

View file

@ -1,5 +1,5 @@
#!/usr/bin/env bash
set -e
source .venv/bin/activate
maturin develop -F python-binding --release
maturin develop --release
pytest "$@"