ci(darwin): build the ds4 backend for darwin/arm64 (metal)#10303
Merged
Conversation
The gallery has metal-ds4 / metal-ds4-development entries, and the build recipe exists (make backends/ds4-darwin, special-cased in backend_build_darwin.yml), but ds4 was never listed in the darwin matrix, so no metal-darwin-arm64-ds4 image was ever published and the entries dangled. - Add ds4 to the darwin matrix (includeDarwin), mirroring the llama-cpp form (the reusable workflow builds it via 'make backends/ds4-darwin'). - Fix inferBackendPathDarwin in scripts/changed-backends.js to map ds4 to backend/cpp/ds4/ (like llama-cpp): ds4 is C++ but the matrix entry carries lang=go, so without this its darwin build would only ever run on a release (FORCE_ALL), never incrementally when backend/cpp/ds4 changes. sherpa-onnx and speaker-recognition are already in the darwin matrix on master and are not changed here. Assisted-by: claude:claude-opus-4-8 [Claude Code] Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
mudler
force-pushed
the
fix/darwin-builds-ds4-sherpa-speaker
branch
from
June 13, 2026 08:49
c2bf5d7 to
a661e8b
Compare
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.
From the registry sweep: the gallery has
metal-ds4/metal-ds4-developmententries, but nometal-darwin-arm64-ds4image is ever published, so those entries dangle and ds4 is un-installable on Apple Silicon.Root cause: ds4 was never listed in the darwin matrix (
includeDarwinin.github/backend-matrix.yml), even though the build recipe exists -make backends/ds4-darwin, special-cased inbackend_build_darwin.yml.Changes
llama-cppform (also special-cased, so justlang: go):inferBackendPathDarwininscripts/changed-backends.jsto map ds4 →backend/cpp/ds4/(likellama-cpp). ds4 is C++ but its matrix entry carrieslang: go, so the generic inference would returnbackend/go/ds4/(nonexistent) and ds4s darwin build would only ever run on a release (FORCE_ALL), never incrementally whenbackend/cpp/ds4/changes.How darwin builds trigger (important)
changed-backends.jsonly selects a backends darwin build when a changed file is under its source prefix, or on a tag/release push (FORCE_ALL=truerebuilds everything). So after this merges, themetal-darwin-arm64-ds4image publishes at the next release (or whenbackend/cpp/ds4/changes). The gallerymetal-ds4entries then resolve.Related finding (separate, not fixed here)
sherpa-onnx is already in the darwin matrix (added by #10275) but its metal image was never published - because #10275 only added the matrix entry + touched
backend/python/speaker-recognition/requirements-mps.txt, so the path filter triggered speaker-recognitions darwin build (itsmaster-image published) but not sherpa-onnx (nobackend/go/sherpa-onnx/change). sherpa-onnx is correctly configured and will build at the next release; no fix needed.Notes
backend-matrix.ymlparses,includeDarwinnow lists ds4;changed-backends.jspasses a module syntax check.Assisted-by: claude:claude-opus-4-8 [Claude Code]