Conversation
Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (20)
Included review availability: 4 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour. 📝 SummarySummary by CodeRabbit
WalkthroughThe changes update workspace and package versions for the v2.0.0 release, set Docker release workflows to use v2.0.0 as their default SMG ref, and add the external router crate to the tier 2 publishing matrix. ChangesRelease updates
Priority: ➖ Normal Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Possibly related PRs
Suggested labels: Merge Risk: ⚪ Minimal · up to The reviewed release metadata and workflow updates show no identified merge-blocking issue; mergeability risk is minimal. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Reviewed as a full review (PR opened). 0 🔴 Important, 0 🟡 Nit, 0 🟣 Pre-existing — no inline comments.
Template check: PR description follows PULL_REQUEST_TEMPLATE.md; all required sections present and filled.
What was verified:
- Every bump is consistent across the workspace pins in
Cargo.toml, the crate manifests, andCargo.lock(all 13 lock entries match, includingsmg/smg-python/smg-golangat 2.0.0). No stale1.10.1references remain (the one grep hit is the externalhttparsecrate). smg-external-routerin tier 2 ofrelease-crates.ymlis correct: its internal deps (openai-protocol,data-connector,smg-mcp) are all published in tier 1, and it has no dev-dependencies that could breakcargo publish. It is not yet on crates.io, so the publish-crate action'smax_version // "0.0.0"fallback will publish 0.1.0 as expected.- All 17 internal dependencies of the tier-4
smgcrate are now covered by tiers 1–3, so the tier-4 publish no longer fails on the missingsmg-external-router. - Unbumped published crates (
smg-auth,smg-mesh,smg-wasm,wfaas,data-connector,smg-mm-rdma,smg-client) have zero commits since v1.10.1.smg-radix-treeis already on crates.io at 0.1.0 but its tree is unchanged since the publishing commit, so keeping 0.1.0 is correct.smg-rlandsmg-external-routerare unpublished, so their first publish at 0.1.0 picks up all current code.
Operational note (pre-existing behavior, not a defect of this PR): the three engine Docker release workflows trigger on push to main when bindings/python/pyproject.toml changes — i.e., at the moment this PR merges — and will build at ref v2.0.0. If the tag doesn't exist yet at that point, those runs fail loudly at the git checkout step in docker/engine.Dockerfile and need a re-run after tagging, same as previous releases.
GenerateComplete.media_identity (field 15) landed after 0.4.21 was cut, so the wheel on PyPI does not carry it and the servicer's descriptor guard leaves the prefill media identity relay off for anyone installing from PyPI. The servicer has sixteen unpublished commits since 0.12.0. Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
| requires-python = ">=3.10" | ||
| dependencies = [ | ||
| "smg-grpc-proto>=0.4.20", # 0.4.20: first release with GenerateRequest.extra_mm_inputs (field 11) | ||
| "smg-grpc-proto>=0.4.22", # 0.4.22: first release with GenerateComplete.media_identity (15) and GetServerInfoResponse.mm_processor_source (18) |
There was a problem hiding this comment.
🟡 Nit: The comment says 0.4.22 is the first release with GetServerInfoResponse.mm_processor_source (18), but that field already shipped in 0.4.21 — it was added in the same commit that cut 0.4.21 (b34ff11, #2626), and the PR description's own wheel inspection confirms the 0.4.21 wheel carries it. Only GenerateComplete.media_identity (15) is new in 0.4.22, and it alone justifies the >=0.4.22 floor. Suggest documenting just the field that motivates the pin so future readers relaxing or auditing the bound aren't misled:
| "smg-grpc-proto>=0.4.22", # 0.4.22: first release with GenerateComplete.media_identity (15) and GetServerInfoResponse.mm_processor_source (18) | |
| "smg-grpc-proto>=0.4.22", # 0.4.22: first release with GenerateComplete.media_identity (field 15) |
Description
Problem
225 commits have landed since
v1.10.1, including one breaking change to the publishedsmgRust API (#2532,refactor(discovery)!:), so the next release cannot be a1.xbump. The release checker also has no entry for the newsmg-external-routercrate, whichsmgdepends on, so the tier-4 publish ofsmgwould fail on crates.io.Solution
Apply the version bumps the release checker proposes against
v1.10.1, refresh the workspace pins andCargo.lock, and addsmg-external-routerto tier 2 of the crates workflow (its workspace dependencies areopenai-protocol,data-connectorandsmg-mcp, all tier 1).Changes
smg1.10.1 → 2.0.0, and the same version for the Python and Go bindings, the Helm chart (versionandappVersion) and the three engine Docker release workflows.openai-protocol1.14.0,reasoning-parser1.8.0,tool-parser1.8.0,llm-tokenizer1.8.0,kv-index1.5.0,llm-multimodal1.12.0,smg-grpc-client1.13.0,engine-zmq-client0.2.0,smg-mcp2.3.4,openapi-gen0.2.0. New crates stay at their initial versions (smg-radix-tree,smg-external-router,smg-rl0.1.0).smg-grpc-proto0.4.21 andsmg-grpc-servicer0.12.0 were already bumped in their PRs.Cargo.tomldependency pins andCargo.lockupdated to match.smg-grpc-proto0.4.21 → 0.4.22 andsmg-grpc-servicer0.12.0 → 0.13.0 withsmg-grpc-proto>=0.4.22.GenerateComplete.media_identity(field 15, fix(pd): process worker-side media once, on the prefill leg #2627) landed after 0.4.21 was cut, so the 0.4.21 wheel on PyPI carriesmm_processor_sourcebut notmedia_identity, and the servicer's descriptor guard leaves the prefill media-identity relay off for PyPI installs; the servicer also has sixteen unpublished commits since 0.12.0. Merging triggers the gRPC PyPI workflow, which publishes the proto before the servicer..github/workflows/release-crates.yml:smg-external-routeradded to tier 2. The other tiers were checked against the workspace dependency graph and need no change.Breaking change
refactor(discovery)!: split worker reconciliation and mesh-router discovery(#2532) changes thesmgcrate's Rust API:service_discovery::ServiceDiscoveryConfiglosesrouter_selectorandrouter_mesh_port_annotation(moved tomesh_discovery::MeshDiscoveryConfig),service_discovery::PodInfolosesis_routerandmesh_portand itsipbecomesstd::net::IpAddr,start_service_discoverydrops themesh_cluster_stateandmesh_portarguments (callmesh_discovery::start_mesh_discoveryseparately), andserver::ServerConfiggains a requiredmesh_discovery_configfield (Nonekeeps the previous behaviour). The CLI, Python and Go bindings, and serialized configuration are unaffected.Test Plan
make check-versions TAG=v1.10.1reports every crate bumped and no remaining issues.smg-grpc-proto0.4.21 on PyPI inspected:vllm_engine_pb2.pyhasmm_processor_sourceand nomedia_identity.cargo update -w --offlineproduced the 13Cargo.lockversion updates in this PR;cargo metadata --offlineresolves.Checklist
cargo +nightly fmtpasses (no Rust source changed)cargo clippy --all-targets --all-features -- -D warningspasses (CI)