Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package beets for openSUSE:Factory checked in at 2026-09-28 10:44:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/beets (Old) and /work/SRC/openSUSE:Factory/.beets.new.383539 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "beets" Mon Sep 28 10:44:47 2026 rev:21 rq:1380757 version:2.14.1 Changes: -------- --- /work/SRC/openSUSE:Factory/beets/beets.changes 2026-07-31 16:06:06.353920589 +0200 +++ /work/SRC/openSUSE:Factory/.beets.new.383539/beets.changes 2026-09-28 10:45:25.754379977 +0200 @@ -1,0 +2,154 @@ +Fri Sep 25 19:57:34 UTC 2026 - Jaime Marquínez Ferrándiz <[email protected]> + +- update to 2.14.1: + * Bug fixes + * Discogs Plugin: Read the release month and day from the API's released + field instead of only the year. Fix Discogs match overwriting month and + day tags on import. + * import command Fix interactive importer ignoring candidates from manual + search (e) and manual ID (i) entry. (#7000) + * Lyrics Plugin: Support 3-decimal millisecond timestamps (e.g. + [mm:ss.xxx]) in LRC parsing, fixing an issue where synced lyrics with + millisecond precision were erroneously rejected and fell back to plain + lyrics. (#7001) + * Add a configurable tempfile_prefix for temporary files created during + cross-filesystem moves, avoiding hidden-file behavior on Windows and + Samba shares caused by a hard-coded leading dot ('.'). (#7033) + * Empty leading path-format fields (e.g. from missing metadata) combined + with a custom Replace Plugin configuration no longer produce an absolute + destination path that escapes the library or Convert Plugin destination + directory; leading path separators are now stripped from the rendered + path. (#4889) + * Skip archive importer tests (TestImport7z and TestImportRar) when their + optional dependencies (py7zr or rarfile / unrar) are not available. + (#7002) + * Other changes + * Duplicates Plugin: Improve the documentation of the checksum option: + explain how the external command is run, remove the broken md5sum {file} + example and show how to use such commands through a wrapper script. + (#3979) + * Use bytes instead of memoryview for SQLite path storage and query + parameters. + +------------------------------------------------------------------- +Fri Sep 25 19:27:22 UTC 2026 - Jaime Marquínez Ferrándiz <[email protected]> + +- update to 2.14.0: + * New features + * duplicate_action: Add an upgrade option that replaces individual + duplicate tracks only if the new copy has a higher bitrate, adds any + genuinely new tracks, and keeps the album together rather than splitting + it. The option is available both through configuration and from the + interactive duplicate prompt. (#4471) + * list command Add -l / --limit LIMIT flag to the list command command to + limit query results. (#5076) + * PlexUpdate Plugin: Add beet plexupdate --auth, an interactive plex.tv + login following Plex' traditional PIN authentication flow: the access + token for the local server is stored in a token file. The manual token + configuration option is now deprecated. + * The interactive import prompt now offers a "Rescan directory" choice for + album tasks. It re-reads the album's directory from disk and re-runs the + match, so files can be cleaned up (duplicates, junk) while the import is + paused at the prompt, without restarting the whole import command run. + * Bug fixes + * AURA Plugin: Prevent multi-valued field filters from crashing with an + sqlite3.InterfaceError. + * AURA Plugin: When sorting by field, do not exclude resources that have no + value for field. + * BPD Plugin: Fix search command when any field is used. + * Convert Plugin: Fixed convert plugin not taking into account the new + format when determining the target path. (#1360) + * Deezer Plugin: Detect compilations that Deezer credits to a single "main" + artist instead of "Various Artists", so they are tagged as such rather + than getting every track artist in the album artist field. (#4057) + * Deezer Plugin: Singleton searches now use plain free text rather than + <title> artist:"<artist>". Deezer discards unquoted free text as soon as + a query contains any field:"value" filter, so the old query was evaluated + as artist:"<artist>" alone -- every track by the artist, in Deezer's own + relevance order and truncated to search_limit. For artists with more + releases than that window, the track being imported was never among the + candidates offered. + * Deezer Plugin: Track conversion no longer assumes the API sends both + contributors and artist. The fallback to artist was evaluated even when + contributors was present, so a track payload without artist raised + KeyError. Albums were already guarded; this fixes the remaining call + site. (#4339) + * Discogs Plugin: Retry a search once when Discogs returns an invalid JSON + response instead of immediately discarding all Discogs candidates. + * Edit Plugin: Item-only fields rejected from the album header remain + available in per-track documents during interactive import when they are + also configured in itemfields. (#6953) + * import command: Restore the ability to import from tar and 7z archives. + Both failed with an '... object has no attribute 'infolist' error because + tarfile.TarFile lost its ZipFileCompat interface in Python 3 and + py7zr.SevenZipFile exposes list() rather than infolist(). (#5664) + * IPFS Plugin: Fix beet ipfs --play option to invoke the Play plugin + through its command interface. + * Limit Query Plugin Deprecate the Limit Query Plugin plugin in favor of + the new -l / --limit flag for the list command command. + * ListenBrainz Plugin and LastImport Plugin: Play counts are now matched + more accurately. An exact MusicBrainz recording ID match is preferred + when one exists, and titles are matched exactly (confirmed by the artist + or album) before falling back to the previous substring-based matching. + Previously all queries were combined, so a listen for "Song" also updated + "Song (inst.)" or any other item whose title only contained the listened + title. + * Lyrics Plugin: beet lyrics no longer crashes with an AttributeError on + tracks that have no stored lyrics when force is enabled; a missing lyrics + body is now treated as empty text. (#6860) + * Lyrics Plugin: LRCLib entries that carry no lyrics text at all, with both + plainLyrics and syncedLyrics null while instrumental is False, are no + longer considered matches. Previously such an entry was accepted and its + null text propagated, raising AttributeError: 'NoneType' object has no + attribute 'splitlines'. During an import this aborted the whole run + rather than a single track. A null plainLyrics now also falls back to the + synced lyrics instead of discarding them. + * modify command: Fix applying changes when choosing objects in interactive + select mode. (#4880) + * move command: Fix moving albums in interactive select/timid mode. (#2802) + * Scrub Plugin: The scrub plugin now respects the --nowrite (-W) flag + during import. Previously, beet import -W with the scrub plugin enabled + would still remove tags from imported files; the plugin now skips + scrubbing when should_write() returns False. (#6958) + * Tidal Plugin: Pass the converted track duration as length so it + contributes to the autotagging track-length distance instead of being + silently stored as a duration flexible attribute. + * Tidal Plugin: Restore catalog searches after TIDAL moved search queries + from the request path to the required filter[query] parameter. (#6989) + * Tidal Plugin: The label field no longer stores Tidal's raw + copyright/rights-statement text verbatim. It's now normalized to a + concise label name, stripping copyright markers, years, and corporate, + licensing, and territorial boilerplate. Affects both album and track + metadata. (#6796) + * update command no longer crashes when a plugin-added media field is + stored as a flexible attribute. (#5580) + * A date range query written back to front (for example added:2024..2020) + no longer crashes with an uncaught ValueError. The endpoints are now + swapped, so such a range means the same as added:2020..2024. + * Add editor config option to allow users to permanently set their + preferred editor, overriding $VISUAL and $EDITOR environment variables. + (#6641) + * Autotagging distance calculations no longer treat ordinary words + containing "ft" (such as "draft", "left", "gift", "craft") as a + "featuring artist" suffix, which was silently making genuinely different + titles/artists score as near-identical matches. + * Deduplicating a file whose name already ends in a counter of two or more + digits no longer restarts the numbering: track.10.mp3 now yields + track.11.mp3 instead of track.1.mp3. The counter was matched with + \.(\d)+$, which captures only the final digit. + * Flexible attributes whose names contain uppercase characters (for example + beet import --set Tag_With_Uppercase=true) can now be found by queries. + Field names are lowercased when a query is parsed, so such attributes + could never be matched; flexible attribute lookups now fall back to a + case-insensitive key match. (#4565) + * Plugins built on SearchApiMetadataSourcePlugin (MusicBrainz Plugin, + Spotify Plugin, Deezer Plugin and Discogs Plugin) no longer send a search + request when both the query text and the filters are empty. (#6862) + * Other changes + * BPD Plugin: Replace the bundled Bluelet scheduler with Python's standard + asyncio event loop. + * Docs: fix broken link to test/dbcore/test_query.py in CONTRIBUTING.rst; + add crawler-blocking and unreachable sites to linkcheck_ignore in + docs/conf.py. + +------------------------------------------------------------------- Old: ---- v2.13.1.tar.gz New: ---- v2.14.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ beets.spec ++++++ --- /var/tmp/diff_new_pack.qy4TxL/_old 2026-09-28 10:45:26.489410772 +0200 +++ /var/tmp/diff_new_pack.qy4TxL/_new 2026-09-28 10:45:26.491410856 +0200 @@ -24,7 +24,7 @@ %{?sle15_python_module_pythons} %endif Name: beets -Version: 2.13.1 +Version: 2.14.1 Release: 0 Summary: Music tagger and library organizer License: MIT ++++++ v2.13.1.tar.gz -> v2.14.1.tar.gz ++++++ ++++ 28300 lines of diff (skipped)
