Commit Graph

4281 Commits

Author SHA1 Message Date
Maxr1998
53d90df61e Add changelog 2026-05-24 01:33:00 +01:00
Maxr1998
3126957ea9 Fix code review comments 2026-05-24 01:33:00 +01:00
Eyüp Can Akman
6e6fee93bf library: include path and reason in ReadError/WriteError messages
ReadError and WriteError formatted the super() proxy in their f-string, so file read and write failures lost the path and reason.
Use super().__str__() to return the FileOperationError message.
2026-05-24 00:25:50 +01:00
yosinn1-blip
2db31cda0d docs: fix received spelling in docs
Signed-off-by: Yoshiki <yosinn1@gmail.com>
2026-05-24 08:10:48 +09:00
jaedonswanson
cbd5f3a813 docs: adding beets-getlrc to the 'other plugins' list 2026-05-21 20:20:53 -05:00
李家成
495ab71e16 Merge branch 'master' of https://github.com/beetbox/beets into fix/album-mod-multivalue-string-splitting 2026-05-22 00:05:59 +08:00
李家成
98d99f818c Address review: wrap tests in class, add changelog, update docs
- Wrap new test_dbcore.py tests in TestModelTypeFallback class
- Add changelog entry for the modify -a multi-value field fix
- Document multi-valued field support for album modify in cli.rst
2026-05-21 23:54:02 +08:00
Sebastian Mohr
adfb73b66d Run ruff format 2026-05-20 16:53:06 +02:00
Santiago Arteta
8a1f9d916a Address review: try-then-except + with_traceback, suppress cause block
Per @snejus review: let super().__getattribute__ run normally and only
intercept its AttributeError when the attribute resolves to a
cached_property. Re-raise as RuntimeError using with_traceback(
exc.__traceback__) so the wrapped error still points at the real
failing line, and raise ... from None to suppress the chained
"during handling of the above exception" block that doubled the CLI
traceback.

Update tests to match: cause chain is now suppressed and the real
traceback lives on the RuntimeError itself. Also add a changelog
entry under Bug fixes.
2026-05-20 02:03:58 +01:00
Šarūnas Nejus
9e3f22b8be Do not move command desc to the next line 2026-05-17 07:38:50 +01:00
Alok Saboo
6b760b798f Merge branch 'master' into import 2026-05-16 19:36:09 -04:00
oxms16
8a8ad7f805 add debug message "`genres:=~Classical. 🐛6598`" 2026-05-16 18:28:02 +08:00
oxms16
b574ff6bc8 change changelog.rst format,because: File 'docs/changelog.rst' could be reformatted. in CI 2026-05-16 16:58:46 +08:00
oxms16
3248f92090 merge docs/changelog.rst 2026-05-16 16:51:24 +08:00
oxms16
b47460b3e6 Fix multi-value path query matching 2026-05-16 16:46:48 +08:00
Alok Saboo
275d7df5cf Merge branch 'master' into import 2026-05-14 10:30:10 -04:00
Šarūnas Nejus
4acbb0f913 Add dependency extra for tidal 2026-05-14 14:54:40 +01:00
Šarūnas Nejus
d4f7f9ffd5 Fix types 2026-05-14 14:54:40 +01:00
Alok Saboo
cddaf5d3b5 Merge branch 'master' into import 2026-05-13 20:41:36 -04:00
ShimmerGlass
65ccaf1408 fix(mbsync): do not clear metadata if import.from_scratch is set
if import.from_scratch was set in the config, runnning mbsync would
clear any metadata not provided by MBz (replay gain, lyrics, genres...).
we now ignore this setting when running mbsync to preserve metadata.

Fixes: #6613
2026-05-13 18:06:08 +02:00
ShimmerGlass
ec1c25644d fix(duplicates): output format
* the pugin used an empty format string unless --count was provided,
  resulting in outputs like `: 1`. it now correctly displays duplicated
  items.
* --count was ignored (aside from above bug), and item count was always
  appended to output.
2026-05-11 22:43:53 +02:00
Alok Saboo
7fc6284d95 fix: improve context propagation and add threaded regression test 2026-05-10 11:17:37 -04:00
Alok Saboo
53ee4c9023 Update changelog 2026-05-10 11:14:05 -04:00
Alok Saboo
d20ebdf949 update changelog 2026-05-10 11:12:58 -04:00
Alok Saboo
1b121bcb13 Added import contextvars to capture the current context 2026-05-10 11:12:58 -04:00
Martin Caspersen
610443ae9e doc: fix formatting 2026-05-08 12:35:59 +02:00
Martin Caspersen
5342d9bc76 Merge remote-tracking branch 'fork/master' into fix/mbpseudo-raw-data 2026-05-08 12:25:49 +02:00
ShimmerGlass
45e78473b0 feat(import): add --nomove / -M option 2026-05-07 13:50:40 +02:00
Šarūnas Nejus
34772d2684 Replace _get_opts_and_config with attributes 2026-05-06 15:30:50 +01:00
snejus
26ab6b2636 Increment version to 2.11.0 2026-05-06 10:05:13 +00:00
Šarūnas Nejus
10d0f37793 Merge branch 'master' into fix/badfiles-quiet-mode 2026-05-02 22:35:41 +01:00
Šarūnas Nejus
57b9b648b0 Fix changelog 2026-05-02 22:18:12 +01:00
ShimmerGlass
cc63a4e9b9 fix(MusicBrainz): date parsing fix
Correctly handle release dates where leading or
intermediate components are missing, e.g. 2008-??-02
2026-05-02 16:26:48 +02:00
Ivan Kanis
4fdd8e2b96 Add Beetnik in other plugins 2026-05-02 02:47:02 +01:00
Eyüp Can Akman
811593a1ee badfiles: respect import.quiet during import hook
The import hook prompted for input even when quiet mode was active, so
non-interactive imports blocked on the corrupt-file dialog. Return early
from `on_import_task_before_choice` when `import.quiet` is set so the
importer falls back to its summary judgment.
2026-05-01 17:01:47 +03:00
Šarūnas Nejus
06ffb91022 autotag: move original_date override into AlbumInfo.item_data
Previously, the original_date year/month/day override was applied in
merge_with_album after building the merged dict. Move this logic into
a cached_property on AlbumInfo so album-level metadata also reflects
the original release date. Fixes 🐛`6577`.
2026-04-29 14:40:46 +01:00
Alok Saboo
f459edbbd4 Merge upstream master and fix changelog.rst
Sync with upstream beets/master and resolve changelog conflict,
keeping only the Spotify batch entry in the Unreleased section.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-28 21:12:30 -04:00
Eyüp Can Akman
88be3023bb lyrics: handle apostrophes in musixmatch slug
The musixmatch URL slug builder did not replace curly apostrophes
(U+2018, U+2019) before applying the whitespace-to-dash rule, so titles
like "If They're Shooting at You" produced a slug with the raw quote
preserved and the lookup failed.

Add a REPLACEMENTS entry that maps both curly quote codepoints to a
dash before the rest of the substitutions run.
2026-04-28 17:27:28 +03:00
Alok Saboo
91e3562e71 revert unwanted changes 2026-04-28 08:12:51 -04:00
Alok Saboo
d976a59bbb Merge branch 'master' into spotify_batch 2026-04-28 07:46:54 -04:00
Jah-yee
8ce49d6152 changelog: add entry for DBAccessError message improvement
Signed-off-by: Jah-yee <166608075+Jah-yee@users.noreply.github.com>
2026-04-28 12:12:57 +08:00
Alok Saboo
4ddef8cda6 Merge branch 'master' into spotify_batch 2026-04-26 09:47:58 -04:00
Šarūnas Nejus
ca36df2d00 Fix lambda closure bug in concurrent plugin method execution
Replace inline lambda with named `materialize` helper to correctly
pass plugin method and arguments to the thread executor, preventing
all futures from calling the last plugin only.
2026-04-26 11:55:28 +01:00
Terry Chen
e546e02596 Clarify MusicBrainz extra_tags defaults 2026-04-25 23:29:17 -04:00
Šarūnas Nejus
a634f7f2de Add a changelog note 2026-04-25 16:04:58 +01:00
Alok Saboo
999286a39e Merge branch 'master' into spotify_batch 2026-04-24 09:44:43 -04:00
Daniele Ricci
7eadc5e1d8 library: add subtitle (id3 TIT3) field 2026-04-23 21:11:50 +02:00
John Parton
0b3fa014b5 Reformat py/rst, fix linting/formatting errors. 2026-04-22 22:31:36 +01:00
John Parton
e8918fc6b8 Pre-compile relevant regex. Update documentation. 2026-04-22 22:31:36 +01:00
John Parton
5a2387101b Update changelog. 2026-04-22 22:31:36 +01:00