Skip to content

chore(release): bump versions for v2.0.0 - #2669

Closed
slin1237 wants to merge 3 commits into
mainfrom
chore/release-v2.0.0
Closed

slin1237 wants to merge 3 commits into
mainfrom
chore/release-v2.0.0

Conversation

@slin1237

@slin1237 slin1237 commented Sep 24, 2026 •

Copy link
Copy Markdown
Member

Description

Problem

225 commits have landed since v1.10.1, including one breaking change to the published smg Rust API (#2532, refactor(discovery)!:), so the next release cannot be a 1.x bump. The release checker also has no entry for the new smg-external-router crate, which smg depends on, so the tier-4 publish of smg would fail on crates.io.

Solution

Apply the version bumps the release checker proposes against v1.10.1, refresh the workspace pins and Cargo.lock, and add smg-external-router to tier 2 of the crates workflow (its workspace dependencies are openai-protocol, data-connector and smg-mcp, all tier 1).

Changes

  • smg 1.10.1 → 2.0.0, and the same version for the Python and Go bindings, the Helm chart (version and appVersion) and the three engine Docker release workflows.
  • Independently published crates, by detected change level: openai-protocol 1.14.0, reasoning-parser 1.8.0, tool-parser 1.8.0, llm-tokenizer 1.8.0, kv-index 1.5.0, llm-multimodal 1.12.0, smg-grpc-client 1.13.0, engine-zmq-client 0.2.0, smg-mcp 2.3.4, openapi-gen 0.2.0. New crates stay at their initial versions (smg-radix-tree, smg-external-router, smg-rl 0.1.0). smg-grpc-proto 0.4.21 and smg-grpc-servicer 0.12.0 were already bumped in their PRs.
  • Workspace Cargo.toml dependency pins and Cargo.lock updated to match.
  • smg-grpc-proto 0.4.21 → 0.4.22 and smg-grpc-servicer 0.12.0 → 0.13.0 with smg-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 carries mm_processor_source but not media_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-router added 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 the smg crate's Rust API: service_discovery::ServiceDiscoveryConfig loses router_selector and router_mesh_port_annotation (moved to mesh_discovery::MeshDiscoveryConfig), service_discovery::PodInfo loses is_router and mesh_port and its ip becomes std::net::IpAddr, start_service_discovery drops the mesh_cluster_state and mesh_port arguments (call mesh_discovery::start_mesh_discovery separately), and server::ServerConfig gains a required mesh_discovery_config field (None keeps the previous behaviour). The CLI, Python and Go bindings, and serialized configuration are unaffected.

Test Plan

  • make check-versions TAG=v1.10.1 reports every crate bumped and no remaining issues.
  • smg-grpc-proto 0.4.21 on PyPI inspected: vllm_engine_pb2.py has mm_processor_source and no media_identity.
  • cargo update -w --offline produced the 13 Cargo.lock version updates in this PR; cargo metadata --offline resolves.
  • No Rust source changes; the Clippy and test gates are left to CI for this version-only PR.
Checklist
  • cargo +nightly fmt passes (no Rust source changed)
  • cargo clippy --all-targets --all-features -- -D warnings passes (CI)
  • (Optional) Documentation updated
  • (Optional) Please join us on Slack #sig-smg to discuss, review, and merge PRs

Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
Signed-off-by: Simo Lin <25425177+slin1237@users.noreply.github.com>
@github-actions github-actions Bot added tokenizer Tokenizer related changes python-bindings Python bindings changes dependencies Dependency updates ci CI/CD configuration changes grpc gRPC client and router changes mcp MCP related changes tool-parser Tool/function call parser changes reasoning-parser Reasoning parser changes multimodal Multimodal crate changes protocols Protocols crate changes model-gateway Model gateway crate changes kv-index KV index crate changes labels Sep 24, 2026
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

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 configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: ed508147-e28d-406d-8764-388da854751f

📥 Commits

Reviewing files that changed from the base of the PR and between 4a9c7ba and 43b639d.

⛔ Files ignored due to path filters (1)
  • Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (20)
  • .github/workflows/release-crates.yml
  • .github/workflows/release-sglang-docker.yml
  • .github/workflows/release-trtllm-docker.yml
  • .github/workflows/release-vllm-docker.yml
  • Cargo.toml
  • bindings/golang/Cargo.toml
  • bindings/python/Cargo.toml
  • bindings/python/pyproject.toml
  • clients/openapi-gen/Cargo.toml
  • crates/engine_zmq_client/Cargo.toml
  • crates/grpc_client/Cargo.toml
  • crates/kv_index/Cargo.toml
  • crates/mcp/Cargo.toml
  • crates/multimodal/Cargo.toml
  • crates/protocols/Cargo.toml
  • crates/reasoning_parser/Cargo.toml
  • crates/tokenizer/Cargo.toml
  • crates/tool_parser/Cargo.toml
  • deploy/helm/smg/Chart.yaml
  • model_gateway/Cargo.toml

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.


📝 Summary

Summary by CodeRabbit

  • Release Updates
    • Release workflows now default to SMG v2.0.0 for Docker builds; pull requests continue to use the main branch, and explicit version overrides remain supported.
    • Tier 2 crate releases now include the external router.
  • Version Updates
    • The SMG application, Helm chart, and Go and Python packages are now versioned 2.0.0. Related libraries and clients also received updated versions.

Walkthrough

The 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.

Changes

Release updates

Layer / File(s) Summary
Release version metadata
Cargo.toml, bindings/*/Cargo.toml, bindings/python/pyproject.toml, clients/openapi-gen/Cargo.toml, crates/*/Cargo.toml, deploy/helm/smg/Chart.yaml, model_gateway/Cargo.toml
Updates selected workspace dependency versions and package versions. The Helm chart and application versions change to 2.0.0.
Docker release workflow defaults
.github/workflows/release-sglang-docker.yml, .github/workflows/release-trtllm-docker.yml, .github/workflows/release-vllm-docker.yml
Sets the default SMG ref and tag examples to v2.0.0. Pull request refs remain main where specified.
Tier 2 crate publishing matrix
.github/workflows/release-crates.yml
Adds smg-external-router at crates/external_router to the tier 2 publishing matrix.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Possibly related PRs

  • smg-project/smg#695: Updates release metadata and Docker workflow refs, including package and binding versions.
  • smg-project/smg#1665: Updates release versions and the SGLang, TRT-LLM, and vLLM workflow refs.

Suggested labels: workflow

Merge Risk: ⚪ Minimal · up to 43b63

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)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description clearly explains the v2.0.0 release version bumps, dependency updates, workflow changes, breaking API context, and validation steps.
Title check ✅ Passed The title concisely and accurately summarizes the primary change: updating release versions for v2.0.0.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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, and Cargo.lock (all 13 lock entries match, including smg/smg-python/smg-golang at 2.0.0). No stale 1.10.1 references remain (the one grep hit is the external httparse crate).
  • smg-external-router in tier 2 of release-crates.yml is correct: its internal deps (openai-protocol, data-connector, smg-mcp) are all published in tier 1, and it has no dev-dependencies that could break cargo publish. It is not yet on crates.io, so the publish-crate action's max_version // "0.0.0" fallback will publish 0.1.0 as expected.
  • All 17 internal dependencies of the tier-4 smg crate are now covered by tiers 1–3, so the tier-4 publish no longer fails on the missing smg-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-tree is 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-rl and smg-external-router are 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)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 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:

Suggested change
"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)

@slin1237 slin1237 closed this Sep 24, 2026
@slin1237
slin1237 deleted the chore/release-v2.0.0 branch September 24, 2026 01:30
@slin1237

Copy link
Copy Markdown
Member Author

Superseded by #2670: same bumps with smg at 1.11.0 instead of 2.0.0 (the #2532 API change has no consumers outside this repository), plus the proto/servicer republish.

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

Labels

ci CI/CD configuration changes dependencies Dependency updates grpc gRPC client and router changes kv-index KV index crate changes mcp MCP related changes model-gateway Model gateway crate changes multimodal Multimodal crate changes protocols Protocols crate changes python-bindings Python bindings changes reasoning-parser Reasoning parser changes tokenizer Tokenizer related changes tool-parser Tool/function call parser changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant