Plugin: sync rework (named/full sync, membership replacement, no playlist mutation) #30
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Context
SPEC.md §5
sync. Currentsync.pydoes nearly everything the SPEC forbids: creates and renames local playlists, uses the uuid5 + "Apple Music playlist" description sentinel mapping,--prunedeletes playlists, syncs whatever the gateway returns rather than configured mappings, mutates while fetching, and has no dry-run.Task
sync [LOCAL_PLAYLIST_NAME]: no argument processes every configured mapping; an argument processes the mapping whose target local name matches; an unconfigured name is an error.tracksrows, replace that playlist'splaylist_membershipsrows.tracksrows, beets metadata, or playlists; no pruning if any view is incomplete.--pruneplaylist-deletion flag (superseded by membership pruning rules).Acceptance criteria
Ref: SPEC.md §5
sync, §11.Delivered in merged PR #36 (
cb442af). Issue-specific implementation commits:4937fad(completed by the SPEC-aligned documentation in02d5954)1e245f29186be50a8ae9702d5954Verification: 95 tests passed; focused Ruff checks, compileall, diff checks, isolated-
BEETSDIRcommand smoke testing, and package build all passed. Issue #34 remains open by maintainer request for the deferred real-library acceptance run.