fix: pin librosa <1 and add audioread explicitly (#407) - #408
Merged
Conversation
librosa 1.0.0 dropped its audioread dependency, but audio-separator (vocal split, #275) still imports audioread directly. uv.lock already resolved librosa 0.11.0, so dev/CI never hit this, but the packaging scripts install from pyproject.toml rather than the lockfile, so an unbounded upper bound let the shipped macOS/Windows/Linux runtime packs silently pick up librosa 1.0.0 and lose audioread, breaking only the vocal-split subprocess in the packaged artifact. Also add audio_separator/onnxruntime to all three packaging scripts' import verification, platform-guarded on Intel macOS, so a broken vocal-split dependency chain fails the build instead of shipping.
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.
Summary
librosa 1.0.0dropped itsaudioreaddependency, butaudio-separator(vocal split, Phase 4 — Separation SOTA: RoFormer + lead/backing vocal split #275) still importsaudioreaddirectly.uv.lockalready resolvedlibrosa 0.11.0so dev/CI never hit this, but the packaging scripts install frompyproject.tomlrather than the lockfile, so the unbounded upper bound let shipped macOS/Windows/Linux runtime packs silently pick uplibrosa 1.0.0and loseaudioread, breaking the vocal-split subprocess only in the packaged artifact.librosa>=0.10,<1and addaudioread>=3.0as an explicit dependency (same platform marker asaudio-separator).audio_separator/onnxruntimeto all three packaging scripts' import verification (platform-guarded on Intel macOS, where the feature is deliberately excluded), so a broken vocal-split dependency chain fails the build instead of shipping.Test plan
uv lockresolves cleanly (librosa 0.11.0,audioread 3.1.0)ruff check/ruff format --checkpasspytest tests/- no regressions vs. main (pre-existing Windows-only failures unrelated to this change: beatgrid numeric edge cases, watchdog signal semantics, Linux installer test)