Skip to content

ci: type-check Node and Python SDKs on PRs#81

Merged
ZhiXiao-Lin merged 1 commit into
mainfrom
chore/ci-sdk-check
Jun 23, 2026
Merged

ci: type-check Node and Python SDKs on PRs#81
ZhiXiao-Lin merged 1 commit into
mainfrom
chore/ci-sdk-check

Conversation

@ZhiXiao-Lin

Copy link
Copy Markdown
Contributor

Why

The Node and Python SDKs are excluded from the core workspace (members = ["core"]) and were only compiled at release time (napi / maturin). So a core change that breaks an SDK never showed up in CI.

That's exactly how v4.2.0 broke: PR #76 added allow_manual_delegation to AutoDelegationConfig, the Python SDK constructed that struct with a literal, and the missing field (error[E0063]) only failed the release wheel build — after crates.io + npm had already published. (Fixed in #80 / v4.2.1.)

What

Adds an SDK build check job to ci.yml (runs on PRs + pushes to main) that cargo checks both SDK manifests:

- run: cargo check --manifest-path sdk/node/Cargo.toml
- run: cargo check --manifest-path sdk/python/Cargo.toml

cargo check does full type/borrow checking — it would have caught the E0063 on the PR. Verified both commands locally (Rust + protoc only; no node/python interpreter setup needed for check). Mirrors the existing check job's setup.

This shifts SDK-breakage detection left: it now fails the PR instead of the release pipeline.

The SDKs are excluded from the core workspace and were only compiled at release
time (napi/maturin), so a core change that broke an SDK (e.g. PR #76 adding a
field to AutoDelegationConfig that the Python SDK constructed with a struct
literal) slipped through CI and only failed the v4.2.0 release wheel build.

Add an 'SDK build check' job running 'cargo check' on both SDK manifests so
such breakage fails on the PR instead.
@ZhiXiao-Lin ZhiXiao-Lin merged commit a519a99 into main Jun 23, 2026
2 checks passed
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.

2 participants