Skip to content

bazel: model PyO3 and napi-rs cdylibs plus packaging handoff #7

Description

@DecisionNerd

Context

Implements step 6 of #1: model Python (PyO3) and Node (napi-rs) cdylibs plus ecosystem packaging handoff. This is existing Python/Node packaging — not Swift/Kotlin/UniFFI mobile bindings.

Work

  • Build PyO3 and napi-rs cdylibs through Bazel.
  • Preserve Python abi3, wheel metadata, clean-install, Arrow/PyArrow projection, and no-fallback assertions.
  • Preserve Node target triples, addon naming, package assembly, smoke/parity tests, and npm provenance expectations.
  • Allow maturin/napi tooling to assemble/sign/publish, but final-state release workflows must consume Bazel-built native artifacts rather than silently recompiling a different Rust graph.
  • Keep PyPI/npm credentials and OIDC outside cacheable build actions.

Acceptance criteria

Given #9 API/library targets exist under Bazel
When PyO3 and napi-rs cdylibs plus packaging handoff land
Then Bazel-built Python wheels and Node packages can be assembled for CI smoke
And packaging steps do not silently recompile a different native implementation
And Swift/Kotlin/UniFFI work is not introduced

Out of scope

Evidence

  • PR + ledger update; binding build/smoke on Blacksmith where classified; exact-head applicable CI green.
  • Ordinary AGENTS.md close.

Relationships

No activity

Activity on this issue will appear here.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions