beetbox / beetbox/beets

Apply tag-changing plugins before the change is displayed.

Open
#872 21 comments 1 reaction 0 assignees View on GitHub
feature
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

Currently it seems that plugins which change the tag values (such as the zero plugin) happen after the tag deltas have been displayed to the user.

So this means that beets will sometimes report a change when there is none.

For example I use the zero plugin to clear the albumartist tag when it would otherwise be set to 'various artists'. Unfortunately, this means that when the 'mbsync' plugin runs, it sees that the old value is '' and the "new" value (from musicbrainz) is 'various artists', and beets displays a change for every VA track.

It seems like the flow should go:
old values→new value lookup→tag rewriting→display changes → save changes
whereas it is currently
old values→ new value lookup→display changes→tag rewriting → save changes.

Not sure if the tag change display is specific to the mbsync plugin or if this a general flow (and would therefore apply to 'beet update' as well)

Contributor guide

Open the contributing guide

Research direction

Start by tracing the mbsync plugin flow and comparing it with the beet update path, since the issue questions whether the ordering is general. Verify when tag-rewriting plugins run relative to displayed deltas; done means rewritten values are reflected before changes are shown and false changes are no longer reported.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.