Skip to content

Commit 1c26083

Browse files
authored
Merge branch 'main' into register_handler
2 parents 60bf46f + cbc55c4 commit 1c26083

Some content is hidden

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

77 files changed

+952
-332
lines changed

.ci/requirements-cibw.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
cibuildwheel==2.21.3
1+
cibuildwheel==2.22.0

.github/CONTRIBUTING.md

-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ Please send a pull request to the `main` branch. Please include [documentation](
1919
- Follow PEP 8.
2020
- When committing only documentation changes please include `[ci skip]` in the commit message to avoid running tests on AppVeyor.
2121
- Include [release notes](https://github.com/python-pillow/Pillow/tree/main/docs/releasenotes) as needed or appropriate with your bug fixes, feature additions and tests.
22-
- Do not add to the [changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst) for proposed changes, as that is updated after changes are merged.
2322

2423
## Reporting Issues
2524

.github/release-drafter.yml

+5-6
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ tag-template: "$NEXT_MINOR_VERSION"
33
change-template: '- $TITLE #$NUMBER [@$AUTHOR]'
44

55
categories:
6-
- title: "Dependencies"
7-
label: "Dependency"
6+
- title: "Removals"
7+
label: "Removal"
88
- title: "Deprecations"
99
label: "Deprecation"
1010
- title: "Documentation"
1111
label: "Documentation"
12-
- title: "Removals"
13-
label: "Removal"
12+
- title: "Dependencies"
13+
label: "Dependency"
1414
- title: "Testing"
1515
label: "Testing"
1616
- title: "Type hints"
1717
label: "Type hints"
18+
- title: "Other changes"
1819

1920
exclude-labels:
2021
- "changelog: skip"
@@ -23,6 +24,4 @@ template: |
2324
2425
https://pillow.readthedocs.io/en/stable/releasenotes/$NEXT_MINOR_VERSION.html
2526
26-
## Changes
27-
2827
$CHANGES

.github/renovate.json

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
{
22
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
33
"extends": [
4-
"config:base"
4+
"config:recommended"
55
],
66
"labels": [
77
"Dependency"
88
],
99
"packageRules": [
1010
{
1111
"groupName": "github-actions",
12-
"matchManagers": ["github-actions"],
13-
"separateMajorMinor": "false"
12+
"matchManagers": [
13+
"github-actions"
14+
],
15+
"separateMajorMinor": false
1416
}
1517
],
16-
"schedule": ["on the 3rd day of the month"]
18+
"schedule": [
19+
"on the 3rd day of the month"
20+
]
1721
}

.github/workflows/docs.yml

+2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ jobs:
3333

3434
steps:
3535
- uses: actions/checkout@v4
36+
with:
37+
persist-credentials: false
3638

3739
- name: Set up Python
3840
uses: actions/setup-python@v5

.github/workflows/lint.yml

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ jobs:
2121

2222
steps:
2323
- uses: actions/checkout@v4
24+
with:
25+
persist-credentials: false
2426

2527
- name: pre-commit cache
2628
uses: actions/cache@v4

.github/workflows/macos-install.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ fi
88
brew install \
99
freetype \
1010
ghostscript \
11+
jpeg-turbo \
1112
libimagequant \
12-
libjpeg \
1313
libtiff \
1414
little-cms2 \
1515
openjpeg \

.github/workflows/stale.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
workflow_dispatch:
77

88
permissions:
9-
issues: write
9+
contents: read
1010

1111
concurrency:
1212
group: ${{ github.workflow }}-${{ github.ref }}
@@ -15,6 +15,8 @@ concurrency:
1515
jobs:
1616
stale:
1717
if: github.repository_owner == 'python-pillow'
18+
permissions:
19+
issues: write
1820

1921
runs-on: ubuntu-latest
2022

.github/workflows/test-cygwin.yml

+5-2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ jobs:
4848
4949
- name: Checkout Pillow
5050
uses: actions/checkout@v4
51+
with:
52+
persist-credentials: false
5153

5254
- name: Install Cygwin
5355
uses: cygwin/cygwin-install-action@v4
@@ -131,11 +133,12 @@ jobs:
131133
- name: After success
132134
run: |
133135
bash.exe .ci/after_success.sh
136+
rm C:\cygwin\bin\bash.EXE
134137
135138
- name: Upload coverage
136-
uses: codecov/codecov-action@v4
139+
uses: codecov/codecov-action@v5
137140
with:
138-
file: ./coverage.xml
141+
files: ./coverage.xml
139142
flags: GHA_Cygwin
140143
name: Cygwin Python 3.${{ matrix.python-minor-version }}
141144
token: ${{ secrets.CODECOV_ORG_TOKEN }}

.github/workflows/test-docker.yml

+4-2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ jobs:
4747
debian-12-bookworm-x86,
4848
debian-12-bookworm-amd64,
4949
fedora-40-amd64,
50+
fedora-41-amd64,
5051
gentoo,
5152
ubuntu-22.04-jammy-amd64,
5253
ubuntu-24.04-noble-amd64,
@@ -64,6 +65,8 @@ jobs:
6465

6566
steps:
6667
- uses: actions/checkout@v4
68+
with:
69+
persist-credentials: false
6770

6871
- name: Build system information
6972
run: python3 .github/workflows/system-info.py
@@ -97,11 +100,10 @@ jobs:
97100
MATRIX_DOCKER: ${{ matrix.docker }}
98101

99102
- name: Upload coverage
100-
uses: codecov/codecov-action@v4
103+
uses: codecov/codecov-action@v5
101104
with:
102105
flags: GHA_Docker
103106
name: ${{ matrix.docker }}
104-
gcov: true
105107
token: ${{ secrets.CODECOV_ORG_TOKEN }}
106108

107109
success:

.github/workflows/test-mingw.yml

+9-7
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ jobs:
4646
steps:
4747
- name: Checkout Pillow
4848
uses: actions/checkout@v4
49+
with:
50+
persist-credentials: false
4951

5052
- name: Set up shell
5153
run: echo "C:\msys64\usr\bin\" >> $env:GITHUB_PATH
@@ -66,26 +68,26 @@ jobs:
6668
mingw-w64-x86_64-openjpeg2 \
6769
mingw-w64-x86_64-python3-numpy \
6870
mingw-w64-x86_64-python3-olefile \
69-
mingw-w64-x86_64-python3-setuptools \
71+
mingw-w64-x86_64-python3-pip \
72+
mingw-w64-x86_64-python-pytest \
73+
mingw-w64-x86_64-python-pytest-cov \
74+
mingw-w64-x86_64-python-pytest-timeout \
7075
mingw-w64-x86_64-python-pyqt6
7176
72-
python3 -m ensurepip
73-
python3 -m pip install pyroma pytest pytest-cov pytest-timeout
74-
7577
pushd depends && ./install_extra_test_images.sh && popd
7678
7779
- name: Build Pillow
78-
run: SETUPTOOLS_USE_DISTUTILS="stdlib" CFLAGS="-coverage" python3 -m pip install .
80+
run: CFLAGS="-coverage" python3 -m pip install .
7981

8082
- name: Test Pillow
8183
run: |
8284
python3 selftest.py --installed
8385
.ci/test.sh
8486
8587
- name: Upload coverage
86-
uses: codecov/codecov-action@v4
88+
uses: codecov/codecov-action@v5
8789
with:
88-
file: ./coverage.xml
90+
files: ./coverage.xml
8991
flags: GHA_Windows
9092
name: "MSYS2 MinGW"
9193
token: ${{ secrets.CODECOV_ORG_TOKEN }}

.github/workflows/test-valgrind.yml

+2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ jobs:
4040

4141
steps:
4242
- uses: actions/checkout@v4
43+
with:
44+
persist-credentials: false
4345

4446
- name: Build system information
4547
run: python3 .github/workflows/system-info.py

.github/workflows/test-windows.yml

+15-13
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,20 @@ jobs:
4444
steps:
4545
- name: Checkout Pillow
4646
uses: actions/checkout@v4
47+
with:
48+
persist-credentials: false
4749

4850
- name: Checkout cached dependencies
4951
uses: actions/checkout@v4
5052
with:
53+
persist-credentials: false
5154
repository: python-pillow/pillow-depends
5255
path: winbuild\depends
5356

5457
- name: Checkout extra test images
5558
uses: actions/checkout@v4
5659
with:
60+
persist-credentials: false
5761
repository: python-pillow/test-images
5862
path: Tests\test-images
5963

@@ -69,16 +73,14 @@ jobs:
6973
- name: Print build system information
7074
run: python3 .github/workflows/system-info.py
7175

72-
- name: Install Python dependencies
73-
run: >
74-
python3 -m pip install
75-
coverage>=7.4.2
76-
defusedxml
77-
olefile
78-
pyroma
79-
pytest
80-
pytest-cov
81-
pytest-timeout
76+
- name: Upgrade pip
77+
run: |
78+
python3 -m pip install --upgrade pip
79+
80+
- name: Install CPython dependencies
81+
if: "!contains(matrix.python-version, 'pypy')"
82+
run: |
83+
python3 -m pip install PyQt6
8284
8385
- name: Install dependencies
8486
id: install
@@ -178,7 +180,7 @@ jobs:
178180
- name: Build Pillow
179181
run: |
180182
$FLAGS="-C raqm=vendor -C fribidi=vendor"
181-
cmd /c "winbuild\build\build_env.cmd && $env:pythonLocation\python.exe -m pip install -v $FLAGS ."
183+
cmd /c "winbuild\build\build_env.cmd && $env:pythonLocation\python.exe -m pip install -v $FLAGS .[tests]"
182184
& $env:pythonLocation\python.exe selftest.py --installed
183185
shell: pwsh
184186

@@ -213,9 +215,9 @@ jobs:
213215
shell: pwsh
214216

215217
- name: Upload coverage
216-
uses: codecov/codecov-action@v4
218+
uses: codecov/codecov-action@v5
217219
with:
218-
file: ./coverage.xml
220+
files: ./coverage.xml
219221
flags: GHA_Windows
220222
name: ${{ runner.os }} Python ${{ matrix.python-version }}
221223
token: ${{ secrets.CODECOV_ORG_TOKEN }}

.github/workflows/test.yml

+8-14
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
]
4343
python-version: [
4444
"pypy3.10",
45+
"3.13t",
4546
"3.13",
4647
"3.12",
4748
"3.11",
@@ -52,21 +53,22 @@ jobs:
5253
- { python-version: "3.11", PYTHONOPTIMIZE: 1, REVERSE: "--reverse" }
5354
- { python-version: "3.10", PYTHONOPTIMIZE: 2 }
5455
# Free-threaded
55-
- { os: "ubuntu-latest", python-version: "3.13-dev", disable-gil: true }
56+
- { python-version: "3.13t", disable-gil: true }
5657
# M1 only available for 3.10+
5758
- { os: "macos-13", python-version: "3.9" }
5859
exclude:
5960
- { os: "macos-latest", python-version: "3.9" }
6061

6162
runs-on: ${{ matrix.os }}
62-
name: ${{ matrix.os }} Python ${{ matrix.python-version }} ${{ matrix.disable-gil && 'free-threaded' || '' }}
63+
name: ${{ matrix.os }} Python ${{ matrix.python-version }}
6364

6465
steps:
6566
- uses: actions/checkout@v4
67+
with:
68+
persist-credentials: false
6669

6770
- name: Set up Python ${{ matrix.python-version }}
68-
uses: actions/setup-python@v5
69-
if: "${{ !matrix.disable-gil }}"
71+
uses: Quansight-Labs/setup-python@v5
7072
with:
7173
python-version: ${{ matrix.python-version }}
7274
allow-prereleases: true
@@ -75,13 +77,6 @@ jobs:
7577
".ci/*.sh"
7678
"pyproject.toml"
7779
78-
- name: Set up Python ${{ matrix.python-version }} (free-threaded)
79-
uses: deadsnakes/action@v3.2.0
80-
if: "${{ matrix.disable-gil }}"
81-
with:
82-
python-version: ${{ matrix.python-version }}
83-
nogil: ${{ matrix.disable-gil }}
84-
8580
- name: Set PYTHON_GIL
8681
if: "${{ matrix.disable-gil }}"
8782
run: |
@@ -114,7 +109,7 @@ jobs:
114109
GHA_PYTHON_VERSION: ${{ matrix.python-version }}
115110

116111
- name: Register gcc problem matcher
117-
if: "matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12'"
112+
if: "matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'"
118113
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
119114

120115
- name: Build
@@ -154,11 +149,10 @@ jobs:
154149
.ci/after_success.sh
155150
156151
- name: Upload coverage
157-
uses: codecov/codecov-action@v4
152+
uses: codecov/codecov-action@v5
158153
with:
159154
flags: ${{ matrix.os == 'ubuntu-latest' && 'GHA_Ubuntu' || 'GHA_macOS' }}
160155
name: ${{ matrix.os }} Python ${{ matrix.python-version }}
161-
gcov: true
162156
token: ${{ secrets.CODECOV_ORG_TOKEN }}
163157

164158
success:

0 commit comments

Comments
 (0)