beets/docs/reference
Claude 11f38e8c87
Add native support for multiple genres per album/track
Implements native multi-value genre support following the same pattern
as multi-value artists. Adds a 'genres' field that stores genres as a
list and writes them as multiple individual genre tags to files.

Features:
- New 'genres' field (MULTI_VALUE_DSV) for albums and tracks
- Bidirectional sync between 'genre' (string) and 'genres' (list)
- Config option 'multi_value_genres' (default: yes) to enable/disable
- Config option 'genre_separator' (default: ', ') for joining genres
  into the single 'genre' field - matches lastgenre's default separator
- Updated MusicBrainz, Beatport, and LastGenre plugins to populate
  'genres' field
- LastGenre plugin now uses global genre_separator when
  multi_value_genres is enabled for consistency
- Comprehensive test coverage (10 tests for sync logic)
- Full documentation in changelog and reference/config.rst

Backward Compatibility:
- When multi_value_genres=yes: 'genre' field maintained as joined
  string for backward compatibility, 'genres' is the authoritative list
- When multi_value_genres=no: Preserves old behavior (only first genre)
- Default separator matches lastgenre's default for seamless migration

Migration:
- Most users (using lastgenre's default) need no configuration changes
- Users with custom lastgenre separator should set genre_separator to
  match their existing data
- Users can opt-out entirely with multi_value_genres: no

Code Review Feedback Addressed:
- Extracted genre separator into configurable option (not hardcoded)
- Fixed Beatport plugin to always populate genres field consistently
- Added tests for None values and edge cases
- Handle None values gracefully in sync logic
- Added migration documentation for smooth user experience
- Made separator user-configurable instead of constant
- Changed default to ', ' for seamless migration (matches lastgenre)
2025-11-16 18:13:26 +00:00
..
cli.rst Add 'pretend' flag to update command example 2025-08-24 09:04:21 -04:00
config.rst Add native support for multiple genres per album/track 2025-11-16 18:13:26 +00:00
index.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00
pathformat.rst Replaced writing-plugins with basic-plugin-setup. 2025-09-04 12:49:44 +01:00
query.rst Reformat all docs using docstrfmt 2025-08-10 16:25:05 +01:00