Skip to content

rerun-sdk: add build-rerun-sdk.yml for riscv64 wheels - #1085

Open
luhenry wants to merge 4 commits into
mainfrom
rerun-sdk
Open

rerun-sdk: add build-rerun-sdk.yml for riscv64 wheels#1085
luhenry wants to merge 4 commits into
mainfrom
rerun-sdk

Conversation

@luhenry

@luhenry luhenry commented Sep 6, 2026

Copy link
Copy Markdown
Member

Compiles the rerun_bindings PyO3 extension (rerun_py/) against the rerun workspace's ~760 riscv64 crates (datafusion, lance, tonic/tokio, hdf5-pure). Upstream publishes no riscv64 wheel.

Mirrors upstream's reusable_build_and_upload_wheels.yml MODE=pr build (its own default Cargo features).

Differs from upstream

  • Ships no rerun-cli binary - the wgpu/egui native viewer is a separate ~16-core job needing a wasm/JS toolchain, out of scope here; RERUN_ALLOW_MISSING_BIN=1 skips build.rs's requirement for it, so import rerun/logging/gRPC work but rerun.spawn()/serve() raise instead of launching a viewer.
  • yum install protobuf-compiler protobuf-devel + PROTOC_INCLUDE=/usr/include - lance needs protoc at build time; upstream's wheel-packaged protoc has no riscv64 build.
  • --no-build-isolation - build.rs refuses to run inside pip's isolated build venv.

Matrix: cp312/cp313/cp314 only - our registry has no riscv64 pyarrow (a hard runtime dependency) for cp310/cp311, the abi3 floor pyo3 declares.

Testing

  • Skips tests/e2e_redap_tests and tests/api_sandbox (upstream sandboxes, not the SDK's regression tests) and tests/integration/test_headless_viewer.py (spawns the unbuilt rerun-cli)
  • Skips a handful of files needing av/torchvision/datafusion(py)/polars, none of which have riscv64 wheels anywhere

License: OK

Built on cp312; results pending.

luhenry added a commit that referenced this pull request Sep 6, 2026
rerun's own .cargo/config.toml unconditionally points PYO3_CONFIG_FILE
at rerun_py/pyo3-build.cfg for every cargo invocation, expecting a pixi
activation hook to have written it first; outside pixi the file never
exists and pyo3-build-config's build script fails to open it.
lance-core 9.0.0's SIMD_SUPPORT closure has cfg arms for
aarch64/x86_64/loongarch64 with no catch-all, so it evaluates to () instead
of SimdSupport on riscv64 and fails to compile (E0308). No compatible
9.0.x release fixes it, so a riscv64-fixed copy of the crate is vendored
from its crates.io tarball at build time and wired in via
[patch.crates-io].
crates.io's API returns 403 for requests with no User-Agent header.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant