Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
cdfd0a1
Add support for extra_tags in discogs plugin
Mar 5, 2026
74f69b7
Update changelog.rst
jdoe29103 Mar 5, 2026
b44257b
Fixing syntax and formatting errors
Mar 6, 2026
3d0d032
Replace http URLs with https
snejus Mar 6, 2026
441c838
Fix broken URLs
snejus Mar 6, 2026
ae3a2e5
Fix redirect URLs
snejus Mar 6, 2026
192217d
Format docs
snejus Mar 6, 2026
b3f5585
Add a changelog note
snejus Mar 6, 2026
5393eed
Fix changelog and discogs plugin documentation
Mar 6, 2026
452b455
Merge branch 'master' of https://github.com/jdoe29103/beets
Mar 6, 2026
3a38771
Merge branch 'master' into master
jdoe29103 Mar 6, 2026
028b582
Delete input/1996 - From The Muddy Banks Of The Wishkah (SHM-CD '2011…
jdoe29103 Mar 6, 2026
9693532
Delete gazelle.yaml
jdoe29103 Mar 6, 2026
e569005
Delete .ci-venv directory
jdoe29103 Mar 6, 2026
efd084c
Delete config directory
jdoe29103 Mar 6, 2026
67beb7f
Added new tests for discogs plugin to test extra_tags
Mar 7, 2026
969df95
Merge branch 'master' of https://github.com/jdoe29103/beets
Mar 7, 2026
cff5434
Fix docs links (#6418)
snejus Mar 7, 2026
c996a42
Add docs fixes to git blame ignore revs
snejus Mar 7, 2026
1568704
Increment version to 2.7.0
snejus Mar 7, 2026
02145a3
Upgrade all dependencies
snejus Mar 7, 2026
2678124
Upgrade all dependencies (#6420)
snejus Mar 7, 2026
a7325e7
Skip langdetect-dependent tests when package is not installed
snejus Mar 7, 2026
13ad15b
Move pytest marker definitions to conftest.py
snejus Mar 8, 2026
b683cb6
Extend requires_import marker with force_ci option
snejus Mar 8, 2026
a8b34d2
Pin docstrfmt>=2.0.2 and add --preserve-adornments flag
snejus Mar 8, 2026
bd2a448
Document custom marks in CONTRIBUTING.rst
snejus Mar 8, 2026
1acbdbd
Skip langdetect-dependent tests when package is not installed (#6422)
snejus Mar 8, 2026
13665a5
Increment version to 2.7.1
snejus Mar 8, 2026
af42992
docs(CONTRIBUTING): Fix typo
pierreay Mar 8, 2026
6ef2a8c
docs(CONTRIBUTING): Fix typo (#6423)
snejus Mar 8, 2026
654b761
Clarify %if template behavior
emiham Feb 27, 2026
8a57472
Reword
emiham Mar 3, 2026
763dc7c
Fix empty literal error
emiham Mar 3, 2026
1f2beb6
Format
emiham Mar 7, 2026
9f6a4b4
Clarify %if template behavior (#6399)
snejus Mar 8, 2026
27bb344
Refactor shared search API flow
snejus Mar 6, 2026
9b63985
Migrate MusicBrainz to shared search hooks
snejus Mar 6, 2026
9855d46
Bound Spotify auth retry during search
snejus Mar 6, 2026
4cccb70
Document shared metadata search plugin workflow
snejus Mar 6, 2026
0670611
Document new methods
snejus Mar 7, 2026
46aa0a4
Make get_search_query_with_filters abstract
snejus Mar 8, 2026
3c48b0c
Centralise common autotagger search functionality (#5982)
snejus Mar 8, 2026
b64bda8
try to fix fish plugin
amogus07 Mar 8, 2026
d2705fe
Update changelog.rst
amogus07 Mar 8, 2026
f1509a4
Fix fish plugin (#6428)
snejus Mar 8, 2026
efa1f37
Deprecate beatport and bpsync plugins
Samik081 Mar 8, 2026
740db4d
Fix docs formatting for beatport and bpsync rst files
Samik081 Mar 8, 2026
bdb039c
Fix docs: use single-line deprecated directive compatible with docstrfmt
Samik081 Mar 8, 2026
b008488
refactor: Use deprecate_for_user for beatport/bpsync deprecation warn…
Samik081 Mar 8, 2026
80d08ed
beatport: Deprecate beatport and bpsync plugins (#6426)
snejus Mar 8, 2026
8494839
Added test_get_albums_forwards_extra_criteria_to_discogs_client_search
Mar 9, 2026
3250e64
Add support for extra_tags in discogs plugin
Mar 5, 2026
e880e15
Fixing syntax and formatting errors
Mar 6, 2026
49aeb91
Fix changelog and discogs plugin documentation
Mar 6, 2026
5951746
Update changelog.rst
jdoe29103 Mar 5, 2026
0e8e0e5
Added new tests for discogs plugin to test extra_tags
Mar 7, 2026
817b7d4
Delete input/1996 - From The Muddy Banks Of The Wishkah (SHM-CD '2011…
jdoe29103 Mar 6, 2026
2c6ca59
Delete gazelle.yaml
jdoe29103 Mar 6, 2026
045130d
Delete .ci-venv directory
jdoe29103 Mar 6, 2026
c21652a
Delete config directory
jdoe29103 Mar 6, 2026
3fa6931
Added test_get_albums_forwards_extra_criteria_to_discogs_client_search
Mar 9, 2026
1323347
Merge branch 'master' of https://github.com/jdoe29103/beets
Mar 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,15 @@ c46069654628040316dea9db85d01b263db3ba9e
4749599913a42e02e66b37db9190de11d6be2cdf
# Address RUF012
bc71ec308eb938df1d349f6857634ddf2a82e339

# 2026
# Replace http URLs with https
3d0d032987c4c2e9550529fd25e79581b06ade73
# Fix broken URLs
441c8383873d72d4bb0387cdf1863c0fe9e11098
# Fix redirect URLs
ae3a2e5729e3c0a5acbd8967ba2f11f4c53acd09
# Format docs
192217da5d70621089b06b06fff3dbcbeb4c0c4d
# Add a changelog note
b3f558584910ab4fc6aa185ec4a4c8554001ba24
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.rst
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available `here
<https://www.contributor-covenant.org/version/2/1/code_of_conduct.html>`_.
<https://www.contributor-covenant.org/version/2/1/code_of_conduct/>`_.

Community Impact Guidelines were inspired by Mozilla's code of conduct
enforcement ladder.
Expand Down
63 changes: 44 additions & 19 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Non-Programming
<https://github.com/beetbox/beets/discussions/categories/show-and-tell>`__
under the “Show and Tell” category for a chance to get featured in `the docs
<https://beets.readthedocs.io/en/stable/guides/advanced.html>`__.
- Consider helping out fellow users by by `responding to support requests
- Consider helping out fellow users by `responding to support requests
<https://github.com/beetbox/beets/discussions/categories/q-a>`__ .

Programming
Expand Down Expand Up @@ -157,10 +157,10 @@ Code Contribution Ideas
<https://github.com/beetbox/beets/labels/good%20first%20issue>`__. These are
issues that would serve as a good introduction to the codebase. Claim one and
start exploring!
- Like testing? Our `test coverage <https://codecov.io/github/beetbox/beets>`__
is somewhat low. You can help out by finding low-coverage modules or checking
out other `testing-related issues
<https://github.com/beetbox/beets/labels/testing>`__.
- Like testing? Our `test coverage
<https://app.codecov.io/github/beetbox/beets>`__ is somewhat low. You can help
out by finding low-coverage modules or checking out other `testing-related
issues <https://github.com/beetbox/beets/labels/testing>`__.
- There are several ways to improve the tests in general (see :ref:`testing` and
some places to think about performance optimization (see `Optimization
<https://github.com/beetbox/beets/wiki/Optimization>`__).
Expand All @@ -169,8 +169,8 @@ Code Contribution Ideas
<https://beets.readthedocs.io/en/stable/dev/library.html>`__ are currently
quite sparse. You can help by adding to the docstrings in the code and to the
documentation pages themselves. beets follows `PEP-257
<https://www.python.org/dev/peps/pep-0257/>`__ for docstrings and in some
places, we also sometimes use `ReST autodoc syntax for Sphinx
<https://peps.python.org/pep-0257/>`__ for docstrings and in some places, we
also sometimes use `ReST autodoc syntax for Sphinx
<https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html>`__ to,
for example, refer to a class name.

Expand All @@ -179,7 +179,7 @@ Your First Contribution

If this is your first time contributing to an open source project, welcome! If
you are confused at all about how to contribute or what to contribute, take a
look at `this great tutorial <http://makeapullrequest.com/>`__, or stop by our
look at `this great tutorial <https://makeapullrequest.com/>`__, or stop by our
`discussion board`_ if you have any questions.

We maintain a list of issues we reserved for those new to open source labeled
Expand Down Expand Up @@ -263,13 +263,13 @@ There are a few coding conventions we use in beets:
- f-strings should be used instead of the ``%`` operator and ``str.format()``
calls.
- Never ``print`` informational messages; use the `logging
<http://docs.python.org/library/logging.html>`__ module instead. In
<https://docs.python.org/3/library/logging.html>`__ module instead. In
particular, we have our own logging shim, so you’ll see ``from beets import
logging`` in most files.

- The loggers use `str.format
<http://docs.python.org/library/stdtypes.html#str.format>`__-style logging
instead of ``%``-style, so you can type ``log.debug("{}", obj)`` to do your
<https://docs.python.org/3/library/stdtypes.html>`__-style logging instead
of ``%``-style, so you can type ``log.debug("{}", obj)`` to do your
formatting.

- Exception handlers must use ``except A as B:`` instead of ``except A, B:``.
Expand Down Expand Up @@ -357,10 +357,9 @@ Writing Tests
~~~~~~~~~~~~~

Writing tests is done by adding or modifying files in folder test_. Take a look
at `https://github.com/beetbox/beets/blob/master/test/test_template.py#L224`_ to
get a basic view on how tests are written. Since we are currently migrating the
tests from unittest_ to pytest_, new tests should be written using pytest_.
Contributions migrating existing tests are welcome!
at test-query_ to get a basic view on how tests are written. Since we are
currently migrating the tests from unittest_ to pytest_, new tests should be
written using pytest_. Contributions migrating existing tests are welcome!

External API requests under test should be mocked with requests-mock_, However,
we still want to know whether external APIs are up and that they return expected
Expand All @@ -375,14 +374,38 @@ In order to add such a test, mark your test with the ``integration_test`` marker

This way, the test will be run only in the integration test suite.

.. _codecov: https://codecov.io/github/beetbox/beets
beets also defines custom pytest markers in ``test/conftest.py``:

- ``integration_test``: runs only when ``INTEGRATION_TEST=true`` is set.
- ``on_lyrics_update``: runs only when ``LYRICS_UPDATED=true`` is set.
- ``requires_import("module", force_ci=True)``: runs the test only when the
module is importable. With the default ``force_ci=True``, this import check is
bypassed on GitHub Actions for ``beetbox/beets`` so CI still runs the test.
Set ``force_ci=False`` to allow CI to skip when the module is missing.

.. code-block:: python

@pytest.mark.integration_test
def test_external_api_call(): ...


@pytest.mark.on_lyrics_update
def test_real_lyrics_backend(): ...


@pytest.mark.requires_import("langdetect")
def test_language_detection(): ...


@pytest.mark.requires_import("librosa", force_ci=False)
def test_autobpm_command(): ...

.. _codecov: https://app.codecov.io/github/beetbox/beets

.. _discussion board: https://github.com/beetbox/beets/discussions

.. _documentation: https://beets.readthedocs.io/en/stable/

.. _https://github.com/beetbox/beets/blob/master/test/test_template.py#l224: https://github.com/beetbox/beets/blob/master/test/test_template.py#L224

.. _integration test: https://github.com/beetbox/beets/actions?query=workflow%3A%22integration+tests%22

.. _pipx: https://pipx.pypa.io/stable
Expand All @@ -391,7 +414,7 @@ This way, the test will be run only in the integration test suite.

.. _poetry: https://python-poetry.org/docs/

.. _pyproject.toml: https://github.com/beetbox/beets/tree/master/pyproject.toml
.. _pyproject.toml: https://github.com/beetbox/beets/blob/master/pyproject.toml

.. _pytest: https://docs.pytest.org/en/stable/

Expand All @@ -401,6 +424,8 @@ This way, the test will be run only in the integration test suite.

.. _test: https://github.com/beetbox/beets/tree/master/test

.. _test-query: https://github.com/beetbox/beets/blob/master/test/test_query.py

.. _unittest: https://docs.python.org/3/library/unittest.html

.. _vim: https://www.vim.org/
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
:target: https://pypi.python.org/pypi/beets

.. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg
:target: https://codecov.io/github/beetbox/beets
:target: https://app.codecov.io/github/beetbox/beets

.. image:: https://img.shields.io/github/actions/workflow/status/beetbox/beets/ci.yaml
:target: https://github.com/beetbox/beets/actions
Expand Down
2 changes: 1 addition & 1 deletion README_kr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
:target: https://pypi.python.org/pypi/beets

.. image:: https://img.shields.io/codecov/c/github/beetbox/beets.svg
:target: https://codecov.io/github/beetbox/beets
:target: https://app.codecov.io/github/beetbox/beets

.. image:: https://travis-ci.org/beetbox/beets.svg?branch=master
:target: https://travis-ci.org/beetbox/beets
Expand Down
2 changes: 1 addition & 1 deletion beets/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

from .util.deprecation import deprecate_imports

__version__ = "2.6.2"
__version__ = "2.7.1"
__author__ = "Adrian Sampson <adrian@radbox.org>"


Expand Down
Loading
Loading