How can we make beets easier to develop for?

See also:

For me, my tricks of the python trade are debugging line by line (pdb.set_trace()) and lots of print / logging statements. In pdb, I also like inspecting the relevant objects.

iirc, all of these are a little tricky to do in beets. I can’t insert a pdb or print command if I can’t find the place that beets is doing something. Am I mistaken, or is it non trivial to get a log statement to actually print to the console, with the default beets logging handler? I think I ended up using print instead. How hard would it be to color code the logging?

Inspecting the objects works, iirc, but it’s information overload. there’s just tons of info in Item objects, and the docs could probably be better.

https://beets.readthedocs.io/en/stable/dev/library.html#album

An Album object keeps track of album-level metadata, which is (mostly) a subset of the track-level metadata.

(Emphasis added). Skimming through this, I find myself wanting a table comparing items and albums. Which I think exists somewhere.

Another annoyance: conflicts between the stable/prod beets and a modified dev version. Going forward I will probably use a separate container with its own beets install.

I wonder if it’d make sense to throw together a container with latest github beets and a 5 album library to play around with.

Dunno how useful it would be, but here and there I’ve thought of something like a dummy plugin that makes empty files out of your real albums, to aid reproduction of bugs. this monster of a mozart box set is unwieldy to transfer but is a torture test for everything in beets, especially matching metadata and querying musicbrainz: No time limit on candidate lookup · Issue #2446 · beetbox/beets · GitHub

Please keep the discussion on the same thread…opening new threads is not going to help much.