Skip to content

Remove the deprecated original_audio: fallback (and its WS aliases) once packs are migrated #945

Description

@byrongamatos

Follow-up to #933, which made core read the full mix from the RESERVED full stem (feedpak §5.3, spec 1.15.0 / feedpak-spec#53) instead of the original_audio: key this repo invented.

#933 could not delete the key outright: every pack in the wild carries it. A sample of the local library was 40/40 original_audio: original/full.ogg, so dropping the read would have silently taken the pristine full mix away from the entire library at once. It therefore left two pieces of scaffolding behind, and this issue is the demolition.

What is still standing

  1. lib/sloppak.py_legacy_full_mix(), the deprecated read of manifest.get("original_audio"). It logs a one-line deprecation notice naming the migration tool. Its literal key string is deliberate: tools/check_spec_conformance.py AST-scans for manifest.get("<literal>"), so hoisting it into a constant would hide the read from the gate and let the grandfather entry go stale (the comment on the function says so).
  2. The song_info WS aliases original_audio_url / has_original_audio, which now carry the same values as full_mix_url / has_full_mix. They exist so a stems plugin built against the old frame keeps working across one release.
  3. The original_audio entry in feedpak-spec-exceptions.yml. It is the last one in the file; deleting it empties the grandfather list.
  4. The deprecation tests in tests/test_sloppak_full_mix_load.py (the ones under the "DEPRECATED ... delete with the key" heading) and tests/test_migrate_full_mix_stem.py in its entirety.

Preconditions

  • tools/migrate_full_mix_stem.py has been run over the pack library, and --verify reports ok for every pack.
  • The shipped stems plugin reads full_mix_url (got-feedback/feedback-plugin-stems), and a desktop build carrying it has gone out — the aliases exist for exactly the window where a user has new core and an older bundled plugin.
  • The out-of-repo pack builder no longer writes the key (done alongside Remove original_audio — the full mix is a stem, and the spec already says so #933: it emits {id: full, file: stems/full.ogg, default: off}).

Then

  • Delete _legacy_full_mix() and its call site; LoadedSloppak.full_mix comes only from the full stem.
  • Delete the two WS aliases and the plugin's fallback to them.
  • Delete the original_audio entry from feedpak-spec-exceptions.yml. The gate fails if the entry goes stale, so this cannot be quietly forgotten — that is by design.
  • Delete the deprecation tests and tools/migrate_full_mix_stem.py itself.
  • CHANGELOG note: the key is gone.

When this closes, no manifest key core touches is undeclared by the spec, and the grandfather list is empty.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions