Skip to content

Releases: linuxserver/docker-beets

nightly-15949c86-ls313

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 14 Jul 15:28
f800680

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-15949c86-ls313/index.html

LinuxServer Changes:

Full Changelog: nightly-1a1d7dc2-ls312...nightly-15949c86-ls313

Remote Changes:

Fix incorrect line numbers in logs (#6833)

Because beets wraps logging.Logger, the default stacklevel=1
incorrectly reports all log messages being emitted from
beets/logging.py:163 at the super()._log() callsite. Change the
default to stacklevel=2 so that the reported line numbers in debug
logging are the actual logging callsites.

nightly-e700135e-ls312

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 13 Jul 18:37
973a399

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-e700135e-ls312/index.html

LinuxServer Changes:

No changes

Remote Changes:

eDit: Enable album-level field editing during interactive import (#6727)

During interactive import, the edit plugin only exposed item-level
fields — the albumfields configuration was completely ignored in
importer_edit(). Users who wanted to modify album-level fields such as
album or year had to complete the import, then run beet edit -a QUERY as a separate step.

Solution

Updated importer_edit() to support editing album-level fields during
import. Album fields (configured via albumfields) are presented as a
YAML header section prepended to the per-track documents. Changes to the
header are applied to all items in the album, making album-level edits
work in both the eDit and edit Candidates choices.

nightly-9cbbf5be-ls312

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 13 Jul 16:38
973a399

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-9cbbf5be-ls312/index.html

LinuxServer Changes:

No changes

Remote Changes:

Increase test verbosity (#6828)

Change config["verbose"] from 1 to 2 so that DEBUG-level logging
from plugin import tasks and event hooks are emitted. (See
beets.plugins._set_log_level_and_params.)

config["verbose"] == 2 does not appear to affect logging anywhere else
in the codebase, while config["verbose"] == 3 would enable output of
messages logged via BeetsLogger.extra_debug().

nightly-1a1d7dc2-ls312

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 13 Jul 01:34
973a399

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-1a1d7dc2-ls312/index.html

LinuxServer Changes:

Full Changelog: nightly-4061ea05-ls311...nightly-1a1d7dc2-ls312

Remote Changes:

lyrics: add --no-keep-synced CLI option (#6769)

  • This change adds a small CLI override to beetsplug/lyrics.py:
    --no-keep-synced. It is the inverse of --keep-synced, and lets one
    manual lyrics run ignore the configured keep_synced: yes.

nightly-4061ea05-ls311

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 12 Jul 08:09
ab0826d

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-4061ea05-ls311/index.html

LinuxServer Changes:

Full Changelog: nightly-0fd0e827-ls310...nightly-4061ea05-ls311

Remote Changes:

Add fetch_for_asis setting to FetchArt plugin (#6815)

Add fetch_for_asis setting to FetchArt plugin

Description

Enable fetching art for imports even when as-is is selected as the
metadata source. Allows for the case when files with good metadata but
without album art are being imported (e.g. digital download store).

To Do

  • Documentation.
  • Changelog.
  • Tests.

2.12.0-ls340

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 10 Jul 20:14
064a4fb

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/2.12.0-ls340/index.html

LinuxServer Changes:

Full Changelog: 2.12.0-ls339...2.12.0-ls340

Remote Changes:

Updating PIP version of beets to 2.12.0

nightly-9acb1ecf-ls310

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 10 Jul 17:50
6bd3848

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-9acb1ecf-ls310/index.html

LinuxServer Changes:

No changes

Remote Changes:

feat(ftintitle): hook metadata events, fixing mbsync (#6726)

Depends on beetbox/beets#6732.

Summary

This PR integrates ftintitle with metadata fetched through beets’
metadata-received events, so commands like mbsync apply
already-normalized metadata when ftintitle is enabled.

Addresses beetbox/beets#1153.

Changes

  • Register ftintitle listeners for trackinfo_received and
    albuminfo_received when ftintitle.auto is enabled.
  • Rewrite fetched TrackInfo metadata before mbsync applies it,
    avoiding unnecessary re-sync churn.
  • Preserve existing manual command and import behavior while sharing the
    same rewrite logic.
  • Handle artist_credit, cached Info properties, empty titles, and
    no-op configurations consistently.
  • Update ftintitle docs for the expanded auto behavior.

nightly-8ddae794-ls310

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 07 Jul 17:23
6bd3848

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-8ddae794-ls310/index.html

LinuxServer Changes:

Full Changelog: nightly-94ef7d8d-ls309...nightly-8ddae794-ls310

Remote Changes:

tests: remove unused/redundant logic from tests (#6811)

  • This change simplifies the test architecture after full coverage
    exposed dead paths. Redundant helpers, fixtures, fallback branches, and
    defensive test-only code were removed across test/* and
    beets/test/fixtures.py.

  • Biggest structural change is in test/plugins/test_smartplaylist.py,
    where repeated temporary playlist directory setup was pulled into a
    small shared PlaylistDirMixin. This keeps filesystem setup in one
    place and makes the affected tests more uniform.

  • Several tests now rely on direct assertions instead of try/except,
    manual cleanup, or skipped paths. That makes failures more explicit and
    reduces hidden control flow in the suite.

  • High-level impact: no production architecture changes, but the test
    suite becomes smaller, stricter, and easier to reason about. Reviewers
    can read this as a cleanup pass that removes unused test scaffolding
    while preserving existing behavior.

nightly-0fd0e827-ls310

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 08 Jul 12:29
6bd3848

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-0fd0e827-ls310/index.html

LinuxServer Changes:

No changes

Remote Changes:

Support += and -= for multi-value fields in modify (#6648)

Description

Fixes #6587.

This PR adds += and -= support to beet modify for multi-value
fields.

For example:

beet modify genres+=Funk
beet modify genres-=Blues

With this change, genres+=Funk appends Funk to the existing genres
values if it is not already present, while genres-=Blues removes only
the exact value Blues and preserves other values such as Blues Rock.

The existing field=value replacement behavior is preserved.

Main behavior changes:

  • genres=Jazz; Blues still replaces the full field value as before.
  • genres+=Funk appends Funk to the existing multi-value field.
  • genres+=Funk does not create duplicate values.
  • genres-=Blues removes only the exact value Blues.
  • Removing Blues does not remove partial matches like Blues Rock.
  • Existing value order is preserved.
  • += and -= are rejected for scalar fields with a clear user-facing
    error.

nightly-94ef7d8d-ls309

Pre-release

Choose a tag to compare

@LinuxServer-CI LinuxServer-CI released this 05 Jul 13:17
35785f3

CI Report:

https://ci-tests.linuxserver.io/linuxserver/beets/nightly-94ef7d8d-ls309/index.html

LinuxServer Changes:

Full Changelog: nightly-051485be-ls308...nightly-94ef7d8d-ls309

Remote Changes:

typing: add types to beets.util and beets.test.helper (#6805)

I've started working on migrating the codebase to pathlib.Path and
this is the very first step: fully type beets.util and
beets.test.helper. Next, I will me migrating tests to use
pathlib.Path.

First half of #6808.

  • Extracts shared path/temp-directory behavior into PathsMixin, and
    splits import-specific test setup into ImporterMixin. This makes
    beets.test.helper more modular and gives test helpers a clearer
    inheritance structure.

  • Updates TestHelper and import helpers to use those smaller mixins,
    while keeping existing test behavior intact. The main architectural
    effect is better separation between core test setup, filesystem helpers,
    and importer-specific utilities.

  • Tightens typing across beets.test.helper and beets.util,
    especially around path handling. beets.util now accepts a broader set
    of path types through PathLike/AnyPath, which reduces friction
    between bytes, str, and Path usage.

  • Aligns helper internals with the typed interfaces by normalizing path
    handling in methods like touch, using typed template(...) entries
    for importer path formats, and fixing a few return-type/inheritance edge
    cases.

  • High-level impact: this is mainly a typing and test-infrastructure
    cleanup. It improves maintainability and type-checker accuracy without
    changing production architecture or intended runtime behavior.