Skip to content

ci: pin sglang to v0.5.10rc0 for proto compat - #1005

Merged
CatherineSue merged 6 commits into
mainfrom
changsu/ci-bump-sglang-v0.5.10rc0
Apr 1, 2026
Merged

CatherineSue merged 6 commits into
mainfrom
changsu/ci-bump-sglang-v0.5.10rc0

Conversation

@CatherineSue

@CatherineSue CatherineSue commented Mar 31, 2026 •

Copy link
Copy Markdown
Member

Description

Problem

CI installs sglang[all] from PyPI which gets v0.5.9. That version has the old built-in grpc_server.py that references EmbedError/EmbedComplete proto types — types we removed in #1001. This causes AttributeError during gRPC warmup in e2e tests.

Solution

Pin to sglang[all]==0.5.10rc0 which includes sgl-project/sglang#20478 — the migration from built-in gRPC server to smg_grpc_servicer.

A TODO comment marks this for revert once a stable >= 0.5.10 is released.

Changes

  • Pin sglang[all]==0.5.10rc0 in scripts/ci_install_sglang.sh

Test Plan

  • CI e2e tests pass with the pinned version
Checklist
  • cargo +nightly fmt passes
  • cargo clippy --all-targets --all-features -- -D warnings passes

Summary by CodeRabbit

  • Chores

    • CI now pins a specific prerelease of SGLang (0.5.10rc0) with a TODO to revert to an unpinned install after a stable release.
    • Optional dependency spec updated to align with the prerelease.
    • Linting adjusted to avoid enforcing newer Python datetime syntax in the gRPC component.
  • Bug Fixes

    • Ensure UTC timestamps are serialized explicitly for load responses.
    • Update messaging socket import to remain compatible with the updated SGLang layout.

@coderabbitai

coderabbitai Bot commented Mar 31, 2026 •

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

CI install now pins SGLang to prerelease 0.5.10rc0 via pip with --prerelease=allow; small code changes update a ZMQ import path and make GetLoads timestamp generation explicitly UTC-aware; ruff config adds an UP017 ignore for grpc_servicer/**.

Changes

Cohort / File(s) Summary
SGLang CI Installation
scripts/ci_install_sglang.sh
Changed pip install from unpinned sglang[all] to pinned prerelease sglang[all]==0.5.10rc0 with --prerelease=allow; added TODO comments about reverting to unpinned install after a stable >=0.5.10 and noted rc0-specific proto-type dependency.
gRPC servicer — imports & timestamp
grpc_servicer/smg_grpc_servicer/sglang/request_manager.py, grpc_servicer/smg_grpc_servicer/sglang/servicer.py
Replaced get_zmq_socket import source to sglang.srt.utils.network.get_zmq_socket; changed GetLoads timestamp generation to datetime.now(timezone.utc).isoformat() (explicit UTC). No other logic changes.
Project metadata
grpc_servicer/pyproject.toml
Bumped optional-dependency specifier for sglang from >=0.5.9 to >=0.5.10rc0.
Lint config
ruff.toml
Added per-file ignore for grpc_servicer/** to disable rule UP017 (Python 3.11+ datetime.UTC enforcement) in that directory.
Tests
e2e_test/chat_completions/test_openai_server.py
Removed SGLang-conditional mutation of STOP_SEQUENCE_TRIMMED and the is_sglang import; test now relies on existing class default.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

ci

Suggested reviewers

  • slin1237
  • key4ng
  • XinyueZhang369

Poem

🐰 I pin a hop to rc0's light,
Pip hums softly through the night,
ZMQ found a new little lane,
Timestamps march in UTC's train,
I nibble TODO carrots with delight.

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'ci: pin sglang to v0.5.10rc0 for proto compat' directly reflects the main change: pinning SGLang to a specific prerelease version to resolve proto compatibility issues in CI.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch changsu/ci-bump-sglang-v0.5.10rc0

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

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request updates the ci_install_sglang.sh script to pin the sglang[all] installation to version 0.5.10rc0. This change is a temporary measure to include the smg_grpc_servicer migration and resolve issues with removed proto types until a stable version is released. I have no feedback to provide.

@coderabbitai coderabbitai 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@grpc_servicer/smg_grpc_servicer/sglang/request_manager.py`:
- Around line 38-39: The project currently imports get_zmq_socket from
sglang.srt.utils.network in request_manager.py but pyproject.toml allows
sglang>=0.5.9 which lacks that module layout; update the dependency to
sglang>=0.5.10rc0 in pyproject.toml or add a compatibility fallback in
request_manager.py that first tries "from sglang.srt.utils.network import
get_zmq_socket" and, on ImportError, falls back to the older path (e.g., "from
sglang.srt.utils import get_zmq_socket" or the correct legacy location); adjust
imports near get_or_create_event_loop and kill_process_tree usage accordingly so
get_zmq_socket is always defined.
🪄 Autofix (Beta)

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: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: cbf6f199-b500-4ade-8797-27c9939eaad8

📥 Commits

Reviewing files that changed from the base of the PR and between 7f40fee and 718f22e.

📒 Files selected for processing (3)
  • grpc_servicer/smg_grpc_servicer/sglang/request_manager.py
  • grpc_servicer/smg_grpc_servicer/sglang/servicer.py
  • ruff.toml

Comment thread grpc_servicer/smg_grpc_servicer/sglang/request_manager.py
@github-actions github-actions Bot added the dependencies Dependency updates label Apr 1, 2026
The old sglang built-in grpc_server.py references EmbedError/EmbedComplete
proto types that were removed in our proto cleanup. v0.5.10rc0 includes
sgl-project/sglang#20478 which migrates to smg_grpc_servicer.

TODO: revert to "sglang[all]" once a stable >= 0.5.10 is released.
Signed-off-by: Chang Su <chang.s.su@oracle.com>
sglang 0.5.10rc0 depends on flash-attn-4>=4.0.0b4 which is a pre-release.
uv requires --prerelease=allow to resolve pre-release dependencies.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
…onfig

datetime.UTC was added in Python 3.11 but grpc_servicer declares
requires-python >= 3.10. Replace with timezone.utc and add ruff
per-file-ignore for UP017 on grpc_servicer/ to prevent pyupgrade
from reverting to 3.11+ syntax.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
get_zmq_socket was moved from sglang.srt.utils to
sglang.srt.utils.network in newer sglang versions.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
get_zmq_socket moved to sglang.srt.utils.network in 0.5.10rc0.
The old sglang>=0.5.9 constraint allowed versions that lack this path.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
@mergify

mergify Bot commented Apr 1, 2026

Copy link
Copy Markdown
Contributor

Hi @CatherineSue, this PR has merge conflicts that must be resolved before it can be merged. Please rebase your branch:

git fetch origin main
git rebase origin/main
# resolve any conflicts, then:
git push --force-with-lease

@mergify mergify Bot added the needs-rebase PR has merge conflicts that need to be resolved label Apr 1, 2026
@github-actions github-actions Bot added the tests Test changes label Apr 1, 2026
sglang v0.5.10rc0 no longer trims stop sequences in streaming for
Harmony models — behavior now matches the class default
(STOP_SEQUENCE_TRIMMED = False). Remove the sglang-specific override.

Signed-off-by: Chang Su <chang.s.su@oracle.com>
@CatherineSue
CatherineSue force-pushed the changsu/ci-bump-sglang-v0.5.10rc0 branch from bb214b5 to 40c439d Compare April 1, 2026 01:21
@mergify mergify Bot removed the needs-rebase PR has merge conflicts that need to be resolved label Apr 1, 2026
@CatherineSue
CatherineSue merged commit 5321bce into main Apr 1, 2026
39 of 40 checks passed
@CatherineSue
CatherineSue deleted the changsu/ci-bump-sglang-v0.5.10rc0 branch April 1, 2026 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates tests Test changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant