Skip to content

Commit 19665cd

Browse files
committed
Merge remote-tracking branch 'upstream/master' into dereference-symlinks-while-hardlinking
2 parents 7acf2b3 + adc0d9e commit 19665cd

File tree

326 files changed

+24854
-22173
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

326 files changed

+24854
-22173
lines changed

.git-blame-ignore-revs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,33 @@ a6e5201ff3fad4c69bf24d17bace2ef744b9f51b
4343
f36bc497c8c8f89004f3f6879908d3f0b25123e1
4444
# Remove some lint exclusions and fix the issues
4545
5f78d1b82b2292d5ce0c99623ba0ec444b80d24c
46+
47+
# 2025
48+
# Fix formatting
49+
c490ac5810b70f3cf5fd8649669838e8fdb19f4d
50+
# Importer restructure
51+
9147577b2b19f43ca827e9650261a86fb0450cef
52+
# Copy paste query, types from library to dbcore
53+
1a045c91668c771686f4c871c84f1680af2e944b
54+
# Library restructure (split library.py into multiple modules)
55+
0ad4e19d4f870db757373f44d12ff3be2441363a
56+
# Docs: fix linting issues
57+
769dcdc88a1263638ae25944ba6b2be3e8933666
58+
# Reformat all docs using docstrfmt
59+
ab5acaabb3cd24c482adb7fa4800c89fd6a2f08d
60+
# Replace format calls with f-strings
61+
4a361bd501e85de12c91c2474c423559ca672852
62+
# Replace percent formatting
63+
9352a79e4108bd67f7e40b1e944c01e0a7353272
64+
# Replace string concatenation (' + ')
65+
1c16b2b3087e9c3635d68d41c9541c4319d0bdbe
66+
# Do not use backslashes to deal with long strings
67+
2fccf64efe82851861e195b521b14680b480a42a
68+
# Do not use explicit indices for logging args when not needed
69+
d93ddf8dd43e4f9ed072a03829e287c78d2570a2
70+
# Moved dev docs
71+
07549ed896d9649562d40b75cd30702e6fa6e975
72+
# Moved plugin docs Further Reading chapter
73+
33f1a5d0bef8ca08be79ee7a0d02a018d502680d
74+
# Moved art.py utility module from beets into beetsplug
75+
28aee0fde463f1e18dfdba1994e2bdb80833722f

.github/CODEOWNERS

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# assign the entire repo to the maintainers team
2+
* @beetbox/maintainers
3+
4+
# Specific ownerships:
5+
/beets/metadata_plugins.py @semohr
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"problemMatcher": [
3+
{
4+
"owner": "sphinx-build",
5+
"severity": "error",
6+
"pattern": [
7+
{
8+
"regexp": "^(/[^:]+):((\\d+):)?(\\sWARNING:)?\\s*(.+)$",
9+
"file": 1,
10+
"line": 3,
11+
"message": 5
12+
}
13+
]
14+
}
15+
]
16+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"problemMatcher": [
3+
{
4+
"owner": "sphinx-lint",
5+
"severity": "error",
6+
"pattern": [
7+
{
8+
"regexp": "^([^:]+):(\\d+):\\s+(.*)\\s\\(([a-z-]+)\\)$",
9+
"file": 1,
10+
"line": 2,
11+
"message": 3,
12+
"code": 4
13+
}
14+
]
15+
}
16+
]
17+
}

.github/sphinx-problem-matcher.json

Lines changed: 0 additions & 15 deletions
This file was deleted.
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: Verify changelog updated
22

3-
on:
3+
on:
44
pull_request_target:
55
types:
66
- opened
@@ -10,24 +10,24 @@ jobs:
1010
check_changes:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v4
13+
- uses: actions/checkout@v5
1414

1515
- name: Get all updated Python files
1616
id: changed-python-files
17-
uses: tj-actions/changed-files@v44
17+
uses: tj-actions/changed-files@v46
1818
with:
1919
files: |
2020
**.py
2121
2222
- name: Check for the changelog update
2323
id: changelog-update
24-
uses: tj-actions/changed-files@v44
24+
uses: tj-actions/changed-files@v46
2525
with:
2626
files: docs/changelog.rst
27-
27+
2828
- name: Comment under the PR with a reminder
2929
if: steps.changed-python-files.outputs.any_changed == 'true' && steps.changelog-update.outputs.any_changed == 'false'
3030
uses: thollander/actions-comment-pull-request@v2
3131
with:
32-
message: 'Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry.'
33-
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
32+
message: 'Thank you for the PR! The changelog has not been updated, so here is a friendly reminder to check if you need to add an entry.'
33+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'

.github/workflows/ci.yaml

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ on:
44
push:
55
branches:
66
- master
7+
8+
concurrency:
9+
# Cancel previous workflow run when a new commit is pushed to a feature branch
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
12+
713
env:
814
PY_COLORS: 1
915

@@ -14,17 +20,17 @@ jobs:
1420
fail-fast: false
1521
matrix:
1622
platform: [ubuntu-latest, windows-latest]
17-
python-version: ["3.9"]
23+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
1824
runs-on: ${{ matrix.platform }}
1925
env:
2026
IS_MAIN_PYTHON: ${{ matrix.python-version == '3.9' && matrix.platform == 'ubuntu-latest' }}
2127
steps:
22-
- uses: actions/checkout@v4
28+
- uses: actions/checkout@v5
2329
- name: Install Python tools
24-
uses: BrandonLWhite/pipx-install-action@v0.1.1
30+
uses: BrandonLWhite/pipx-install-action@v1.0.3
2531
- name: Setup Python with poetry caching
2632
# poetry cache requires poetry to already be installed, weirdly
27-
uses: actions/setup-python@v5
33+
uses: actions/setup-python@v6
2834
with:
2935
python-version: ${{ matrix.python-version }}
3036
cache: poetry
@@ -33,11 +39,19 @@ jobs:
3339
if: matrix.platform == 'ubuntu-latest'
3440
run: |
3541
sudo apt update
36-
sudo apt install ffmpeg gobject-introspection libcairo2-dev libgirepository1.0-dev pandoc
42+
sudo apt install --yes --no-install-recommends \
43+
ffmpeg \
44+
gobject-introspection \
45+
gstreamer1.0-plugins-base \
46+
python3-gst-1.0 \
47+
libcairo2-dev \
48+
libgirepository-2.0-dev \
49+
pandoc \
50+
imagemagick
3751
3852
- name: Get changed lyrics files
3953
id: lyrics-update
40-
uses: tj-actions/changed-files@v45
54+
uses: tj-actions/changed-files@v46
4155
with:
4256
files: |
4357
beetsplug/lyrics.py
@@ -52,18 +66,24 @@ jobs:
5266
- if: ${{ env.IS_MAIN_PYTHON != 'true' }}
5367
name: Test without coverage
5468
run: |
55-
poetry install --extras=autobpm --extras=lyrics
69+
poetry install --without=lint --extras=autobpm --extras=lyrics --extras=replaygain --extras=reflink --extras=fetchart --extras=chroma --extras=sonosupdate
5670
poe test
5771
5872
- if: ${{ env.IS_MAIN_PYTHON == 'true' }}
5973
name: Test with coverage
6074
env:
6175
LYRICS_UPDATED: ${{ steps.lyrics-update.outputs.any_changed }}
6276
run: |
63-
poetry install --extras=autobpm --extras=lyrics --extras=docs --extras=replaygain --extras=reflink
77+
poetry install --extras=autobpm --extras=lyrics --extras=docs --extras=replaygain --extras=reflink --extras=fetchart --extras=chroma --extras=sonosupdate
6478
poe docs
6579
poe test-with-coverage
6680
81+
- if: ${{ !cancelled() }}
82+
name: Upload test results to Codecov
83+
uses: codecov/test-results-action@v1
84+
with:
85+
token: ${{ secrets.CODECOV_TOKEN }}
86+
6787
- if: ${{ env.IS_MAIN_PYTHON == 'true' }}
6888
name: Store the coverage report
6989
uses: actions/upload-artifact@v4
@@ -78,15 +98,15 @@ jobs:
7898
permissions:
7999
id-token: write
80100
steps:
81-
- uses: actions/checkout@v4
101+
- uses: actions/checkout@v5
82102

83103
- name: Get the coverage report
84-
uses: actions/download-artifact@v4
104+
uses: actions/download-artifact@v5
85105
with:
86106
name: coverage-report
87107

88108
- name: Upload code coverage
89-
uses: codecov/codecov-action@v4
109+
uses: codecov/codecov-action@v5
90110
with:
91111
files: ./coverage.xml
92112
use_oidc: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork) }}

.github/workflows/integration_test.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ jobs:
77
test_integration:
88
runs-on: ubuntu-latest
99
steps:
10-
- uses: actions/checkout@v4
10+
- uses: actions/checkout@v5
1111
- name: Install Python tools
12-
uses: BrandonLWhite/pipx-install-action@v0.1.1
13-
- uses: actions/setup-python@v5
12+
uses: BrandonLWhite/pipx-install-action@v1.0.3
13+
- uses: actions/setup-python@v6
1414
with:
15-
python-version: 3.8
15+
python-version: 3.9
1616
cache: poetry
1717

1818
- name: Install dependencies

.github/workflows/lint.yml

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ on:
66
branches:
77
- master
88

9+
concurrency:
10+
# Cancel previous workflow run when a new commit is pushed to a feature branch
11+
group: ${{ github.workflow }}-${{ github.ref }}
12+
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
13+
914
env:
1015
PYTHON_VERSION: 3.9
1116

@@ -19,16 +24,16 @@ jobs:
1924
changed_doc_files: ${{ steps.changed-doc-files.outputs.all_changed_files }}
2025
changed_python_files: ${{ steps.changed-python-files.outputs.all_changed_files }}
2126
steps:
22-
- uses: actions/checkout@v4
27+
- uses: actions/checkout@v5
2328
- name: Get changed docs files
2429
id: changed-doc-files
25-
uses: tj-actions/changed-files@v44
30+
uses: tj-actions/changed-files@v46
2631
with:
2732
files: |
2833
docs/**
2934
- name: Get changed python files
3035
id: raw-changed-python-files
31-
uses: tj-actions/changed-files@v44
36+
uses: tj-actions/changed-files@v46
3237
with:
3338
files: |
3439
**.py
@@ -51,10 +56,10 @@ jobs:
5156
name: Check formatting
5257
needs: changed-files
5358
steps:
54-
- uses: actions/checkout@v4
59+
- uses: actions/checkout@v5
5560
- name: Install Python tools
56-
uses: BrandonLWhite/pipx-install-action@v0.1.1
57-
- uses: actions/setup-python@v5
61+
uses: BrandonLWhite/pipx-install-action@v1.0.3
62+
- uses: actions/setup-python@v6
5863
with:
5964
python-version: ${{ env.PYTHON_VERSION }}
6065
cache: poetry
@@ -72,10 +77,10 @@ jobs:
7277
name: Check linting
7378
needs: changed-files
7479
steps:
75-
- uses: actions/checkout@v4
80+
- uses: actions/checkout@v5
7681
- name: Install Python tools
77-
uses: BrandonLWhite/pipx-install-action@v0.1.1
78-
- uses: actions/setup-python@v5
82+
uses: BrandonLWhite/pipx-install-action@v1.0.3
83+
- uses: actions/setup-python@v6
7984
with:
8085
python-version: ${{ env.PYTHON_VERSION }}
8186
cache: poetry
@@ -92,10 +97,10 @@ jobs:
9297
name: Check types with mypy
9398
needs: changed-files
9499
steps:
95-
- uses: actions/checkout@v4
100+
- uses: actions/checkout@v5
96101
- name: Install Python tools
97-
uses: BrandonLWhite/pipx-install-action@v0.1.1
98-
- uses: actions/setup-python@v5
102+
uses: BrandonLWhite/pipx-install-action@v1.0.3
103+
- uses: actions/setup-python@v6
99104
with:
100105
python-version: ${{ env.PYTHON_VERSION }}
101106
cache: poetry
@@ -105,33 +110,37 @@ jobs:
105110

106111
- name: Type check code
107112
uses: liskin/gh-problem-matcher-wrap@v3
108-
continue-on-error: true
109113
with:
110114
linters: mypy
111-
run: poe check-types --show-column-numbers --no-error-summary ${{ needs.changed-files.outputs.changed_python_files }}
115+
run: poe check-types --show-column-numbers --no-error-summary .
112116

113117
docs:
114118
if: needs.changed-files.outputs.any_docs_changed == 'true'
115119
runs-on: ubuntu-latest
116120
name: Check docs
117121
needs: changed-files
118122
steps:
119-
- uses: actions/checkout@v4
123+
- uses: actions/checkout@v5
120124
- name: Install Python tools
121-
uses: BrandonLWhite/pipx-install-action@v0.1.1
122-
- uses: actions/setup-python@v5
125+
uses: BrandonLWhite/pipx-install-action@v1.0.3
126+
- uses: actions/setup-python@v6
123127
with:
124128
python-version: ${{ env.PYTHON_VERSION }}
125129
cache: poetry
126130

127131
- name: Install dependencies
128132
run: poetry install --extras=docs
129133

130-
- name: Add Sphinx problem matcher
131-
run: echo "::add-matcher::.github/sphinx-problem-matcher.json"
134+
- name: Add Sphinx problem matchers
135+
run: |
136+
echo "::add-matcher::.github/problem-matchers/sphinx-build.json"
137+
echo "::add-matcher::.github/problem-matchers/sphinx-lint.json"
138+
139+
- name: Check docs formatting
140+
run: poe format-docs --check
141+
142+
- name: Lint docs
143+
run: poe lint-docs
132144

133145
- name: Build docs
134-
run: |-
135-
poe docs |& tee /tmp/output
136-
# fail the job if there are issues
137-
grep -q " WARNING:" /tmp/output && exit 1 || exit 0
146+
run: poe docs -- -e 'SPHINXOPTS=--fail-on-warning --keep-going'

0 commit comments

Comments
 (0)