Skip to content

build(deps): bump beets from 2.5.1 to 2.9.0#51

Closed
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/uv/beets-2.9.0
Closed

build(deps): bump beets from 2.5.1 to 2.9.0#51
dependabot[bot] wants to merge 1 commit intomainfrom
dependabot/uv/beets-2.9.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github Apr 13, 2026

Bumps beets from 2.5.1 to 2.9.0.

Release notes

Sourced from beets's releases.

Release v2.9.0

Beets now officially supports Python 3.14.

New features

  • AutoBPM Plugin: Add force configuration and CLI option and deprecate overwrite.
  • AutoBPM Plugin: The "BPM already exists for item" log message can now be hidden with the --quiet flag.
  • Chromaprint/Acoustid Plugin: Add new command chromasearch to search the local library by chromaprint fingerprint.
  • FetchArt Plugin: Add support for WebP images.
  • import command Use ffprobe to recognize format of any import music file that has no extension. If the file cannot be recognized as a music file, leave it alone. 🐛 (#4881)
  • LastGenre Plugin: Add support for a user-configurable ignorelist to exclude unwanted or incorrect Last.fm (or existing) genres, either per artist or globally 🐛 (#6449)
  • MusicBrainz Plugin: Store MBIDs for remixers, lyricists, composers, and arrangers in the new multi-valued fields remixers_mbid, lyricists_mbid, composers_mbid, and arrangers_mbid. 🐛 (#5698)
  • ReplayGain Plugin: Conflicting replay gain tags are now removed on write. RG* tags are removed when setting R128* and vice versa.
  • Smart Playlist Plugin: The list of available playlists shown when an unknown playlist name is passed as an argument is now sorted alphabetically and printed space-delimited and POSIX shell-quoted when required. This makes it easier to copy and paste multiple playlists for further use in the shell.
  • Query: Add has_cover_art computed field to query items by embedded cover art presence. Users can now search for tracks with or without embedded artwork using beet list has_cover_art:true or beet list has_cover_art:false.
  • Store track remixers, lyricists, composers, and arrangers in the multi-valued remixers, lyricists, composers, and arrangers fields instead of the legacy single-value remixer, lyricist, composer, and arranger fields. Existing libraries are migrated automatically, and MusicBrainz Plugin now preserves each MusicBrainz remixer, lyricist, composer, and arranger relation as a separate value.

Bug fixes

  • Deezer Plugin: Fix a regression in 2.8.0 where selecting a Deezer match during import could crash with AttributeError: 'AlbumInfo' object has no attribute 'raw_data' when Deezer returned numeric artist IDs. 🐛 (#6503)
  • Deezer Plugin: Fix Various Artists albums being tagged with a localized string instead of the configured va_name. Detection now uses Deezer's artist ID rather than the artist name string. 🐛 (#4956)
  • Discogs Plugin: Store specific Discogs styles in beets genres and broader Discogs genres in the style field. When append_style_genre is enabled, the broader Discogs genres are also appended to the genres list. 🐛 (#6390)
  • FetchArt Plugin: Error when a configured source does not exist or sources configuration is empty. 🐛 (#6336)
  • import command Fix albumartists_sort (and related fields) incorrectly prepending the full combined artist credit as the first element for multi-artist releases. 🐛 (#6470)
  • ListenBrainz Plugin: Fix lbimport crashing when ListenBrainz tracks are processed through Last.fm-specific play-count import logic. Play-count imports now use source-specific fields so ListenBrainz Plugin, LastImport Plugin, and MPDStats Plugin do not clash. 🐛 (#6469)
  • ListenBrainz Plugin: Paginate through all ListenBrainz listens instead of fetching only 25, aggregate individual listen events into correct play counts, use recording_mbid from the ListenBrainz mapping when available, and avoid per-listen MusicBrainz API lookups that caused imports to hang on large listen histories. 🐛 (#6469)
  • modify command accepts legacy singular field names such as genre, composer, lyricist, remixer, and arranger in assignments, rewrites them to the corresponding multi-valued fields, and warns users to switch to the plural field names. list command, and query expressions, accept the same legacy singular field names and warn users to switch to the plural field names. 🐛 (#6483)
  • Rewrite Plugin Advanced Rewrite Plugin: Fix rewriting multi-valued fields such as genres by applying rules to each matching list entry. Additionally, apply rewrite rules in config order, so that multiple rules can be applied to the same field. 🐛 (#6515)
  • Correctly handle semicolon-delimited genre values from externally-tagged files. 🐛 (#6450)

For plugin developers

  • If you maintain a metadata source plugin that populates any of arranger, composer, lyricist, remixer fields, update it to populate the respective multi-valued fields instead (arrangers, composers, lyricists, remixers).

Release v2.8.0

New features

  • Discogs Plugin: Add extra_tags option to use additional tags (such as barcode, catalognum, country, label, media, and year) in Discogs search queries.
  • Lyrics Plugin: Add auto_ignore configuration option to skip fetching lyrics for items matching a beets query during auto import.
  • Missing Plugin: When running in missing album mode, allows users to specify MusicBrainz release types to show using the --release-type flag. The default behavior is also changed to just show releases of type album. 🐛 (#2661)
  • Play Plugin: Added -R/--randomize flag to shuffle the playlist order before passing it to the player.
  • Smart Playlist Plugin: Add new configuration option dest_regen to regenerate items' path in the generated playlist instead of using those in the library. This is useful when items have been imported in don't copy-move (-C -M) mode in the library but are later passed through the Convert Plugin plugin which will regenerate new paths according to the Beets path format.

Bug fixes

  • Beatport Plugin: Use va_name config for the album artist on VA releases instead of hardcoded "Various Artists". 🐛 (#6316)
  • config command on Windows now uses cmd /c start "" for the default editor fallback so beet config -e works when VISUAL and EDITOR are unset. 🐛 (#6436)
  • Fish Plugin: Fix AttributeError. 🐛 (#6340)
  • import command Autotagging by explicit release or recording IDs now keeps candidates from all enabled metadata sources instead of dropping matches when different providers share the same ID. 🐛 (#6178) 🐛 (#6181)
  • import command Simplify autotag metadata application for albums and singletons, fixing null-overwrite handling and keeping singular/plural artist metadata fields in sync during tagging.

... (truncated)

Changelog

Sourced from beets's changelog.

2.9.0 (April 11, 2026)

Beets now officially supports Python 3.14.

New features


- :ref:`import-cmd` Use ffprobe to recognize format of any import music file
  that has no extension. If the file cannot be recognized as a music file, leave
  it alone. :bug:`4881`
- Query: Add ``has_cover_art`` computed field to query items by embedded cover
  art presence. Users can now search for tracks with or without embedded artwork
  using ``beet list has_cover_art:true`` or ``beet list has_cover_art:false``.
- :doc:`plugins/autobpm`: Add ``force`` configuration and CLI option and
  deprecate ``overwrite``.
- :doc:`plugins/autobpm`: The "BPM already exists for item" log message can now
  be hidden with the ``--quiet`` flag.
- :doc:`plugins/smartplaylist`: The list of available playlists shown when an
  unknown playlist name is passed as an argument is now sorted alphabetically
  and printed space-delimited and POSIX shell-quoted when required. This makes
  it easier to copy and paste multiple playlists for further use in the shell.
- :doc:`plugins/chroma`: Add new command ``chromasearch`` to search the local
  library by chromaprint fingerprint.
- Store track remixers, lyricists, composers, and arrangers in the multi-valued
  ``remixers``, ``lyricists``, ``composers``, and ``arrangers`` fields instead
  of the legacy single-value ``remixer``, ``lyricist``, ``composer``, and
  ``arranger`` fields. Existing libraries are migrated automatically, and
  :doc:`plugins/musicbrainz` now preserves each MusicBrainz ``remixer``,
  ``lyricist``, ``composer``, and ``arranger`` relation as a separate value.
- :doc:`plugins/musicbrainz`: Store MBIDs for remixers, lyricists, composers,
  and arrangers in the new multi-valued fields ``remixers_mbid``,
  ``lyricists_mbid``, ``composers_mbid``, and ``arrangers_mbid``. :bug:`5698`
- :doc:`plugins/replaygain`: Conflicting replay gain tags are now removed on
  write. RG_* tags are removed when setting R128_* and vice versa.
- :doc:`plugins/fetchart`: Add support for WebP images.
- :doc:`plugins/lastgenre`: Add support for a user-configurable ignorelist to
  exclude unwanted or incorrect Last.fm (or existing) genres, either per artist
  or globally :bug:`6449`

Bug fixes


- :doc:`plugins/deezer`: Fix Various Artists albums being tagged with a
  localized string instead of the configured ``va_name``. Detection now uses
  Deezer's artist ID rather than the artist name string. :bug:`4956`
- :doc:`plugins/listenbrainz`: Paginate through all ListenBrainz listens instead
  of fetching only 25, aggregate individual listen events into correct play
  counts, use ``recording_mbid`` from the ListenBrainz mapping when available,
  and avoid per-listen MusicBrainz API lookups that caused imports to hang on
</tr></table> 
</code></pre>
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>

<ul>
<li><a href="https://github.com/beetbox/beets/commit/018dba08cd28bf38f5df79c233621bf6aca23d3e&quot;&gt;&lt;code&gt;018dba0&lt;/code&gt;&lt;/a> Increment version to 2.9.0</li>
<li><a href="https://github.com/beetbox/beets/commit/948535be3effe9ed121b4212f00adf0ced852e06&quot;&gt;&lt;code&gt;948535b&lt;/code&gt;&lt;/a> Quickfix readthedocs build (<a href="https://redirect.github.com/beetbox/beets/issues/6521&quot;&gt;#6521&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/beetbox/beets/commit/396777463026629fa02680dee701fbab042847d8&quot;&gt;&lt;code&gt;3967774&lt;/code&gt;&lt;/a> Pin sphinx&lt;9</li>
<li><a href="https://github.com/beetbox/beets/commit/725bc541b1a860ae2a92b058d97feb1ff6526a84&quot;&gt;&lt;code&gt;725bc54&lt;/code&gt;&lt;/a> Quickfix readthedocs build</li>
<li><a href="https://github.com/beetbox/beets/commit/1eff98653bc2a3931549597b925ff7d3cba6928e&quot;&gt;&lt;code&gt;1eff986&lt;/code&gt;&lt;/a> Support for python 3.14 (<a href="https://redirect.github.com/beetbox/beets/issues/6267&quot;&gt;#6267&lt;/a&gt;)&lt;/li>
<li><a href="https://github.com/beetbox/beets/commit/0318790e1698ed0c3c73788e2f2893a62b3f46a0&quot;&gt;&lt;code&gt;0318790&lt;/code&gt;&lt;/a> Updated pyacoustid</li>
<li><a href="https://github.com/beetbox/beets/commit/ea64158c6ce52557f17a8e04c51c4778278c3445&quot;&gt;&lt;code&gt;ea64158&lt;/code&gt;&lt;/a> Fixed minor typing issue as requests is now more strictly typed.</li>
<li><a href="https://github.com/beetbox/beets/commit/2a3bf6064c7504fcc35338ab341db08b5f90f75c&quot;&gt;&lt;code&gt;2a3bf60&lt;/code&gt;&lt;/a> Added changelog entry.</li>
<li><a href="https://github.com/beetbox/beets/commit/1073d7106ca40194e3639cc786f772ffc909b6b0&quot;&gt;&lt;code&gt;1073d71&lt;/code&gt;&lt;/a> Run poetry update. New lockfile.</li>
<li><a href="https://github.com/beetbox/beets/commit/6df7dadfafa02ce11ee17142dff095f36739179d&quot;&gt;&lt;code&gt;6df7dad&lt;/code&gt;&lt;/a> Fixed issue with differences in how mp starts processes now.</li>
<li>Additional commits viewable in <a href="https://github.com/beetbox/beets/compare/v2.5.1...v2.9.0&quot;&gt;compare view</a></li>
</ul>
</details>

<br />

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code labels Apr 13, 2026
@dependabot dependabot Bot force-pushed the dependabot/uv/beets-2.9.0 branch from e1982dd to a944cea Compare April 14, 2026 19:31
Bumps [beets](https://github.com/beetbox/beets) from 2.5.1 to 2.9.0.
- [Release notes](https://github.com/beetbox/beets/releases)
- [Changelog](https://github.com/beetbox/beets/blob/master/docs/changelog.rst)
- [Commits](beetbox/beets@v2.5.1...v2.9.0)

---
updated-dependencies:
- dependency-name: beets
  dependency-version: 2.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot force-pushed the dependabot/uv/beets-2.9.0 branch from a944cea to 617bdbe Compare April 14, 2026 20:54
@YR-ZR0 YR-ZR0 self-assigned this Apr 17, 2026
@YR-ZR0 YR-ZR0 requested a review from Copilot April 17, 2026 06:49
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates this plugin’s Beets dependency to pick up Beets v2.9.0 (including upstream Python 3.14 support and other plugin/core changes reflected in Beets’ dependency graph), and refreshes the uv lockfile accordingly.

Changes:

  • Bump beets requirement from >=2.2.0,<3 to >=2.9.0,<3.
  • Regenerate uv.lock to lock Beets 2.9.0 and updated transitive dependencies.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
pyproject.toml Updates the declared Beets dependency constraint to >=2.9.0,<3.
uv.lock Updates the resolved dependency set to match Beets 2.9.0 and new transitive requirements/markers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github Apr 20, 2026

Superseded by #54.

@dependabot dependabot Bot closed this Apr 20, 2026
@dependabot dependabot Bot deleted the dependabot/uv/beets-2.9.0 branch April 20, 2026 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python:uv Pull requests that update python:uv code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants