Commit Graph
103 Commits
Author SHA1 Message Date
Šarūnas Nejus 99b5da869d Replace poetry by uv 2026-06-30 12:44:21 +01:00
Šarūnas Nejus bd578b7455 Handle non-existing refs in release formatting 2026-06-20 16:55:47 +01:00
Šarūnas Nejus 648f24cbc2 Enable and fix flake8-builtins 2026-06-09 00:14:06 +01:00
Sebastian Mohr adfb73b66d Run ruff format 2026-05-20 16:53:06 +02:00
Šarūnas Nejus 1eb74aa740 Improve reference title for command links 2026-02-08 07:28:09 +00:00
Šarūnas Nejus 575f539282 Remove redundant MD_REPLACEMENTS 2026-02-08 07:28:09 +00:00
Šarūnas Nejus 616a674db0 Properly format changelog section headers 2026-02-08 07:28:08 +00:00
Šarūnas Nejus 10d8e5fc04 Sort changelog bullet points case-insensitively
Use a case-insensitive sort key when ordering Markdown changelog bullet
points to produce stable ordering regardless of capitalization.

Diff for the last release:

diff --git a/before b/after
index 51303c65f..d88eda894 100644
--- a/before
+++ b/after
@@ -4,3 +4,2 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee

-- Added support for Python 3.13.
 - [Convert Plugin](https://beets.readthedocs.io/en/stable/plugins/convert.html): `force` can be passed to override checks like no_convert, never_convert_lossy_files, same format, and max_bitrate
@@ -23,2 +22,3 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee
 - [Titlecase Plugin](https://beets.readthedocs.io/en/stable/plugins/titlecase.html): Add the [Titlecase Plugin](https://beets.readthedocs.io/en/stable/plugins/titlecase.html) plugin to allow users to resolve differences in metadata source styles.
+- Added support for Python 3.13.

@@ -26,9 +26,2 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee

-- Errors in metadata plugins during autotage process will now be logged but won't crash beets anymore. If you want to raise exceptions instead, set the new configuration option `raise_on_error` to `yes` 🐛 (#5903), 🐛 (#4789).
-- Fix a bug introduced in release 2.4.0 where import from any valid import-log-file always threw a "none of the paths are importable" error.
-- Handle potential OSError when unlinking temporary files in ArtResizer. 🐛 (#5615)
-- Running <span class="title-ref">beet --config \<mypath\> config -e</span> now edits <span class="title-ref">\<mypath\></span> rather than the default config path. 🐛 (#5652)
-- Sanitize log messages by removing control characters preventing terminal rendering issues.
-- When hardlinking from a symlink (e.g. importing a symlink with hardlinking enabled), dereference the symlink then hardlink, rather than creating a new (potentially broken) symlink 🐛 (#5676)
-- When using [FromFilename Plugin](https://beets.readthedocs.io/en/stable/plugins/fromfilename.html) together with [Edit Plugin](https://beets.readthedocs.io/en/stable/plugins/edit.html), temporary tags extracted from filenames are no longer lost when discarding or cancelling an edit session during import. 🐛 (#6104)
 - [Command-Line Interface](https://beets.readthedocs.io/en/stable/reference/cli.html): Fix 'from_scratch' option for singleton imports: delete all (old) metadata when new metadata is applied. 🐛 (#3706)
@@ -44,4 +37,11 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee
 - [Spotify Plugin](https://beets.readthedocs.io/en/stable/plugins/spotify.html): Updated Spotify API credentials. 🐛 (#6270)
-- [Web Plugin](https://beets.readthedocs.io/en/stable/plugins/web.html): repair broken <span class="title-ref">/item/values/…</span> and <span class="title-ref">/albums/values/…</span> endpoints. Previously, due to single-quotes (ie. string literal) in the SQL query, the query eg. <span class="title-ref">GET /item/values/albumartist</span> would return the literal "albumartist" instead of a list of unique album artists.
 - [update](https://beets.readthedocs.io/en/stable/reference/cli.html#update-cmd) [Edit Plugin](https://beets.readthedocs.io/en/stable/plugins/edit.html) fix display formatting of field changes to clearly show added and removed flexible fields.
+- [Web Plugin](https://beets.readthedocs.io/en/stable/plugins/web.html): repair broken <span class="title-ref">/item/values/…</span> and <span class="title-ref">/albums/values/…</span> endpoints. Previously, due to single-quotes (ie. string literal) in the SQL query, the query eg. <span class="title-ref">GET /item/values/albumartist</span> would return the literal "albumartist" instead of a list of unique album artists.
+- Errors in metadata plugins during autotage process will now be logged but won't crash beets anymore. If you want to raise exceptions instead, set the new configuration option `raise_on_error` to `yes` 🐛 (#5903), 🐛 (#4789).
+- Fix a bug introduced in release 2.4.0 where import from any valid import-log-file always threw a "none of the paths are importable" error.
+- Handle potential OSError when unlinking temporary files in ArtResizer. 🐛 (#5615)
+- Running <span class="title-ref">beet --config \<mypath\> config -e</span> now edits <span class="title-ref">\<mypath\></span> rather than the default config path. 🐛 (#5652)
+- Sanitize log messages by removing control characters preventing terminal rendering issues.
+- When hardlinking from a symlink (e.g. importing a symlink with hardlinking enabled), dereference the symlink then hardlink, rather than creating a new (potentially broken) symlink 🐛 (#5676)
+- When using [FromFilename Plugin](https://beets.readthedocs.io/en/stable/plugins/fromfilename.html) together with [Edit Plugin](https://beets.readthedocs.io/en/stable/plugins/edit.html), temporary tags extracted from filenames are no longer lost when discarding or cancelling an edit session during import. 🐛 (#6104)

@@ -71,2 +71,4 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee

+- [BPD Plugin](https://beets.readthedocs.io/en/stable/plugins/bpd.html): Raise ImportError instead of ValueError when GStreamer is unavailable, enabling `importorskip` usage in pytest setup.
+- dbcore: Allow models to declare SQL indices; add an `items.album_id` index to speed up `album.items()` queries. 🐛 (#5809)
 - Finally removed gmusic plugin and all related code/docs as the Google Play Music service was shut down in 2020.
@@ -76,3 +78 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee
 - Updated color documentation with `bright_*` and `bg_bright_*` entries.
-- [BPD Plugin](https://beets.readthedocs.io/en/stable/plugins/bpd.html): Raise ImportError instead of ValueError when GStreamer is unavailable, enabling `importorskip` usage in pytest setup.
-- dbcore: Allow models to declare SQL indices; add an `items.album_id` index to speed up `album.items()` queries. 🐛 (#5809)
2026-02-08 07:20:44 +00:00
Šarūnas Nejus 50959bb316 Fix rendering generated refs
This specifically fixes v2.6.0 changelog:

diff --git a/before b/after
index dc9a2ecd2..51303c65f 100644
--- a/before
+++ b/after
@@ -51,3 +51,3 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee

-- Added a reusable requests handler which can be used by plugins to make HTTP requests with built-in retry and backoff logic. It uses beets user-agent and configures timeouts. See `~beetsplug._utils.requests.RequestHandler` for documentation.
+- Added a reusable requests handler which can be used by plugins to make HTTP requests with built-in retry and backoff logic. It uses beets user-agent and configures timeouts. See [beetsplug.\_utils.requests.RequestHandler](https://beets.readthedocs.io/en/stable/api/generated/beetsplug._utils.requests.RequestHandler.html#beetsplug._utils.requests.RequestHandler) for documentation.

@@ -62,3 +62,3 @@ Beets now requires Python 3.10 or later since support for EOL Python 3.9 has bee

-  See `~beetsplug._utils.musicbrainz.MusicBrainzAPI` for documentation.
+  See [beetsplug.\_utils.musicbrainz.MusicBrainzAPI](https://beets.readthedocs.io/en/stable/api/generated/beetsplug._utils.musicbrainz.MusicBrainzAPI.html#beetsplug._utils.musicbrainz.MusicBrainzAPI) for documentation.
2026-02-08 07:20:44 +00:00
Šarūnas Nejus d486885af3 pyupgrade Python 3.10 2025-11-08 12:09:52 +00:00
Šarūnas Nejus 861504d5f6 Make sure conf references are converted properly in release notes 2025-10-19 01:37:41 +01:00
Šarūnas Nejus 61cbc39c4a Revert "Add git commit suffix to __version__ for development installs (#5967)" 2025-10-14 23:39:27 +01:00
Šarūnas Nejus f33c030ebb Convert replacements and Include URLs for :class: refs in release notes 2025-10-14 16:54:52 +01:00
Sebastian Mohr f6ca68319d Add git commit suffix to __version__ for development installs (#5967)
Make it obvious when beets is installed from from a non
major version. When installed locally this adds a git hash suffix and
the distance to the last release.

closes #4448
2025-10-01 12:58:57 +02:00
Šarūnas Nejus 13080c17a3 Update release conversion logic accordingly 2025-08-10 16:25:05 +01:00
Šarūnas Nejus c490ac5810 Fix formatting 2025-05-07 10:41:01 +01:00
Šarūnas Nejus 0a53a930aa Fix release formatting for new versions of pandoc
Ubuntu version in GitHub Actions has recently been upgraded to 24.04:
  https://github.com/actions/runner-images/issues/10636)

This meant that pandoc was upgraded and it changed the way markdown is
formatted by default.
2025-01-13 05:21:01 +00:00
Šarūnas Nejus 64b3481235 Take into account Sphinx updates in docs and release script 2025-01-12 04:50:45 +00:00
Šarūnas Nejus eb557f720d Resolve all URLs for markdown 2024-12-28 07:26:04 +00:00
Šarūnas Nejus 0f45791f3a Fix Unreleased changelog template 2024-12-28 07:26:03 +00:00
Šarūnas Nejus e579df0a98 Can we link users to plugin docs? 2024-12-28 07:24:23 +00:00
Šarūnas Nejus 779ba791f9 Cap maximum sub-section name length 2024-12-28 07:24:23 +00:00
Šarūnas Nejus 0b905e1b17 Ignore literal code blocks when making headers 2024-12-28 07:24:23 +00:00
Šarūnas Nejus 806c1702fb Fix wrapped line starting with the username role 2024-12-28 07:24:23 +00:00
Šarūnas Nejus c26473e6cb Fix nested bullet points conversion 2024-12-28 07:24:23 +00:00
Šarūnas Nejus d98226aa07 Fix ordering bullet point lists 2024-12-28 07:24:22 +00:00
Šarūnas Nejus 7b9625bc86 Test rst to md conversion 2024-12-28 07:24:22 +00:00
Šarūnas Nejus e9076ffb53 Unindent list items in the changelog
I found out that GitHub Actions use pandoc version 2.9.2.1 which
converts bullet points like this:

echo '
* Item
* Another item
' | pandoc --from=rst --to=gfm
  - Item
  - Another item

Note that each item has two-space indent. Meanwhile, locally I've been
testing this conversion using pandoc 3.5 which does not add any indent:

echo '
* Item
* Another item
' | pandoc --from=rst --to=gfm
- Item
- Another item

This commit removes the indent and cleans up the how the replacements in
rst and md text are performed.
2024-12-28 07:24:22 +00:00
Andrew Rogl f0f77aa741 Update related window files to match 3.8 2024-11-22 18:04:43 +10:00
Šarūnas Nejus aa0db049a5 Release: fix bumping the version in the changelog 2024-11-22 01:32:15 +00:00
Šarūnas Nejus 85a17ee503 Reformat the codebase 2024-09-21 11:57:48 +01:00
Šarūnas Nejus 1aad6e0929 release.py: introduce pyproject.toml 2024-06-10 13:10:17 +01:00
Šarūnas Nejus d2a94c1cdd release.py: Add changelog.rst conversion to markdown 2024-06-07 09:01:44 +01:00
Šarūnas Nejus 3e5e1eca87 release.py: simplify bumping the version
Additionally, update the 'in progress' header in the changelog: instead
of using a specific version number, simply say 'Unreleased' since we do
not know in advance what version will the changes be eventually
released.

This also simplifies latest changelog retrieval.
2024-06-07 09:01:44 +01:00
Šarūnas Nejus be778b8da0 release.py: Use click for the CLI 2024-06-05 19:12:50 +01:00
Serene-Arc 591d052647 Fix formatting of replacement
Black requires that there be double quotes instead of single
2024-06-05 19:12:50 +01:00
Serene-Arc ff3bf918b0 Fix new heading in docs 2024-06-05 19:12:49 +01:00
Serene b88c09720c Add a workflow for easily creating releases (#4952)
I humbly present a solution our lack of releases: a workflow that can be
triggered to automatically create one. This workflow builds the project,
creates a GitHub release, and publishes beets to PyPi, for a one-stop
solution.

@sampsyo this would make it much easier to create releases, as it
requires only one little interaction: going to the actions tab and
entering a version number. Once that's done, the workflow should take
care of the rest.

I have only tested the `build` job so far, since I can't do anything
about the pypi or do a release just to test, but the code is lifted from
other similar actions and should work fine.

It also requires one piece of setup. This is that PyPi must be set up
with a [trusted publisher](https://docs.pypi.org/trusted-publishers/) to
receive the new package. Once that's done, the process should go off
automatically.
2024-05-30 08:57:02 +10:00
Michael Thies c153f72e47 zsh completion script for the beet command is more portable now:
- avoids the mawk-specific {,n} regex operator
- a directly usable sqlite3 output format is selected explicitly, when retrieving suggestions for field values; this avoids the previously used GNU-sed-specific post-processing of the sqlite3 output
- completion caching is enabled for the beet command and its parameter contexts, even if not enabled globally by the user; caching is required for field value suggestions
2024-01-15 09:58:39 +01:00
Serene-Arc 8c898ce524 Fix script for changelog 2023-10-27 17:58:47 +10:00
Serene-Arc 308f9f5f1c Update script markdown export 2023-10-27 17:48:01 +10:00
Serene-Arc a6e5201ff3 Apply formatting tools to all files
This is 'the big one', which touches every file so that it all conforms
to the given standard.
2023-10-22 09:53:18 +10:00
Kian-Meng Ang 873a91c541 Fix typos
Found via `codespell -S ./test/rsrc,genres.txt -L
caf,fo,ue,searchin,crashers,crasher,te,skool,egal,nothin`
2023-09-25 12:52:26 +08:00
wisp3rwind fafddced6e release.py: fix version regex (remove u'' string prefix) 2022-08-20 07:30:15 +02:00
Michael Klein a903e6649a zsh completion: handle destination for "convert"
Use directory name completion for -d/--dest option.
2022-01-30 18:22:42 +01:00
Adrian Sampson e3f4e19298 Version bump: v1.6.1 2021-11-27 11:38:48 -05:00
Andrew Rogl fc4d65a387 Missed a few unicode strings 2021-09-26 16:51:01 +10:00
Andrew Rogl 0f48ccde78 Final pyupgrade 2021-08-26 20:14:08 +10:00
FichteFoll 728203e15a beets.io now supports HTTPS
See https://github.com/beetbox/beets/pull/3297.
2019-06-06 15:34:15 +02:00
FichteFoll aa31fea037 Update a lot of URLs to use HTTPS
*All* URLs were checked manually, but only once per domain!

I mostly concerned myself with URLs in documentation rather than source
code because the latter may or may not have impactful changes, while the
former should be straight forward.

Changes in addition to simply adding an s:

- changed pip and pypi references as their location has changed
- MPoD (iOS app) url redirects to Regelian, so I replaced those
- updated homebrew references

Notable observations:

- beets.io does have HTTPS set up properly (via gh-pages)
- beatport.py uses the old HTTP url for beatport
- as does lyrics.py for lyrics.wikia.com
- https://tomahawk-player.org/ expired long ago, but the http page
  redirects to https regardless
- none of the sourceforge subdomains have https (in 2019!)
2019-06-05 03:11:49 +02:00