chore(fish-speech): drop the darwin/metal build target#10561
Merged
Conversation
The fish-speech metal-darwin-arm64 backend build has been failing on every
release (v4.5.3, v4.5.4, v4.5.5) and is a standing red on the darwin backend
matrix. fish-speech pulls `tokenizers` transitively from its upstream source
(`pip install -e fish-speech-src`), and on darwin/arm64 there is no prebuilt
wheel for the pinned old `tokenizers` version, so pip builds it from source.
Modern rustc rejects that old crate as a hard error:
error: casting `&T` to `&mut T` is undefined behavior ...
--> tokenizers-lib/src/models/bpe/trainer.rs:517:47
= note: `#[deny(invalid_reference_casting)]` on by default
error: could not compile `tokenizers` (lib) due to 1 previous error
This is deterministic, not a flake, and there is no clean fix that does not
either pin a stale Rust toolchain or downgrade a soundness lint guarding real
UB. Until upstream fish-speech moves to a tokenizers version that compiles on
current toolchains, drop darwin support so the release backend build stays
green. The Linux/CUDA/ROCm/Intel/L4T variants are unaffected.
Removes:
- the `-metal-darwin-arm64-fish-speech` entry from `includeDarwin` in
backend-matrix.yml
- the `metal:` capability mappings and the concrete `metal-fish-speech` /
`metal-fish-speech-development` gallery entries in backend/index.yaml
- the now-unused darwin-only requirements-mps.txt
Assisted-by: Claude:claude-opus-4-8 [Claude Code]
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
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.
Why
The
fish-speechmetal-darwin-arm64 backend build has failed on every recent release (v4.5.3, v4.5.4, v4.5.5) and is a standing red on the darwin backend matrix.fish-speech pulls
tokenizerstransitively from its upstream source (pip install -e fish-speech-src). On darwin/arm64 there is no prebuilt wheel for the pinned oldtokenizersversion, so pip builds it from source, and modern rustc rejects that old crate as a hard error:This is deterministic, not a flake. There is no clean fix that does not either pin a stale Rust toolchain or downgrade a soundness lint that guards real UB. Until upstream fish-speech moves to a
tokenizersversion that compiles on current toolchains, the pragmatic call is to drop the darwin target so the release backend build stays green.Per the
CLAUDE.mdbackend-OS-coverage guidance ("...or say in the PR why an OS is unsupported"), this is the documented reason darwin is unsupported for fish-speech.What changed
-metal-darwin-arm64-fish-speechentry fromincludeDarwinin.github/backend-matrix.ymlmetal:capability mappings and the concretemetal-fish-speech/metal-fish-speech-developmentgallery entries inbackend/index.yamlbackend/python/fish-speech/requirements-mps.txtUnaffected
Linux CPU / CUDA 12 / CUDA 13 / ROCm / Intel / L4T variants are untouched. Referential integrity of
backend/index.yamlwas verified (no dangling capability refs) and both YAML files parse.Assisted-by: Claude:claude-opus-4-8 [Claude Code]