Skip to content

Commit bc4a794

Browse files
authored
Merge branch 'main' into jxl-support2
2 parents bb06057 + 58e4874 commit bc4a794

File tree

425 files changed

+10522
-5013
lines changed

Some content is hidden

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

425 files changed

+10522
-5013
lines changed

.appveyor.yml

-100
This file was deleted.

.ci/after_success.sh

+1-5
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,4 @@
22

33
# gather the coverage data
44
python3 -m pip install coverage
5-
if [[ $MATRIX_DOCKER ]]; then
6-
python3 -m coverage xml --ignore-errors
7-
else
8-
python3 -m coverage xml
9-
fi
5+
python3 -m coverage xml

.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

.ci/install.sh

+13-12
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
aptget_update()
44
{
5-
if [ ! -z $1 ]; then
5+
if [ -n "$1" ]; then
66
echo ""
77
echo "Retrying apt-get update..."
88
echo ""
99
fi
10-
output=`sudo apt-get update 2>&1`
10+
output=$(sudo apt-get update 2>&1)
1111
echo "$output"
1212
if [[ $output == *[WE]:\ * ]]; then
1313
return 1
@@ -20,10 +20,10 @@ fi
2020
set -e
2121

2222
if [[ $(uname) != CYGWIN* ]]; then
23-
sudo apt-get -qq install libfreetype6-dev liblcms2-dev python3-tk\
24-
ghostscript libjpeg-turbo-progs libopenjp2-7-dev\
23+
sudo apt-get -qq install libfreetype6-dev liblcms2-dev libtiff-dev python3-tk\
24+
ghostscript libjpeg-turbo8-dev libopenjp2-7-dev\
2525
cmake meson imagemagick libharfbuzz-dev libfribidi-dev\
26-
sway wl-clipboard libopenblas-dev
26+
sway wl-clipboard libopenblas-dev nasm
2727
fi
2828

2929
python3 -m pip install --upgrade pip
@@ -36,14 +36,12 @@ python3 -m pip install -U pytest
3636
python3 -m pip install -U pytest-cov
3737
python3 -m pip install -U pytest-timeout
3838
python3 -m pip install pyroma
39+
# optional test dependency, only install if there's a binary package.
40+
# fails on beta 3.14 and PyPy
41+
python3 -m pip install --only-binary=:all: pyarrow || true
3942

4043
if [[ $(uname) != CYGWIN* ]]; then
41-
# TODO Update condition when NumPy supports free-threading
42-
if [[ "$PYTHON_GIL" == "0" ]]; then
43-
python3 -m pip install numpy --index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple
44-
else
45-
python3 -m pip install numpy
46-
fi
44+
python3 -m pip install numpy
4745

4846
# PyQt6 doesn't support PyPy3
4947
if [[ $GHA_PYTHON_VERSION == 3.* ]]; then
@@ -55,7 +53,7 @@ if [[ $(uname) != CYGWIN* ]]; then
5553
# Pyroma uses non-isolated build and fails with old setuptools
5654
if [[ $GHA_PYTHON_VERSION == 3.9 ]]; then
5755
# To match pyproject.toml
58-
python3 -m pip install "setuptools>=67.8"
56+
python3 -m pip install "setuptools>=77"
5957
fi
6058

6159
# webp
@@ -67,6 +65,9 @@ if [[ $(uname) != CYGWIN* ]]; then
6765
# raqm
6866
pushd depends && ./install_raqm.sh && popd
6967

68+
# libavif
69+
pushd depends && CMAKE_POLICY_VERSION_MINIMUM=3.5 ./install_libavif.sh && popd
70+
7071
# extra test images
7172
pushd depends && ./install_extra_test_images.sh && popd
7273
else

.ci/requirements-cibw.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
cibuildwheel==2.20.0
1+
cibuildwheel==2.23.2

.ci/requirements-mypy.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
mypy==1.11.2
1+
mypy==1.15.0
22
IceSpringPySideStubs-PyQt6
33
IceSpringPySideStubs-PySide6
44
ipython

.ci/test.cmd

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
python.exe -c "from PIL import Image"
2+
IF ERRORLEVEL 1 EXIT /B
3+
python.exe -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term --cov-report xml Tests

.ci/test.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ set -e
44

55
python3 -c "from PIL import Image"
66

7-
python3 -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term Tests $REVERSE
7+
python3 -bb -m pytest -v -x -W always --cov PIL --cov Tests --cov-report term --cov-report xml Tests $REVERSE

.clang-format

+20
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# A clang-format style that approximates Python's PEP 7
22
# Useful for IDE integration
3+
Language: C
34
BasedOnStyle: Google
45
AlwaysBreakAfterReturnType: All
56
AllowShortIfStatementsOnASingleLine: false
@@ -11,7 +12,26 @@ ColumnLimit: 88
1112
DerivePointerAlignment: false
1213
IndentGotoLabels: false
1314
IndentWidth: 4
15+
PointerAlignment: Right
16+
ReflowComments: true
17+
SortIncludes: false
18+
SpaceBeforeParens: ControlStatements
19+
SpacesInParentheses: false
20+
TabWidth: 4
21+
UseTab: Never
22+
---
1423
Language: Cpp
24+
BasedOnStyle: Google
25+
AlwaysBreakAfterReturnType: All
26+
AllowShortIfStatementsOnASingleLine: false
27+
AlignAfterOpenBracket: BlockIndent
28+
BinPackArguments: false
29+
BinPackParameters: false
30+
BreakBeforeBraces: Attach
31+
ColumnLimit: 88
32+
DerivePointerAlignment: false
33+
IndentGotoLabels: false
34+
IndentWidth: 4
1535
PointerAlignment: Right
1636
ReflowComments: true
1737
SortIncludes: false

.github/CONTRIBUTING.md

+2-3
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,16 @@ 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.
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/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/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+
"* * 3 * *"
20+
]
1721
}

.github/workflows/cifuzz.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@ on:
66
- "**"
77
paths:
88
- ".github/workflows/cifuzz.yml"
9+
- ".github/workflows/wheels-dependencies.sh"
910
- "**.c"
1011
- "**.h"
1112
pull_request:
1213
paths:
1314
- ".github/workflows/cifuzz.yml"
15+
- ".github/workflows/wheels-dependencies.sh"
1416
- "**.c"
1517
- "**.h"
1618
workflow_dispatch:
@@ -24,8 +26,6 @@ concurrency:
2426

2527
jobs:
2628
Fuzzing:
27-
# Disabled until google/oss-fuzz#11419 upgrades Python to 3.9+
28-
if: false
2929
runs-on: ubuntu-latest
3030
steps:
3131
- name: Build Fuzzers

.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

0 commit comments

Comments
 (0)