Skip to content

refactor(srt): bind script-installed component versions from the master config - #3821

Draft
adibarra wants to merge 4 commits into
refactor/srt-fabric-refsfrom
refactor/srt-bound-versions
Draft

adibarra wants to merge 4 commits into
refactor/srt-fabric-refsfrom
refactor/srt-bound-versions

Conversation

@adibarra

@adibarra adibarra commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Component versions that repo scripts install now come from the master config, not hardcoded pins.

  • Scripts: these read their version from env and check it with check_env_vars, with no defaults:
    • vllm-router.sh, renamed from vllm-router-0.1.14.sh; reads ROUTER_VERSION.
    • vllm-mooncake.sh, renamed from vllm-mooncake-0.3.11.sh and now also called by kimik3-b300-mooncake.sh and the mooncake-master preambles; reads KV_OFFLOAD_BACKEND_VERSION.
    • lmcache-mp-rocm.sh; reads KV_OFFLOAD_BACKEND_VERSION.
    • glm5.3-tilert-rocm.sh; reads ROUTER_VERSION, replacing the recipe's TILERT_VERSION.
    • All use set -eo pipefail.
  • Binder: writes the master router / kv-offload-backend version into each place the install runs: top-level environment for setup scripts, and services[].env for preambles that run an installer.
    • A missing master version, a mismatched component, or a fragment that sets these keys fails before submission.
    • The MI355X frontend's SETUP_PIP_PACKAGES vllm-router== pin is left in place and checked against the master version.
  • Fingerprint: includes the bound versions, which come from the row, so a version bump changes the fingerprint and old results can't be reused.
  • setup_script check: a setup_script that resolves to no file in configs/ (ours or the submodule's) now fails at launch and in infx generate. Upstream srtctl only warns.
  • Docs: CONFIGS.md and RECIPES.md updated.

Verification

  • Harness: every srt row × reachable cluster. The only differences are the intended ones: renamed setup_script in 74 recipes, ROUTER_VERSION added in 70, KV_OFFLOAD_BACKEND_VERSION added in 42, mooncake preamble changed in 39, and GLM-5.3 TILERT_VERSION replaced by ROUTER_VERSION.
  • Installed versions: all 290 install sites, rendered with a stub python3, run identical pip commands base vs head except:
    • the H100 mooncake-master install now passes --quiet;
    • mooncake-master preambles now also run the MooncakeDistributedStore import check that worker installs already run.
  • Tests: version bound into setup and service env; missing master version fails; each installer fails without its env var and installs exactly the bound version.
  • Suite: the full CI pytest command passes 2319 tests, and ruff is clean.

No hardware smoke yet. One MI300X LMCache point and one Kimi-K3 B300 point would cover the script and service paths.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Thanks for the contribution!

  • Review: If this PR changes files owned by someone other than a repository admin or @SemiAnalysisAI/core, ask one eligible CODEOWNER to complete the latest PR_REVIEW_CHECKLIST.md before contacting a core maintainer on Slack. Follow the template exactly, including As a PR reviewer and CODEOWNER, I have reviewed this and have, so sign-off verification triggers.
  • PR verification: Sweeps run only when the PR appends an inferencex-e2e/perf-changelog.yaml entry and carries exactly one primary label: full-sweep-fail-fast (strongly recommended; canary plus per-matrix fail-fast), full-sweep-enabled (canary; matrix jobs continue after a failure), or non-canary-full-sweep-enabled (no canary or fail-fast). The modifiers all-evals, evals-only, and agentx-fast require a primary label. On fork PRs, a maintainer applies the label. See sweep labels and reuse.
  • After merging: PR authors must ensure all GitHub Actions jobs pass. Transient failures often pass on rerun; see how to rerun failed jobs.
中文

感谢你的贡献!

  • **审阅:**如果 PR 修改的文件归属于仓库管理员及 @SemiAnalysisAI/core 之外的 CODEOWNER,请先联系一位有资格的 CODEOWNER 填写最新的 PR_REVIEW_CHECKLIST.md,再通过 Slack 联系核心维护者。必须严格遵循模板,并保留 As a PR reviewer and CODEOWNER, I have reviewed this and have,才能触发签核验证。
  • **PR 验证:**只有当 PR 在 inferencex-e2e/perf-changelog.yaml 末尾追加了条目,并且恰好带有一个主标签时,才会运行扫描:full-sweep-fail-fast(强烈推荐;canary 加逐矩阵 fail-fast)、full-sweep-enabled(有 canary;矩阵任务在失败后继续运行)或 non-canary-full-sweep-enabled(无 canary,也无 fail-fast)。修饰标签 all-evals、evals-only 和 agentx-fast 必须与主标签一起使用。fork PR 的标签由维护者添加。参见扫描标签与复用。
  • **合并后:**PR 作者必须确保所有 GitHub Actions 任务通过。临时性失败通常可以通过重新运行恢复;参见重新运行失败任务的说明。

@adibarra
adibarra added this pull request to stack #3808 October 8, 2026 14:35
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch from c889163 to 2e36885 Compare October 8, 2026 16:03
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch 4 times, most recently from 982ad1d to 1fc1213 Compare October 8, 2026 23:04
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch 2 times, most recently from 0f3b14e to a11b62a Compare October 9, 2026 17:47
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch 2 times, most recently from 0451f3a to f2ad832 Compare October 9, 2026 18:48
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch 2 times, most recently from ba3bc93 to a024ca8 Compare October 10, 2026 07:51
…er config

Repo setup scripts that install a component now read its version from the
recipe instead of pinning it, and the binder writes the point's master
version after variant selection, so the submitted recipe shows what gets
installed:

- vllm-router.sh (was vllm-router-0.1.14.sh) reads ROUTER_VERSION.
- vllm-mooncake.sh (was vllm-mooncake-0.3.11.sh) reads
  KV_OFFLOAD_BACKEND_VERSION; kimik3-b300-mooncake.sh and the
  mooncake-master preambles of the Kimi-K3 B300 and MiniMax-M3 H100
  recipes run it instead of pinning their own pip install.
- lmcache-mp-rocm.sh reads KV_OFFLOAD_BACKEND_VERSION.
- glm5.3-tilert-rocm.sh reads ROUTER_VERSION, the tilert-pd-router
  release; the GLM-5.3 recipe drops TILERT_VERSION.

The binder writes the version into the top-level environment when
setup_script is one of these installers (workers and static routers) and
into the env of each service whose preamble runs one, since services do
not inherit environment. A point that does not declare the version fails
before submission, a vllm-router pin in SETUP_PIP_PACKAGES must match the
master router, and a fragment may not set the version variables.
The launcher and infx generate also fail a bound recipe whose setup_script
is in neither configs/ nor the srt-slurm checkout's, where srtctl itself
only warns.
The router half of the binding test reruns the setup_script branch the Mooncake half covers, the pinned-router acceptance only echoed its input, and the setup-script check is called directly instead of through a copy of the multi-node CLI harness.
_fragment_versions yields like _dram_literals and reads TEXT_MAPPINGS, the one-entry PIP_COMPONENTS registry becomes the vllm-router check it was, and lmcache-mp-rocm.sh reads KV_OFFLOAD_BACKEND_VERSION without an alias.
@adibarra
adibarra force-pushed the refactor/srt-bound-versions branch from a024ca8 to 2aeeef9 Compare October 10, 2026 13:38

This branch has not been deployed

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

Labels

None yet

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant