ci(release): publish Rust crates from release tags - #329
Conversation
Signed-off-by: nachiketb <nachiketb@nvidia.com>
|
WalkthroughThe release workflow now validates matching Python and Rust versions, publishes five Rust crates in dependency order, and makes PyPI publication depend on the Rust server. Documentation now directs users to install and run the published ChangesRust release and installation
Estimated code review effort: 4 (Complex) | ~45 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/getting_started.md`:
- Around line 110-119: Update the four routing-algorithm documentation links
that still target `#build-the-server` to use `#install-the-server`, and revise their
surrounding wording from “building” to “installing.” Keep the Install the server
section in docs/getting_started.md as the canonical destination.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 87d69a8c-3a14-4a62-b522-41751596b862
📒 Files selected for processing (12)
.github/workflows/publish.ymlREADME.mdcrates/libsy-llm-client/Cargo.tomlcrates/switchyard-server/Cargo.tomlcrates/switchyard-server/README.mddocs/cli_reference.mddocs/getting_started.mddocs/internal/release_workflow.mddocs/routing_algorithms/escalation_router_routing.mddocs/routing_algorithms/llm_classifier_routing.mddocs/routing_algorithms/overview.mddocs/routing_algorithms/random_routing.md
Signed-off-by: nachiketb <nachiketb@nvidia.com>
Signed-off-by: nachiketb <nachiketb@nvidia.com>
What
Publish the five public Rust packages from the same stable release tag used for
nemo-switchyard:switchyard-protocolswitchyard-libsyswitchyard-translationswitchyard-llm-clientswitchyard-serverUpdate the standalone server documentation to install the published binary with
cargo install --locked switchyard-server.Why
The Rust libraries and server are versioned with the Python package but are not currently released by CI. Publishing from one
vMAJOR.MINOR.PATCHtag keeps the Python and Rust artifacts aligned and makes the standalone server directly installable from crates.io.How
switchyard-server.How tested
.github/workflows/publish.ymlas YAML.cargo metadata --locked --no-deps --format-version 1cargo publish --dry-run --locked --package switchyard-protocoluv run pytest tests/readme/test_readme.py tests/getting_started/test_getting_started.py -vmake publishfromdocs/(strict MkDocs build).git diff --checkNo crates or Python distributions were uploaded during validation.
What to review
CARGO_REGISTRY_TOKENboundary: it is exposed only tocargo publishsteps.Release setup
The repository already has a
CARGO_REGISTRY_TOKENActions secret. Its crates.io token must be authorized to updateswitchyard-protocolandswitchyard-translationand to create the three new crate names.A release tag must point to a commit containing this workflow; tagging an older commit will execute the older workflow and will not publish these crates.
Summary by CodeRabbit
New Features
Documentation
switchyard-servercommand.