Release v2.1.0
·
1130 commits
to master
since this release
New features
- Ability to query albums with track db fields and vice-versa, for example
beet list -a title:somethingorbeet list artpath:cover. Consequently album queries involvingpathfield have been sped up, likebeet list -a path:/path/. - Beets now uses
platformdirsto determine the default music directory. This location varies between systems -- for example, users can configure it on Unix systems viauser-dirs.dirs(5). - New template function added:
%capitalize. Converts the first letter of the text to uppercase and the rest to lowercase. - Plugin
autobpm: Add new configuration optionbeat_track_kwargswhich enables adjusting keyword arguments supplied to librosa'sbeat_trackfunction call. - Plugin
ftintitle: Newkeep_in_artistoption for the plugin, which allows keeping the "feat." part in the artist metadata while still changing the title.
Bug fixes
- Album flexible fields are now correctly saved. For instance MusicBrainz external links such as
bandcamp_album_idwill be available on albums in addition to tracks. For albums already in your library, a re-import is required for the fields to be added. Such a re-import can be done with, in this case,beet import -L data_source:=MusicBrainz. - Fix lyrics plugin only getting part of the lyrics from
Genius.com🐛 (#4815) - Fix the
TypeErrorwhenset_fieldsis provided non-string values. 🐛 (#4840) - Fix the
autovalue for thereflinkconfig option. - Improve naming of temporary files by separating the random part with the file extension.
- Plugin
autobpm: Fix theTypeErrorwhere tempo was being returned as a numpy array. Updatelibrosadependency constraint to prevent similar issues in the future. 🐛 (#5289) - Plugin
convert: Fixed the convert pluginno_convertoption so that it no longer treats "and" and "or" queries the same. To maintain previous behaviour add commas between your query keywords. For help seecombiningqueries. - Plugin
discogs: Fix theTypeErrorwhen there is no description. - Plugin
ftintitle: The detection of a "feat. X" part in a song title does not produce any false positives caused by words like "and" or "with" anymore. 🐛 (#5441) - Plugin
ftintitle: The detection of a "feat. X" part now also matches such parts if they are in parentheses or brackets. 🐛 (#5436) - Plugin
lyrics: Updatetekstowobackend to fetch lyrics directly since recent updates to their website made it unsearchable. 🐛 (#5456) - Use single quotes in all SQL queries 🐛 (#4709)
For packagers
- The
beetscript has been removed from the repository. - The
typing_extensionsis required for Python 3.10 and below. - The minimum supported Python version is now 3.8.
Other changes
- Added caching for dependency installation in all CI jobs which speeds them up a bit, especially the tests.
- GitHub workflows have been reorganised for clarity: style, linting, type and docs checks now live in separate jobs and are named accordingly.
- Installation instructions have been made consistent across plugins documentation. Users should simply install
beetswith anextraof the corresponding plugin name in order to install extra dependencies for that plugin. - Plugin
autobpm: Add plugin dependencies topyproject.tomlunder theautobpmextra and update the plugin installation instructions in the docs. Since importing the bpm calculation functionality fromlibrosatakes around 4 seconds, update the plugin to only do so when it actually needs to calculate the bpm. Previously this import was being done immediately, so everybeetinvocation was being delayed by a couple of seconds. 🐛 (#5185) - The linting workflow has been made to run only when Python files or documentation is changed, and they only check the changed files. When dependencies are updated (
poetry.lock), then the entire code base is checked. - The long-deprecated
beets.util.confitmodule has been removed. This may cause extremely outdated external plugins to fail to load. contributing: Sincepoetrynow manages local virtual environments,toxhas been replaced by a task runnerpoethepoet. This change affects beets developers and contributors. Please see updates in thedevelopment-toolssection for more details. Typepoewhile in the project directory to see the available commands.contributing: The project now usespoetryfor packaging and dependency management. This change affects project management and mostly affects beets developers. Please see updates ingetting-the-sourceandtestingfor more information.