Commit graph

2387 commits

Author SHA1 Message Date
snejus
cdfb813910 Increment version to 2.6.1 2026-02-02 02:29:04 +00:00
Šarūnas Nejus
b6230a84fc
Make packaging a required dependency 2026-02-02 02:16:36 +00:00
snejus
680473b9e5 Increment version to 2.6.0 2026-02-01 14:42:50 +00:00
Sebastian Mohr
8e0b3f1323 Moved config check into find_metadata_source_plugins func. 2026-01-31 23:42:09 +00:00
Arne Beer
4d7b9cb14b fix(lastgenre): Canonicalize keep_existing fallback
Fixes a bug where existing tags were set to None, if they weren't whitelisted, but an whitelisted canonicalized parent existed up the tree.

In all other cases, the original genres are canonicalized and considered for the final genre, except in the keep_existing logic branch.
This PR fixes the issue and results in the expected behavior for this combination of options.

For the bug to trigger several conditions had to be met:

- Canonicalization is enabled and a whitelist is specified.
- `force` and `keep_existing` are set. Meaning, that Lastfm is queried for a genre, but the existing genres are still left around when none are found online.
- A release with a non-whitelisted genre exists, but that genre has a whitelisted genre parent up the tree.
- That very release has no genre on lastfm.

This is rather convoluted, but stay with me :D
What would happen is the following:

- `keep_genres` is set to the existing genres, as `force` and `keep_existing` is set.
- Genres for `track`/`album`/`artist` aren't found for this release, as they don't exist in lastfm.
- Then the `keep_existing` logic is entered.
  - The old logic only checks if the existing genres have an **exact** match for the whitelist. In contrast to all other code branches, we don't do the `_try_resolve_stage` in case there's no direct match, resulting in no match.
- We continue to the fallback logic, which returns the fallback (`None` in my case)

This patch results in one last try to resolve the existing genres when `keep_existing` is set, which includes canonicalization (if enabled).
2026-01-31 13:22:56 +01:00
Šarūnas Nejus
cde73cc433
Add changelog note 2026-01-30 01:18:11 +00:00
Sebastian Mohr
ee7dc3c4e7
Enhanced documentation of random plugin. 2026-01-30 00:30:45 +00:00
Sebastian Mohr
34e0de3e1f
Added typehints and some more tests. 2026-01-30 00:30:20 +00:00
Kirill A. Korinsky
5a94209364
Update changelog 2026-01-27 22:56:18 +01:00
Rebecca Turner
958b36b298 fish: complete files in more places 2026-01-20 13:07:03 -08:00
Serene
39f65f6b11
Merge branch 'master' into embedart-clear-improvements 2026-01-20 08:43:30 +10:00
Henry
1d6e05709e Fix #6068 - Multivalue fields are now supported & tested. 2026-01-19 12:41:36 -08:00
Henry
9efe87101c Fix #6177, remove derived types, refactor coalesce tracks 2026-01-19 12:40:42 -08:00
Dr.Blank
52284ff7ed
fix: changelog entry 2026-01-17 14:30:22 +05:30
Dr.Blank
4ad5871ef0
fix: sort imports 2026-01-16 15:53:34 +05:30
Dr.Blank
b0bce80518
remove changelog not related to pr 2026-01-16 15:50:09 +05:30
Dr.Blank
8482733034
Merge branch 'master' into fix-permission-error 2026-01-16 15:48:19 +05:30
Šarūnas Nejus
bfb24da51c
Add note to the changelog 2026-01-15 15:53:06 +00:00
rdy2go
fdfeb35076 add changelog for and to resolve PR #5828 2026-01-15 16:07:54 +01:00
rdy2go
445ad02399
Merge branch 'beetbox:master' into master 2026-01-15 16:04:46 +01:00
Šarūnas Nejus
f63585fe31
Remove expired Spotify credentials and log error for missing configuration (#6271)
Looks like our hard-coded API credentials expired. This PR removes
expired credentials and makes it clear to the user that they must
provide their credentials.

Fixes #6270
2026-01-11 19:02:37 +00:00
Henry Oberholtzer
f7b05cb7db ftintitle: fix changelog conflict 2026-01-08 12:20:25 -08:00
Šarūnas Nejus
a3c2e383f4
Merge branch 'master' into spotify 2026-01-08 00:23:15 +00:00
Alok Saboo
dd3ecec579 Updated Spotify API credentials 2026-01-07 18:54:39 -05:00
Eric Masseran
fe8dc1e65e Align lint 2026-01-07 20:47:04 +01:00
Aidan Epstein
b53aff9b15 Fix fetchart colors broken by 67e668d81f 2026-01-07 10:36:08 -08:00
Serene
c125918b9f
Merge branch 'master' into embedart-clear-improvements 2026-01-07 19:06:11 +10:00
Eric Masseran
3c34fd25f3 Merge branch 'master' into embedart-clear-improvements
* master: (37 commits)
  importsource: Test skip, Test reimport-skip
  Fix initial importsource plugin #4748 changelog
  importsource: fix potential prevent_suggest_removal crash
  Ensure that inc are joined with a plus
  Add retries for connection errors
  Add Usage block to RequestHandler
  Refactor HTTP request handling with RequestHandler base class
  Make musicbrainzngs dependency optional and requests required
  musicbrainz: remove error handling
  musicbrainz: access the custom server directly, if configured
  musicbrainz: browse directly
  musicbrainz: search directly
  musicbrainz: lookup recordings directly
  musicbrainz: lookup release directly
  Move pseudo release lookup under the plugin
  Add missing blame ignore revs from musicbrainz plugin
  Define MusicBrainzAPI class with rate limiting
  Move TimeoutSession under beetsplug._utils
  expand tests to include check for track artists
  remove changes for lastgenre as there was an existing PR for that work
  ...
2026-01-06 22:43:47 +01:00
Eric Masseran
74a10266f0 Add documentation and changelog 2026-01-06 22:43:08 +01:00
Šarūnas Nejus
a405821828
Fix changelog formatting 2026-01-06 09:54:02 +00:00
Šarūnas Nejus
d4b00ab4f4
Add request handler utils to the docs 2026-01-06 09:54:02 +00:00
Šarūnas Nejus
34d993c043
Add a changelog note 2026-01-06 09:54:02 +00:00
Trey Turner
714c9705c3 Merge branch 'master' into feat/ftintitle/insert_featured_artist_before_variant_clauses 2026-01-01 15:40:37 -06:00
Jack Wilsdon
afc26fa58f Add packaging note about mock dependency removal 2026-01-01 15:50:37 +00:00
j0j0
28dc78be95 lastgenre: Changelog for #5981 lastgenre 2025-12-30 20:57:10 +01:00
Danny Trunk
9ddddf4c39 fetchart: Add support for configurable fallback cover art 2025-12-30 13:45:03 +01:00
Šarūnas Nejus
75baec611a
Improve and simplify show_model_changes 2025-12-27 14:30:35 +00:00
Sebastian Mohr
53a42bf6f6
Merge branch 'master' into gabepush-test-fix 2025-12-23 15:34:47 +01:00
Trey Turner
572645b94c Merge branch 'master' into feat/ftintitle/insert_featured_artist_before_variant_clauses 2025-12-21 21:06:31 -06:00
J0J0 Todos
be3485b066 Fix initial importsource plugin #4748 changelog
- Fix position (wrong release)
- Elaborate wording
2025-12-21 13:07:02 +01:00
Trey Turner
87a61fa8fa Merge branch 'master' into feat/ftintitle/insert_featured_artist_before_variant_clauses 2025-12-20 02:32:06 -06:00
Arden Rasmussen
9cbbad19f8 remove changes for lastgenre as there was an existing PR for that work 2025-12-17 15:57:23 -08:00
Arden Rasmussen
01e0aeb662 address linter and ai comments from pr 2025-12-17 12:20:05 -08:00
Arden Rasmussen
963a9692cc added tests for multi-artist spotify and lastgenre changes 2025-12-17 11:54:12 -08:00
Matthew Kay
9ba3e12e8f Fix ftintitle plugin to prioritize explicit featuring tokens
- Prioritize explicit featuring tokens (feat, ft, featuring) over generic
  separators (&, and) when splitting artist names
- Prevents incorrect splits like 'Alice & Bob feat Charlie' from splitting
  on '&' instead of 'feat'
- Add test cases to verify the fix
2025-12-10 20:52:37 +00:00
Alok Saboo
515f9b6154
Merge branch 'master' into smartplaylist 2025-12-09 13:35:21 -05:00
Gabriel Push
8a089b5d77 Fixed doc 2025-12-09 12:14:02 -05:00
Gabriel Push
556f3932ce Added documentation 2025-12-09 12:14:02 -05:00
Guy Bloom
2bd77b9895
Fix convert --format with never_convert_lossy_files (#6171)
## Description

Fixes #5625 

When `convert.never_convert_lossy_files` is enabled, `beet convert` was
ignoring the explicit `--format` option and just copying the lossy files
without
transcoding them. For example:

- `beet convert format:mp3 --format opus`

would still produce MP3 files instead of OPUS.

Change:

- Allows to override options `never_convert_lossy_files`, `max_bitrate`
or `no_convert` for `beet convert` as well as trying to convert to the
same format as existing already with a new option `--force`. That way,
for example lossy files selected by the query are transcoded to the
requested format anyway.
- Keeps existing behavior for automatic conversion on import (no CLI
override there).
- Adds tests to cover checking whether `--force` correctly overrides
settings or CLI options.
- Documents the behavior in the convert plugin docs

Co-authored-by: J0J0 Todos <jojo@peek-a-boo.at>
2025-12-03 22:48:41 +01:00
Alok Saboo
7cf6d7594e Merge remote-tracking branch 'upstream/master' into smartplaylist 2025-12-02 09:31:20 -05:00