Releases: linuxserver/docker-beets
nightly-c89b94a4-ls248
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-c89b94a4-ls248/index.html
LinuxServer Changes:
No changes
Remote Changes:
docs(installation): Remove MacOS section from installation guide (#6427)
Fixes #5993
The section is outdated. MacOS (or HomeBrew's python package?) by
default disallows using pip3 install even with --user option.
I'd actually propose to add more information around how to use pipx in
this installation guide to install beets and its plugins (both provided
as extras and third-party), maybe even make it the main focus of this
page as a recommended way regardless of which OS and Linux distro is
used. I can create a separate issue/discussion to discuss and align on
this if it's fine by you.
nightly-abd77b35-ls248
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-abd77b35-ls248/index.html
LinuxServer Changes:
Full Changelog: nightly-3c48b0c6-ls247...nightly-abd77b35-ls248
Remote Changes:
Return candidates from all data sources on id search (#6184)
Closes #6178 (multiple metadata source results per ID) and #6181
(duplicate/overwrite of candidates).
- (#6178) Replace
album_for_id/track_for_idwithalbums_for_ids
/tracks_for_idsinmetadata_pluginsthat yield candidates from all
metadata sources - (#6181) Use
Info.identifier((data_source, id)) as candidate keys
to avoid cross-source ID collisions. - Add tests (
test/autotag/test_match.py) for assignment logic and
multi-source ID matching - Simplify
match_by_id - Dedupe
album_matchedevent emission by moving it to
AlbumMatch.__post_init__(and convertAlbumMatch/TrackMatchto
dataclasses)
nightly-6af84bcf-ls248
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-6af84bcf-ls248/index.html
LinuxServer Changes:
No changes
Remote Changes:
Ensure changelog entries are under Unreleased section (#6432)
Enforce Changelog Entries Under 'Unreleased' Section
I've had enough checking this manually 😆. Adds a CI lint step
that prevents contributors from accidentally adding changelog entries
under an already-released version header in docs/changelog.rst.
How it works
The check runs git diff --word-diff=plain -U1000 against the base
branch, then pipes through awk to scan the diff for new list entries
({+- ...) that appear after any versioned release header (e.g. 1.2.3 (). If such an entry is found, the step fails with a human-readable
error pointing to the offending line which GitHub should show in the
diff view.
--word-diff=plainis required to match truly new changelog entries
instead of some formatting adjustments in the middle of the line.-U1000should ensure that we grab the first 1000 lines in the
changelog to reliably match the headers.
nightly-3a8e65c5-ls248
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-3a8e65c5-ls248/index.html
LinuxServer Changes:
No changes
Remote Changes:
Use aliases for tracks, releases and release groups (#6231)
This PR add support for aliases to releases, release-groups and
recordings.
This PR is a must have (IMO at least) for people that listen to
Japanese, Chinese and other songs that has other symbols for letters.
With this, not only the artist name will use the alias if available, but
now the album and track name will also use aliases.
Follow up from beetbox/beets#5277 based on the
recent new mechanism to query musicbrainz
(beetbox/beets#6052).
API examples
- Aliases for releases, recordings and release groups:
http://musicbrainz.org/ws/2/release/59211ea4-ffd2-4ad9-9a4e-941d3148024a?inc=recordings+aliases+release-groups&fmt=json - Aliases for recordings:
https://musicbrainz.org/ws/2/recording/b9ad642e-b012-41c7-b72a-42cf4911f9ff?inc=aliases&fmt=json
2.7.1-ls317
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/2.7.1-ls317/index.html
LinuxServer Changes:
Full Changelog: 2.7.0-ls316...2.7.1-ls317
Remote Changes:
Updating PIP version of beets to 2.7.1
nightly-f1509a40-ls247
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-f1509a40-ls247/index.html
LinuxServer Changes:
No changes
Remote Changes:
Fix fish plugin (#6428)
Fixes #6340
nightly-80d08ed1-ls247
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-80d08ed1-ls247/index.html
LinuxServer Changes:
No changes
Remote Changes:
beatport: Deprecate beatport and bpsync plugins (#6426)
As agreed in the comments:
beetbox/beets#4477 (comment)
Deprecation notices reference those for additional context:
Beatport retired the API (v3) that the built-in beatport plugin relies
on, making it non-functional. This PR soft-deprecates both the
beatport and bpsync plugins following the same pattern used for
acousticbrainz — adding deprecation warnings in __init__() while
keeping all existing code intact.
The bpsync plugin is deprecated alongside beatport since it imports
and depends on BeatportPlugin directly.
Changes
beetsplug/beatport.py: Add deprecation warning in
BeatportPlugin.__init__()beetsplug/bpsync.py: Add deprecation warning in
BPSyncPlugin.__init__()docs/plugins/beatport.rst: Add.. deprecated::directivedocs/plugins/bpsync.rst: Add.. deprecated::directivedocs/changelog.rst: Add changelog entry under Unreleased → Other
changes
What's NOT changed (and why)
pyproject.toml(beatport extra): Kept so the plugin loads and
shows the deprecation warning instead of crashing with anImportErrortest/plugins/test_beatport.py: Tests cover data models which
still exist — all 15 tests passdocs/plugins/index.rst:beatportstays in the toctree since
the page still existsbeets/util/id_extractors.py: Core utility, not plugin-specific
nightly-3c48b0c6-ls247
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-3c48b0c6-ls247/index.html
LinuxServer Changes:
Full Changelog: nightly-2678124b-ls246...nightly-3c48b0c6-ls247
Remote Changes:
Centralise common autotagger search functionality (#5982)
Add a unified search abstraction across metadata source plugins.
Summary:
- Introduces
SearchApiMetadataSourcePluginwithSearchParams,
get_search_query_with_filters, andget_search_responsehooks to
standardize album/track searches. - Replaces ad-hoc
_search_apiand query construction logic in Deezer,
Spotify, MusicBrainz, and Discogs plugins with the new shared
implementation. - Refactors Discogs and MusicBrainz plugins to use the new abstraction
and move provider-specific criteria/query construction into hook
methods. - Centralizes error handling and logging in the shared search flow;
Spotify now retries authentication once on401, and failures cleanly
fall back to empty results at the shared layer.
2.7.0-ls316
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/2.7.0-ls316/index.html
LinuxServer Changes:
Full Changelog: 2.6.2-ls315...2.7.0-ls316
Remote Changes:
Updating PIP version of beets to 2.7.0
nightly-c996a42f-ls245
CI Report:
https://ci-tests.linuxserver.io/linuxserver/beets/nightly-c996a42f-ls245/index.html
LinuxServer Changes:
Full Changelog: nightly-a6ac5eff-ls244...nightly-c996a42f-ls245
Remote Changes:
Add docs fixes to git blame ignore revs