Skip to content

Commit ce6bf21

Browse files
authored
Merge branch 'main' into libavif-plugin
2 parents 4c63ea6 + 4f7510b commit ce6bf21

Some content is hidden

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

48 files changed

+388
-382
lines changed

.appveyor.yml

-99
This file was deleted.

.ci/build.sh

-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,5 @@
33
set -e
44

55
python3 -m coverage erase
6-
if [ $(uname) == "Darwin" ]; then
7-
export CPPFLAGS="-I/usr/local/miniconda/include";
8-
fi
96
make clean
107
make install-coverage

.github/CONTRIBUTING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@ Please send a pull request to the `main` branch. Please include [documentation](
99
- Fork the Pillow repository.
1010
- Create a branch from `main`.
1111
- Develop bug fixes, features, tests, etc.
12-
- Run the test suite. You can enable GitHub Actions (https://github.com/MY-USERNAME/Pillow/actions) and [AppVeyor](https://ci.appveyor.com/projects/new) on your repo to catch test failures prior to the pull request, and [Codecov](https://codecov.io/gh) to see if the changed code is covered by tests.
12+
- Run the test suite. You can enable GitHub Actions (https://github.com/MY-USERNAME/Pillow/actions) on your repo to catch test failures prior to the pull request, and [Codecov](https://codecov.io/gh) to see if the changed code is covered by tests.
1313
- Create a pull request to pull the changes from your branch to the Pillow `main`.
1414

1515
### Guidelines
1616

1717
- Separate code commits from reformatting commits.
1818
- Provide tests for any newly added code.
1919
- Follow PEP 8.
20-
- When committing only documentation changes please include `[ci skip]` in the commit message to avoid running tests on AppVeyor.
20+
- When committing only documentation changes please include `[ci skip]` in the commit message to avoid running extra tests.
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.
2222

2323
## Reporting Issues

.github/mergify.yml

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ pull_request_rules:
99
- status-success=Windows Test Successful
1010
- status-success=MinGW
1111
- status-success=Cygwin Test Successful
12-
- status-success=continuous-integration/appveyor/pr
1312
actions:
1413
merge:
1514
method: merge

.github/workflows/test-mingw.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ jobs:
6767
mingw-w64-x86_64-libtiff \
6868
mingw-w64-x86_64-libwebp \
6969
mingw-w64-x86_64-openjpeg2 \
70-
mingw-w64-x86_64-python3-numpy \
71-
mingw-w64-x86_64-python3-olefile \
72-
mingw-w64-x86_64-python3-pip \
70+
mingw-w64-x86_64-python-numpy \
71+
mingw-w64-x86_64-python-olefile \
72+
mingw-w64-x86_64-python-pip \
7373
mingw-w64-x86_64-python-pytest \
7474
mingw-w64-x86_64-python-pytest-cov \
7575
mingw-w64-x86_64-python-pytest-timeout \

.github/workflows/test-windows.yml

+10-4
Original file line numberDiff line numberDiff line change
@@ -31,15 +31,20 @@ env:
3131

3232
jobs:
3333
build:
34-
runs-on: windows-latest
34+
runs-on: ${{ matrix.os }}
3535
strategy:
3636
fail-fast: false
3737
matrix:
38-
python-version: ["pypy3.10", "3.9", "3.10", "3.11", "3.12", "3.13"]
38+
python-version: ["pypy3.10", "3.10", "3.11", "3.12", "3.13", "3.14"]
39+
architecture: ["x64"]
40+
os: ["windows-latest"]
41+
include:
42+
# Test the oldest Python on 32-bit
43+
- { python-version: "3.9", architecture: "x86", os: "windows-2019" }
3944

4045
timeout-minutes: 45
4146

42-
name: Python ${{ matrix.python-version }}
47+
name: Python ${{ matrix.python-version }} (${{ matrix.architecture }})
4348

4449
steps:
4550
- name: Checkout Pillow
@@ -67,6 +72,7 @@ jobs:
6772
with:
6873
python-version: ${{ matrix.python-version }}
6974
allow-prereleases: true
75+
architecture: ${{ matrix.architecture }}
7076
cache: pip
7177
cache-dependency-path: ".github/workflows/test-windows.yml"
7278

@@ -78,7 +84,7 @@ jobs:
7884
python3 -m pip install --upgrade pip
7985
8086
- name: Install CPython dependencies
81-
if: "!contains(matrix.python-version, 'pypy')"
87+
if: "!contains(matrix.python-version, 'pypy') && matrix.architecture != 'x86'"
8288
run: |
8389
python3 -m pip install PyQt6
8490

.github/workflows/test.yml

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
]
4343
python-version: [
4444
"pypy3.10",
45+
"3.14",
4546
"3.13t",
4647
"3.13",
4748
"3.12",

.github/workflows/wheels-dependencies.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ ARCHIVE_SDIR=pillow-depends-main
3939
# Package versions for fresh source builds
4040
FREETYPE_VERSION=2.13.3
4141
HARFBUZZ_VERSION=10.1.0
42-
LIBPNG_VERSION=1.6.44
42+
LIBPNG_VERSION=1.6.45
4343
JPEGTURBO_VERSION=3.1.0
4444
OPENJPEG_VERSION=2.5.3
4545
XZ_VERSION=5.6.3

.github/workflows/wheels-test.ps1

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ if ("$venv" -like "*\cibw-run-*\pp*-win_amd64\*") {
1111
$env:path += ";$pillow\winbuild\build\bin\"
1212
& "$venv\Scripts\activate.ps1"
1313
& reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\python.exe" /v "GlobalFlag" /t REG_SZ /d "0x02000000" /f
14+
if ("$venv" -like "*\cibw-run-*-win_amd64\*") {
15+
& python -m pip install numpy
16+
}
1417
cd $pillow
1518
& python -VV
1619
if (!$?) { exit $LASTEXITCODE }

.github/workflows/wheels.yml

+17-60
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ on:
1313
paths:
1414
- ".ci/requirements-cibw.txt"
1515
- ".github/workflows/wheel*"
16+
- "pyproject.toml"
1617
- "setup.py"
1718
- "wheels/*"
1819
- "winbuild/build_prepare.py"
@@ -23,6 +24,7 @@ on:
2324
paths:
2425
- ".ci/requirements-cibw.txt"
2526
- ".github/workflows/wheel*"
27+
- "pyproject.toml"
2628
- "setup.py"
2729
- "wheels/*"
2830
- "winbuild/build_prepare.py"
@@ -40,62 +42,7 @@ env:
4042
FORCE_COLOR: 1
4143

4244
jobs:
43-
build-1-QEMU-emulated-wheels:
44-
if: github.event_name != 'schedule'
45-
name: aarch64 ${{ matrix.python-version }} ${{ matrix.spec }}
46-
runs-on: ubuntu-latest
47-
strategy:
48-
fail-fast: false
49-
matrix:
50-
python-version:
51-
- pp310
52-
- cp3{9,10,11}
53-
- cp3{12,13}
54-
spec:
55-
- manylinux2014
56-
- manylinux_2_28
57-
- musllinux
58-
exclude:
59-
- { python-version: pp310, spec: musllinux }
60-
61-
steps:
62-
- uses: actions/checkout@v4
63-
with:
64-
persist-credentials: false
65-
submodules: true
66-
67-
- uses: actions/setup-python@v5
68-
with:
69-
python-version: "3.x"
70-
71-
# https://github.com/docker/setup-qemu-action
72-
- name: Set up QEMU
73-
uses: docker/setup-qemu-action@v3
74-
75-
- name: Install cibuildwheel
76-
run: |
77-
python3 -m pip install -r .ci/requirements-cibw.txt
78-
79-
- name: Build wheels
80-
run: |
81-
python3 -m cibuildwheel --output-dir wheelhouse
82-
env:
83-
# Build only the currently selected Linux architecture (so we can
84-
# parallelise for speed).
85-
CIBW_ARCHS: "aarch64"
86-
# Likewise, select only one Python version per job to speed this up.
87-
CIBW_BUILD: "${{ matrix.python-version }}-${{ matrix.spec == 'musllinux' && 'musllinux' || 'manylinux' }}*"
88-
CIBW_ENABLE: cpython-prerelease
89-
# Extra options for manylinux.
90-
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.spec }}
91-
CIBW_MANYLINUX_PYPY_AARCH64_IMAGE: ${{ matrix.spec }}
92-
93-
- uses: actions/upload-artifact@v4
94-
with:
95-
name: dist-qemu-${{ matrix.python-version }}-${{ matrix.spec }}
96-
path: ./wheelhouse/*.whl
97-
98-
build-2-native-wheels:
45+
build-native-wheels:
9946
if: github.event_name != 'schedule' || github.repository_owner == 'python-pillow'
10047
name: ${{ matrix.name }}
10148
runs-on: ${{ matrix.os }}
@@ -130,6 +77,14 @@ jobs:
13077
cibw_arch: x86_64
13178
build: "*manylinux*"
13279
manylinux: "manylinux_2_28"
80+
- name: "manylinux2014 and musllinux aarch64"
81+
os: ubuntu-24.04-arm
82+
cibw_arch: aarch64
83+
- name: "manylinux_2_28 aarch64"
84+
os: ubuntu-24.04-arm
85+
cibw_arch: aarch64
86+
build: "*manylinux*"
87+
manylinux: "manylinux_2_28"
13388
steps:
13489
- uses: actions/checkout@v4
13590
with:
@@ -150,7 +105,9 @@ jobs:
150105
env:
151106
CIBW_ARCHS: ${{ matrix.cibw_arch }}
152107
CIBW_BUILD: ${{ matrix.build }}
153-
CIBW_ENABLE: cpython-prerelease cpython-freethreading
108+
CIBW_ENABLE: cpython-prerelease cpython-freethreading pypy
109+
CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.manylinux }}
110+
CIBW_MANYLINUX_PYPY_AARCH64_IMAGE: ${{ matrix.manylinux }}
154111
CIBW_MANYLINUX_PYPY_X86_64_IMAGE: ${{ matrix.manylinux }}
155112
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux }}
156113
CIBW_SKIP: pp39-*
@@ -227,7 +184,7 @@ jobs:
227184
CIBW_ARCHS: ${{ matrix.cibw_arch }}
228185
CIBW_BEFORE_ALL: "{package}\\winbuild\\build\\build_dep_all.cmd"
229186
CIBW_CACHE_PATH: "C:\\cibw"
230-
CIBW_ENABLE: cpython-prerelease cpython-freethreading
187+
CIBW_ENABLE: cpython-prerelease cpython-freethreading pypy
231188
CIBW_SKIP: pp39-*
232189
CIBW_TEST_SKIP: "*-win_arm64"
233190
CIBW_TEST_COMMAND: 'docker run --rm
@@ -273,7 +230,7 @@ jobs:
273230

274231
scientific-python-nightly-wheels-publish:
275232
if: github.repository_owner == 'python-pillow' && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch')
276-
needs: [build-2-native-wheels, windows]
233+
needs: [build-native-wheels, windows]
277234
runs-on: ubuntu-latest
278235
name: Upload wheels to scientific-python-nightly-wheels
279236
steps:
@@ -290,7 +247,7 @@ jobs:
290247

291248
pypi-publish:
292249
if: github.repository_owner == 'python-pillow' && github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
293-
needs: [build-1-QEMU-emulated-wheels, build-2-native-wheels, windows, sdist]
250+
needs: [build-native-wheels, windows, sdist]
294251
runs-on: ubuntu-latest
295252
name: Upload release to PyPI
296253
environment:

.readthedocs.yml

+3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
version: 2
22

3+
sphinx:
4+
configuration: docs/conf.py
5+
36
formats: [pdf]
47

58
build:

MANIFEST.in

-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ graft docs
2020
graft _custom_build
2121

2222
# build/src control detritus
23-
exclude .appveyor.yml
2423
exclude .clang-format
2524
exclude .coveragerc
2625
exclude .editorconfig

README.md

-3
Original file line numberDiff line numberDiff line change
@@ -42,9 +42,6 @@ As of 2019, Pillow development is
4242
<a href="https://github.com/python-pillow/Pillow/actions/workflows/test-docker.yml"><img
4343
alt="GitHub Actions build status (Test Docker)"
4444
src="https://github.com/python-pillow/Pillow/workflows/Test%20Docker/badge.svg"></a>
45-
<a href="https://ci.appveyor.com/project/python-pillow/Pillow"><img
46-
alt="AppVeyor CI build status (Windows)"
47-
src="https://img.shields.io/appveyor/build/python-pillow/Pillow/main.svg?label=Windows%20build"></a>
4845
<a href="https://github.com/python-pillow/Pillow/actions/workflows/wheels.yml"><img
4946
alt="GitHub Actions build status (Wheels)"
5047
src="https://github.com/python-pillow/Pillow/workflows/Wheels/badge.svg"></a>

RELEASING.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ Released quarterly on January 2nd, April 1st, July 1st and October 15th.
99

1010
* [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154
1111
* [ ] Develop and prepare release in `main` branch.
12-
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in `main` branch.
12+
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) to confirm passing tests in `main` branch.
1313
* [ ] Check that all the wheel builds pass the tests in the [GitHub Actions "Wheels" workflow](https://github.com/python-pillow/Pillow/actions/workflows/wheels.yml) jobs by manually triggering them.
1414
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/), update version identifier in `src/PIL/_version.py`
1515
* [ ] Run pre-release check via `make release-test` in a freshly cloned repo.
@@ -38,7 +38,7 @@ Released as needed for security, installation or critical bug fixes.
3838
git checkout -t remotes/origin/5.2.x
3939
```
4040
* [ ] Cherry pick individual commits from `main` branch to release branch e.g. `5.2.x`, then `git push`.
41-
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) and [AppVeyor](https://ci.appveyor.com/project/python-pillow/Pillow) to confirm passing tests in release branch e.g. `5.2.x`.
41+
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) to confirm passing tests in release branch e.g. `5.2.x`.
4242
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/), update version identifier in `src/PIL/_version.py`
4343
* [ ] Run pre-release check via `make release-test`.
4444
* [ ] Create tag for release e.g.:

0 commit comments

Comments
 (0)