[fork] Bump to upstream v0.28.0 - #8
Merged
Merged
Conversation
…raising (vllm-project#51627) Signed-off-by: Kush Zingade <kush.zingade@gmail.com>
…riton launcher) (vllm-project#51770) Signed-off-by: Chaojun Zhang <chaojun.zhang@intel.com>
…benchmark (vllm-project#51308) Signed-off-by: louie-tsai <louie.tsai@intel.com>
Signed-off-by: Clinton Thomas <1033162+KernelClint@users.noreply.github.com> Co-authored-by: Lucas Bourtoule <35483370+dhalf@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…ject#51145) Signed-off-by: Tuukka Sarvi <tuukka.sarvi@amd.com>
Signed-off-by: Jee Jee Li <jeejeelee@inferact.ai>
…1768) Signed-off-by: Woosuk Kwon <woosuk@inferact.ai> Co-authored-by: OpenAI Codex <codex@openai.com>
…51819) Signed-off-by: Andrii Skliar <askliar@nvidia.com> Co-authored-by: Andrii Skliar <askliar@nvidia.com> Co-authored-by: OpenAI Codex <codex@openai.com>
…llm-project#51726) Signed-off-by: yewentao256 <zhyanwentao@126.com>
…49444) Signed-off-by: pmanczak <pawel.manczak@intel.com> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
…1812) Signed-off-by: zjy0516 <riverclouds.zhu@qq.com> Co-authored-by: OpenAI Codex <codex@openai.com>
…t#51806) Signed-off-by: zhenwei-intel <zhenwei.liu@intel.com> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com>
…ant KV cache (vllm-project#47896) Signed-off-by: root <root@smci355-ccs-aus-m02-09.cs-aus.dcgpu> Co-authored-by: root <root@smci355-ccs-aus-m02-09.cs-aus.dcgpu> Co-authored-by: Andreas Karatzas <akaratza@amd.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
…project#50020) Signed-off-by: Guan-Ming (Wesley) Chiu <105915352+guan404ming@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
…up (vllm-project#51756) Signed-off-by: Nick Hill <nickhill123@gmail.com>
…#51749) Signed-off-by: mgoin <mgoin64@gmail.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Signed-off-by: Taneem Ibrahim <taneem.ibrahim@gmail.com> Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>
Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com>
…-all (vllm-project#50569) Signed-off-by: jdebache <jdebache@nvidia.com>
…roject#51363) Signed-off-by: yiliu30 <yi4.liu@intel.com> Signed-off-by: Yi Liu <yi4.liu@intel.com> Co-authored-by: OpenAI Codex <noreply@openai.com> Co-authored-by: Wentao Ye <44945378+yewentao256@users.noreply.github.com>
…-project#51854) Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com>
…vllm-project#51857) Signed-off-by: Harry Mellor <19981378+hmellor@users.noreply.github.com> Co-authored-by: Andreas Karatzas <akaratza@amd.com>
Signed-off-by: mgoin <mgoin64@gmail.com>
Signed-off-by: yewentao256 <zhyanwentao@126.com>
Signed-off-by: Andreas Karatzas <akaratza@amd.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
… under EP (vllm-project#49758) Signed-off-by: Rohan Potdar <rohan.potdar@amd.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…d models (vllm-project#51837) Signed-off-by: Stefan Koncarevic <stefan.koncarevic@amd.com>
Signed-off-by: Richard Zou <zou3519@gmail.com>
…9514) Signed-off-by: Andreas Karatzas <akaratza@amd.com> Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com>
…llm-project#52565) Signed-off-by: Andreas Karatzas <Andreas.Karatzas@amd.com>
…t#52570) Signed-off-by: Isotr0py <Isotr0py@outlook.com>
…ers (vllm-project#51852) Signed-off-by: Ganesh R <Ganesh.R@amd.com> Signed-off-by: R <Ganesh.R@amd.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: Li, Jiang <jiang1.li@intel.com> (cherry picked from commit f27ae25)
…f_comparison` (vllm-project#52608) Signed-off-by: Stefan Koncarevic <Stefan.Koncarevic@amd.com> Co-authored-by: Andreas Karatzas <akaratza@amd.com> (cherry picked from commit 402547d)
Signed-off-by: Yan Ma <yan.ma@intel.com> Co-authored-by: Kunshang Ji <kunshang.ji@intel.com> (cherry picked from commit b0e9cff)
Signed-off-by: zhenwei-intel <zhenwei.liu@intel.com> (cherry picked from commit b1d9337)
…small-M swapAB config (vllm-project#52775) Signed-off-by: Zihua Wu <13583761+lucifer1004@users.noreply.github.com> (cherry picked from commit 2b7fcbf)
Signed-off-by: Rohan138 <rohanpotdar138@gmail.com> (cherry picked from commit 823ec22)
…its} → chunk (vllm-project#52812) Signed-off-by: Ronen Schaffer <ronen.schaffer@ibm.com> (cherry picked from commit 0a111cc)
…e_code (vllm-project#52952) Signed-off-by: jperezde <jperezde@redhat.com> (cherry picked from commit c0a25c0)
…llm-project#52578) Signed-off-by: Isotr0py <Isotr0py@outlook.com> (cherry picked from commit 5fd7a88)
…roject#52816) (cherry picked from commit b389ac2) Signed-off-by: khluu <khluu000@gmail.com>
Signed-off-by: Kevin Luu <51931015+khluu@users.noreply.github.com>
Resolved wholesale against the tag: v0.27.1 is a release branch carrying 21 commits absent from v0.28.0, and 31 of the 37 files they touch auto-merge without conflicting. docker/Dockerfile drifted silently that way. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Moves the four written-down copies of the release tag (Dockerfile.audio ARG, build-vllm-audio.yml DEFAULT_BASE_TAG, profiles.DEFAULT_TAG, preflight.sh --tag) from v0.27.1 to v0.28.0, and adds a test that fails loudly if they ever disagree again. Retires the transformers==5.14.1 pin outright rather than replacing it with a v0.28.0-era pin: its stated exit criterion (70b84f0 / vllm-project#49797 landing upstream) is met, and the fix is version-agnostic, so the divergence has no remaining justification. The fork's goal is closest parity with upstream, and a divergence survives only while necessary. After this, the audio image carries zero divergence from the stock base beyond the vllm[audio] extra — the patch series is already empty. Declares .github/workflows/buf.yml's deletion in the alignment ledger (new upstream workflow, inert on a fork, no ledger entry until now). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Four docstrings/charter passages named v0.27.1 as the current release after DEFAULT_TAG moved to v0.28.0 in the prior commit: - profiles.get()'s docstring hard-coded the store's tag, which will just rot again on the next bump — made it name DEFAULT_TAG instead of a tag. - Three verdict.py docstrings had the same "defaulting to v0.27.1" pattern. - FORK.md still described the image as carrying "one dependency pin" (transformers==5.14.1) after that pin was deleted, and named v0.27.1 as both the current DEFAULT_BASE_TAG and the current image tag. Rewrote the patch-series paragraph to record the pin's retirement as history and state plainly that the image is now upstream + audio extra and nothing else; bumped the two "currently vX" tag references to v0.28.0. Left the "e.g." lockstep-example and the alignment console example untouched — illustrative, not claims about the current tag. - fleet.yaml's manual deepseek-v4-tp2-h200 entry still carried `image: openimage/vllm-openai-audio:v0.27.1`, the same stale record its now-removed image_digest/validation_date were dropped for. Removed the key rather than inventing a v0.28.0 image reference that does not exist yet; the manual-entry schema has no required keys, so this is safe. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Round-1's replacement claim overstated the image's contents: "the image is now the upstream release plus the audio extra, and nothing else" is false. fork/docker/Dockerfile.audio still installs the OS patch package and COPYs fork/patches and apply-patches.sh into every build regardless of series length -- an empty series makes the apply step a no-op, it does not remove the files. A confidently wrong charter is worse than a stale one. Scoped the claim to what is true and matters: the image adds no Python package, no version pin, and no source patch beyond vllm[audio] itself, and names the patch-application scaffolding directly as still present and inert rather than implying it is absent. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Re-point the structural lint at fork/bench/configs/v0.28.0 and update the witness fixtures' provenance comments: the frozen argv/metadata are carried forward byte-identical from the v0.27.1 run because the v0.28.0 flag audit deliberately found no flag needed to change, not because they were copied without looking. Argv and metadata arrays themselves are untouched. Also fix test_local_launcher's hard-coded v0.27.1 engine path, the last of the six literal-tag traps from this bump, to derive from profiles.DEFAULT_TAG so it can't rot on the next release bump. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
profile.expect reached only the dry-run launcher: it picked which fixture to replay and whether to hand back a URL, and never a probe, a verdict, or the report. So a boot_crash arm that served rendered as an ordinary R5 pass, indistinguishable from a healthy profile — qwen-tp2-noflags served on v0.27.1 and the run could only record it as "unverified beyond R5", losing the finding that the all-reduce workarounds may be retirable. Difference each profile's R5 outcome against its declared expect and render the contradictions as their own report section. A profile with no R5 result claims nothing rather than guessing, as gate.absorbed_by_patch does with ancestry it cannot check. The exit code is untouched. A first sighting on a new release is a finding to investigate, not a reason to fail the gate. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The section's prose explained only the negative arm that stopped crashing, so a serves -> failed row landed under a paragraph about a workaround being retirable. Cover the other direction, which is the one the probes table mislabels as "fail (as expected)" on a non-gating profile. R5 fails on three conditions, and the third is an empty log from an engine that served — a harness failure, not a crash. "did not serve" would have contradicted the probes row for the same profile, so the observed column now names the receipt and carries R5's own detail beside it. DESIGN.md claimed the gate exits non-zero on any unexpected crash signature. It never did and deliberately still does not; say what happens instead. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
R5 fails on three conditions: the engine never served, it left a crash signature, or it emitted a zero-line log. expectation_mismatches already reasoned about that ambiguity in one direction -- it is why a failure is labelled with the non-causal "R5 failed" rather than a guessed cause -- but the boot_crash arm accepted any R5 failure as confirmation. Both negative arms carry R5 and no other probe. So a boot that hung to the deadline, or one that logged nothing, produced: R5 fails, the probes table says "fail (as expected)", no mismatch row, exit 0. The operator reads "the negative arm still crashes, so the TP2 all-reduce workarounds are still justified" off a measurement that never happened -- LESSONS rule 6 in mirror image, where a missing measurement looks like a good one. A declared crash is now held only when the receipt carries the crash signature receipts.py already records for exactly this purpose. Without it the row says "R5 failed (no crash signature)". A profile with no R5 result at all still claims nothing: absent evidence yields no finding, and this is about evidence that is present but hollow. Also derive test_config_store's RELEASE from profiles.DEFAULT_TAG rather than repeating the literal, closing the path where the parity witness validates one release while the gate runs another; and correct the pin test's name and docstring, which said three where it asserts four. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The bump left prose behind in six places, all of which still read as true. FORK.md's alignment transcript printed the v0.27.1 tag and the file counts from that release. dff0148 turned the behind-count into an `N` placeholder to stop exactly this rot; the counts get the same treatment now, since writing in 102 and 10 only sets the next bump up to rot again. The tag is a real one because a real tag is more illustrative than a placeholder -- and it is now the current one, checked against what check-alignment.sh actually prints. The two documented commands naming v0.27.1 still succeed, which is what makes them worth fixing: a reader following either gets a green about a release that is not under test. Both READMEs now name the release the pins do. gate.py's two docstrings still described the profile store as defaulting to v0.27.1, contradicting the corrected reads in verdict.py and profiles.py. The DeepSeek config cited "Task 9" -- a plan in a session scratchpad that will not survive. A committed config has to name the condition that clears it, not the task that was going to check it. The fleet fixture borrowed the argv fixture's justification, which is about flags; this fixture pins no flags. Its payload is untouched -- only the comment, which now claims what the fixture actually witnesses. DESIGN.md listed two of the three ways the gate exits non-zero. The third is _gates returning True on KeyError, a deliberate fail-closed choice: an undocumented guard is one a future maintainer fixes into failing open. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
check-forbidden-imports fails on import re; the repo's answer, regex, is not importable in the bare `uv run --no-project` environment every fork/bench command relies on. Rewrite the four-pin check as anchored line-based string parsing instead, preserving the anchoring (start of line for the Dockerfile ARG, stripped-line key match for the indented workflow field) and failing loudly if a pin is missing rather than comparing None == None. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Signed-off-by: Mazyad Alabduljaleel <mazjaleel@gmail.com>
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.
Lockstep release sync from
v0.27.1to upstreamv0.28.0, perFORK.md§ Lockstep.What changed
v0.27.1is a release branch, not an ancestor: it carries 21 commits absent fromv0.28.0touching 37 files, and only 6 of those conflict.docker/Dockerfileauto-merges without conflicting and silently keeps two release-branch hunks — an R1 violation that conflict-only resolution cannot catch. Resolved withgit read-tree -u --reset v0.28.0plus a restore of the ledger's fiveaddpatterns, which makes "every upstream path is byte-identical to the tag" a property of the merge rather than something a human verifies file by file.transformers==5.14.1pin. Its exit criterion is met:70b84f0bcb(Fix Gemma 4 for upcoming Transformers version vllm-project/vllm#49797) is inv0.28.0and the fix is version-agnostic. Deleted rather than repinned — the fork's goal is parity with upstream, and a divergence survives only while necessary, not while precautionary..github/workflows/buf.yml(new upstream, inert on a fork but carries a nightly cron) infork/alignment.ledger.fork/bench/configs/v0.28.0/. Engine flag content is byte-identical to v0.27.1 — a key-by-key audit found only two non-SAFE keys and nothing renamed. Comments were re-justified where the release changed their meaning, notably Qwen'sno-enable-prefix-caching(v0.28.0 flips the hybrid default ON, [Mamba] enable prefix cache by default vllm-project/vllm#50991) and DeepSeek'scudagraph_mode(DSV4 now defaults to Model Runner V2, [Bugfix] Guard DeepSeek V4 MRV1 piecewise CUDA graphs vllm-project/vllm#51768/[Bugfix] Pick the DeepSeek V4 eager cudagraph region per model runner vllm-project/vllm#52401, making the runner the load-bearing knob).profiles.DEFAULT_TAG.profile.expectnever reached a probe, verdict, or the report, so aboot_crasharm that served rendered as an ordinary pass. It now reports a mismatch — and a declared crash must prove it crashed, since R5 also fails on a zero-line log, and both negative arms carry R5 as their only probe.Testing
fork/bench/tests: 441 passed, 4 skipped.bash fork/bench/preflight.sh: PREFLIGHT GREEN (440 passed, 5 skipped).fork/scripts/check-alignment.sh: Aligned, exit 0 — 102 declared adds, 10 declared deletes, zero modified upstream files.vllm/vllm-openai:v0.28.0base succeeded: Ubuntu 24.04.3, glibc 2.39,patch2.7.6,import av, soundfileclean, vllm 0.28.0, transformers 5.15.1 (now unpinned).pre-commit run --files <branch changes>: clean apart from two pre-existing/upstream issues —fork/bench/gate.py:15'simport re(predates this branch;regexis not importable in the bareuv run --no-projectenv the tooling uses) and shellcheck, which is repo-wide and fails on 15 upstream scripts with zerofork/hits.Hardware gate results will be added before promotion.
:latestmoves only via apromote_fromdispatch on the gated digest.AI assistance
AI assistance was used throughout, under human direction and review.