Repository navigation
[4/4] build: align training with the pinned SGLang revision - #1066
Merged
Merged
Conversation
This was referenced Nov 1, 2026
6 tasks
curnane-lab
reviewed
Nov 5, 2026
| "pyyaml", | ||
| "safetensors", | ||
| "sglang==0.5.18", | ||
| "sglang @ git+https://github.com/sgl-project/sglang.git@c757c4bb7c55d1eb69fdb2bdc6e6fb8507acb7a0#subdirectory=python", |
Collaborator
There was a problem hiding this comment.
The Git URL in project.dependencies will make PyPI reject the release. Should we move the SHA pin to a separate requirements file or CI config?
Collaborator
Author
There was a problem hiding this comment.
You're right. I'll add a seperate sglang install command.
Collaborator
|
LGTM. I’ll follow up on the Ascend adaptation as soon as possible. |
curnane-lab
pushed a commit
to curnane-lab/SpecForge
that referenced
this pull request
Nov 7, 2026
The pinned-SGLang install rework (sgl-project#1066) changed the unit-test environment (torch 2.13.0 -> 2.14.1, sglang from a git pin, --no-build-isolation) and broke the job in four places, none of which ran before the merge: - Trust the workspace in the persistent global git config after checkout. With setuptools-scm installed into the sf venv, building specforge with --no-build-isolation invokes git through setuptools-scm's file finder, and the self-hosted container rejects the workspace as dubious ownership. checkout@v4 only whitelists the path in its own temporary git config. - Build flash-attn 2.8.3 with C++20: torch 2.14's headers use std::strong_ordering, but FA's setup.py appends -std=c++17 last. Fetch the sdist from PyPI, patch the flag, build via setup.py bdist_wheel, and cache the wheel under the existing per-ABI build_key (uv caches neither sdist patches nor local directory builds). - test(arena): unwrap the stub server's list-wrapped spec_capture rows; test_mooncake_arena was not updated when _StubCaptureServer started mimicking the real plugin server (sgl-project#1065). - test: use --cuda-graph-bs-decode; the pinned SGLang split --cuda-graph-bs into decode/prefill flags, making the abbreviated form ambiguous. Update the CI dependency tests for the download/patch/build flow: the curl stub serves the PyPI JSON plus a tarball whose setup.py genuinely builds a wheel only after the -std patch is applied.
This was referenced Nov 7, 2026
cursor Bot
pushed a commit
to curnane-lab/SpecForge
that referenced
this pull request
Nov 7, 2026
sgl-project#1065 and sgl-project#1066 were opened against their stacked parents and retargeted to main once the parent merged. Changing the base fires only an edited event, which the default pull_request types omit, so unit-test never ran on either before merge and the broken pinned-SGLang toolchain reached main. Add edited to the trigger types and run the GPU jobs for it only when the base changed. Title and body edits also fire edited; give those runs their own concurrency group so they do not cancel or replace a running or queued test, and skip their jobs. Co-authored-by: curnane-lab <curnane-lab@users.noreply.github.com>
4 of 6 tasks
4 of 6 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Training still pins the old SGLang release while part 1's server uses the required native extension APIs. Pin
pyproject.tomltoc757c4bb7c55d1eb69fdb2bdc6e6fb8507acb7a0and align Torch/Transformers to its required2.14.1/5.19.0versions. Update the ROCm/XPU manifests and installation documentation accordingly.The capture environment now reads its SGLang requirement from
pyproject.toml, eliminating the temporary duplicate SHA in CI. Both virtual environments continue to reuse their caches without forced refresh. Update the static CLI alias table for the pinned revision, so configuration validation still imports no SGLang code.Validation: full
pre-commit run --all-filespassed. H20 config/capture/native-plugin regression against the exact SGLang source revision: 152 passed, 1 skipped (standalone Mooncake-master opt-in). Before the follow-up CI regression fix, the final Git tree exactly matched the original PR plus its four-file lint fix (546ba189), whose full-stack live GPU capture tests passed previously. This validation reused.sgldependencies and the pinned source checkout; a fresh two-environment installation, rebuilt FlashAttention and non-CUDA hardware remain for CI/platform testing. The host used SGLang's Python radix-tree backend because its Cargo is older than the required version; CI installs Rust 1.92.Includes the shared CI dependency-test fix from #1063 via forward merges. All 8 CI dependency tests passed on Linux for this layer; the feature diff is unchanged.
Review and merge order:
Each PR compares against the previous layer. Shared follow-up fixes are merged forward without rewriting published history. After merging a predecessor, retarget the next PR to
main; if using squash merges, rebase the remaining stack before retargeting. The GPU workflow filters PRs targetingmain, so later layers receive that CI run when retargeted. Lint runs on every layer.This stack replaces #1062. Its combined feature changes match #1062 plus the lint fix; subsequent CI regression fixes are shared across the stack.