beetbox / beetbox/beets

Multiple related repositories

Open
#221 7 comments 0 reactions 0 assignees View on GitHub
discussion
Dominant language
Python
Stars
15.7k
Forks
2.1k
Avg merge
4d 21h
Merged PRs (30d)
31

Description

My music workflow has three music repositories, all parallel and related:
1. CD backup archive: 1 FLAC file per CD, cue sheet, can reconstruct CD media if original disc decays
2. master tagged music: 1 FLAC file per track, fully tagged with Musicbrainz, the canonical place to go for music
3. mp3 converted: 1 mp3 file per FLAC file in repository 2. Smaller, perhaps more suited to a portable player.

Also, since I ripped a lot of CDs before I decided to make repository 1, I have:
4. backup untagged music: 1 FLAC file per track, cue sheet, barely tagged with MusicBrainz, but a suitable starting point for tagging, and a restore point if files in repository 2 get corrupted.

You could imagine having multiple variants of repository 3, with subsets of the music for different devices or different people.

As far as I see, beets only knows about one repository.

I propose:
a. adding a way to declare multiple related repositories, and let each beets command take as a parameter the repository it should operate on
b. adding beets commands to generate files in repository X based on sources in repository Y.
c. adding consistency rules between repositories, so that on command beets can figure out what files need to get changed or generated, and schedule that work

I understand this might be a major architectural shift. It may take time. That's OK. I just want to put an entry in the wish-list.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing how existing beets commands select and operate on the single repository described in the issue. Then map the proposed related-repository, cross-repository generation, and consistency-rule requirements before proposing a scoped design. Done would require an agreed architectural plan, since the issue currently describes a broad wishlist rather than a defined change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.