Skip to content

fix(ci): unbreak the e2e build and the darwin vllm-metal pin - #11849

Merged
mudler merged 1 commit into
masterfrom
fix/ci-master-breakage
Sep 3, 2026
Merged

fix(ci): unbreak the e2e build and the darwin vllm-metal pin#11849
mudler merged 1 commit into
masterfrom
fix/ci-master-breakage

Conversation

@localai-org-maint-bot

Copy link
Copy Markdown
Collaborator

Two independent breakages on master are making every open PR red for reasons unrelated to the change under review. Both are fixed here.

1. The e2e backend suite does not compile

9e831d770 (#11840) landed this in tests/e2e-backends/backend_test.go:476:

Expect(strings.ToUpper(res.GetMessage())).To(ContainSubstring(needle),

Reply.message is bytes in backend/backend.proto:393, so res.GetMessage() returns []byte and strings.ToUpper wants a string. Every other call site in the same file already wraps it (lines 708, 711).

tests/e2e-backends/backend_test.go:476:26: cannot use res.GetMessage() (value of type []byte) as string value in argument to strings.ToUpper
FAIL github.com/mudler/LocalAI/tests/e2e-backends [build failed]

This fails tests-llama-cpp-smoke on every PR whose merge ref includes current master. tests/e2e-backends is behind a build tag, so a normal go build ./... never compiles it and the breakage reached master unnoticed.

2. The darwin vllm build cannot resolve its wheel

VLLM_METAL_VERSION="v0.3.0.dev20260818075955" in backend/python/vllm/install.sh points at a release upstream has deleted. Verified today: the release API returns 404 and so does the wheel.

Upstream re-versioned vllm-metal so its version tracks the vLLM release it targets, which broke three things at once:

  • the pinned tag no longer exists (current releases are v0.28.0 and v0.28.0.dev*)
  • the coupled vLLM release moved out of upstream's install.sh into .github/vllm-release-tag.commit, so the extractor returns nothing even given a valid tag
  • the wheel platform segment moved from macosx_11_0 to macosx_15_0

Rather than just moving the pin, the wheel name is now read from the release's own asset listing instead of being composed from a hardcoded platform segment, so a future platform-tag change cannot silently 404. The vLLM version resolves from the new metadata file with a fallback to the legacy installer. .github/bump_vllm_metal.sh and scripts/lib/extract-vllm-metal-version.sh learn the same two-source lookup, so the next nightly bump converges on the pin checked in here rather than reintroducing the break.

v0.28.0 (the stable release, which /releases/latest returns) is chosen over the newer dev tag deliberately: the dev tags are the ones upstream deletes and re-cuts.

Verification

$ go vet -tags e2e ./tests/e2e-backends/
(exit 0)

$ bash scripts/build/extract-vllm-metal-version_test.sh
(exit 0, 12 assertions)

$ tag=v0.28.0 wheel=vllm_metal-0.28.0-cp312-cp312-macosx_15_0_arm64.whl
wheel HTTP 200

The wheel URL check runs the same resolution logic install.sh now performs, end to end.

🤖 Generated with Claude Code

https://claude.ai/code/session_01UxkheFa72CEpeEJbijyjxe

Two independent breakages on master make every open pull request red,
for reasons unrelated to the changes under review.

The e2e backend suite stopped compiling. Reply.message is `bytes` in
backend.proto, so res.GetMessage() returns []byte, and strings.ToUpper
wants a string. Every other call site in the file already converts.
tests/e2e-backends sits behind a build tag, so `go build ./...` never
compiled it and the breakage reached master unnoticed.

The darwin vllm build stopped resolving. Upstream vllm-metal deleted
its old dev tags and re-versioned to track the vLLM release it targets,
so the pinned wheel 404s. The coupled vLLM release also moved out of
upstream's install.sh into .github/vllm-release-tag.commit, and the
wheel's platform tag moved from macosx_11_0 to macosx_15_0.

Read the wheel name from the release's own asset listing rather than
composing it from a hardcoded platform segment, so a platform-tag
change cannot silently 404 again, and resolve the vLLM version from
the new metadata file with a fallback to the legacy installer. The
bump script and the extractor learn the same two-source lookup, so the
next nightly run converges on the pin checked in here instead of
reintroducing the break.

Assisted-by: Claude:claude-opus-5
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
@mudler
mudler merged commit 7a23447 into master Sep 3, 2026
21 of 23 checks passed
@mudler
mudler deleted the fix/ci-master-breakage branch September 3, 2026 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants