Skip to content

Commit f40eed2

Browse files
authored
Merge branch 'main' into chore/remove-rav1e
2 parents 8a174f5 + 07df26a commit f40eed2

125 files changed

Lines changed: 500 additions & 798 deletions

File tree

Some content is hidden

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

.ci/requirements-cibw.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
cibuildwheel==2.23.2
1+
cibuildwheel==2.23.3

.github/ISSUE_TEMPLATE/RELEASE.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
---
2+
name: "Maintainers only: Release"
3+
about: For maintainers to schedule a quarterly release
4+
labels: Release
5+
---
6+
7+
## Main release
8+
9+
Released quarterly on January 2nd, April 1st, July 1st and October 15th.
10+
11+
* [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154
12+
* [ ] Develop and prepare release in `main` branch.
13+
* [ ] Add release notes e.g. https://github.com/python-pillow/Pillow/pull/8885
14+
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) to confirm passing tests in `main` branch.
15+
* [ ] 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.
16+
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/), update version identifier in `src/PIL/_version.py`
17+
* [ ] Run pre-release check via `make release-test` in a freshly cloned repo.
18+
* [ ] Create branch and tag for release e.g.:
19+
```bash
20+
git branch [[MAJOR.MINOR]].x
21+
git tag [[MAJOR.MINOR]].0
22+
git push --tags
23+
```
24+
* [ ] Check the [GitHub Actions "Wheels" workflow](https://github.com/python-pillow/Pillow/actions/workflows/wheels.yml) has passed, including the "Upload release to PyPI" job. This will have been triggered by the new tag.
25+
* [ ] Publish the [release on GitHub](https://github.com/python-pillow/Pillow/releases).
26+
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/), increment and append `.dev0` to version identifier in `src/PIL/_version.py` and then:
27+
```bash
28+
git push --all
29+
```
30+
31+
## Publicize release
32+
33+
* [ ] Announce release availability via [Mastodon](https://fosstodon.org/@pillow) e.g. https://fosstodon.org/@pillow/110639450470725321
34+
35+
## Documentation
36+
37+
* [ ] Make sure the [default version for Read the Docs](https://pillow.readthedocs.io/en/stable/) is up-to-date with the release changes
38+
39+
## Docker images
40+
41+
* [ ] Update Pillow in the Docker Images repository
42+
```bash
43+
git clone https://github.com/python-pillow/docker-images
44+
cd docker-images
45+
./update-pillow-tag.sh [[release tag]]
46+
```

.github/workflows/test-docker.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ jobs:
4747
centos-stream-10-amd64,
4848
debian-12-bookworm-x86,
4949
debian-12-bookworm-amd64,
50-
fedora-40-amd64,
5150
fedora-41-amd64,
51+
fedora-42-amd64,
5252
gentoo,
5353
ubuntu-22.04-jammy-amd64,
5454
ubuntu-24.04-noble-amd64,

.github/workflows/wheels-dependencies.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ ARCHIVE_SDIR=pillow-depends-main
3838

3939
# Package versions for fresh source builds
4040
FREETYPE_VERSION=2.13.3
41-
HARFBUZZ_VERSION=11.0.1
41+
HARFBUZZ_VERSION=11.1.0
4242
LIBPNG_VERSION=1.6.47
4343
JPEGTURBO_VERSION=3.1.0
4444
OPENJPEG_VERSION=2.5.3
@@ -93,7 +93,7 @@ function build_harfbuzz {
9393

9494
local out_dir=$(fetch_unpack https://github.com/harfbuzz/harfbuzz/releases/download/$HARFBUZZ_VERSION/harfbuzz-$HARFBUZZ_VERSION.tar.xz harfbuzz-$HARFBUZZ_VERSION.tar.xz)
9595
(cd $out_dir \
96-
&& meson setup build --prefix=$BUILD_PREFIX --libdir=$BUILD_PREFIX/lib --buildtype=release -Dfreetype=enabled -Dglib=disabled -Dtests=disabled)
96+
&& meson setup build --prefix=$BUILD_PREFIX --libdir=$BUILD_PREFIX/lib --buildtype=minsize -Dfreetype=enabled -Dglib=disabled -Dtests=disabled)
9797
(cd $out_dir/build \
9898
&& meson install)
9999
touch harfbuzz-stamp

.github/workflows/wheels.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,17 @@ jobs:
121121
windows:
122122
if: github.event_name != 'schedule' || github.repository_owner == 'python-pillow'
123123
name: Windows ${{ matrix.cibw_arch }}
124-
runs-on: windows-latest
124+
runs-on: ${{ matrix.os }}
125125
strategy:
126126
fail-fast: false
127127
matrix:
128128
include:
129129
- cibw_arch: x86
130+
os: windows-latest
130131
- cibw_arch: AMD64
132+
os: windows-latest
131133
- cibw_arch: ARM64
134+
os: windows-11-arm
132135
steps:
133136
- uses: actions/checkout@v4
134137
with:

Makefile

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ doc html:
2323
htmlview:
2424
$(MAKE) -C docs htmlview
2525

26+
.PHONY: htmllive
27+
htmllive:
28+
$(MAKE) -C docs htmllive
29+
2630
.PHONY: doccheck
2731
doccheck:
2832
$(MAKE) doc
@@ -43,6 +47,7 @@ help:
4347
@echo " docserve run an HTTP server on the docs directory"
4448
@echo " html make HTML docs"
4549
@echo " htmlview open the index page built by the html target in your browser"
50+
@echo " htmllive rebuild and reload HTML files in your browser"
4651
@echo " install make and install"
4752
@echo " install-coverage make and install with C coverage"
4853
@echo " lint run the lint checks"

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ This library provides extensive file format support, an efficient internal repre
9595

9696
The core image library is designed for fast access to data stored in a few basic pixel formats. It should provide a solid foundation for a general image processing tool.
9797

98-
## More Information
98+
## More information
9999

100100
- [Documentation](https://pillow.readthedocs.io/)
101101
- [Installation](https://pillow.readthedocs.io/en/latest/installation/basic-installation.html)
@@ -107,6 +107,6 @@ The core image library is designed for fast access to data stored in a few basic
107107
- [Changelog](https://github.com/python-pillow/Pillow/releases)
108108
- [Pre-fork](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst#pre-fork)
109109

110-
## Report a Vulnerability
110+
## Report a vulnerability
111111

112112
To report a security vulnerability, please follow the procedure described in the [Tidelift security policy](https://tidelift.com/docs/security).

RELEASING.md

Lines changed: 8 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,15 @@
1-
# Release Checklist
1+
# Release checklist
22

33
See https://pillow.readthedocs.io/en/stable/releasenotes/versioning.html for
44
information about how the version numbers line up with releases.
55

6-
## Main Release
6+
## Main release
77

88
Released quarterly on January 2nd, April 1st, July 1st and October 15th.
99

10-
* [ ] Open a release ticket e.g. https://github.com/python-pillow/Pillow/issues/3154
11-
* [ ] Develop and prepare release in `main` branch.
12-
* [ ] Check [GitHub Actions](https://github.com/python-pillow/Pillow/actions) to confirm passing tests in `main` branch.
13-
* [ ] 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.
14-
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/), update version identifier in `src/PIL/_version.py`
15-
* [ ] Run pre-release check via `make release-test` in a freshly cloned repo.
16-
* [ ] Create branch and tag for release e.g.:
17-
```bash
18-
git branch 5.2.x
19-
git tag 5.2.0
20-
git push --tags
21-
```
22-
* [ ] Check the [GitHub Actions "Wheels" workflow](https://github.com/python-pillow/Pillow/actions/workflows/wheels.yml)
23-
has passed, including the "Upload release to PyPI" job. This will have been triggered
24-
by the new tag.
25-
* [ ] Publish the [release on GitHub](https://github.com/python-pillow/Pillow/releases).
26-
* [ ] In compliance with [PEP 440](https://peps.python.org/pep-0440/),
27-
increment and append `.dev0` to version identifier in `src/PIL/_version.py` and then:
28-
```bash
29-
git push --all
30-
```
31-
## Point Release
10+
* [ ] Create a new issue and select the "Maintainers only: Release" template.
11+
12+
## Point release
3213

3314
Released as needed for security, installation or critical bug fixes.
3415

@@ -58,7 +39,7 @@ Released as needed for security, installation or critical bug fixes.
5839
git push
5940
```
6041

61-
## Embargoed Release
42+
## Embargoed release
6243

6344
Released as needed privately to individual vendors for critical security-related bug fixes.
6445

@@ -82,15 +63,15 @@ Released as needed privately to individual vendors for critical security-related
8263
git push origin 2.5.x
8364
```
8465

85-
## Publicize Release
66+
## Publicize release
8667

8768
* [ ] Announce release availability via [Mastodon](https://fosstodon.org/@pillow) e.g. https://fosstodon.org/@pillow/110639450470725321
8869

8970
## Documentation
9071

9172
* [ ] Make sure the [default version for Read the Docs](https://pillow.readthedocs.io/en/stable/) is up-to-date with the release changes
9273

93-
## Docker Images
74+
## Docker images
9475

9576
* [ ] Update Pillow in the Docker Images repository
9677
```bash

Tests/README.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Pillow Tests
1+
Pillow tests
22
============
33

44
Test scripts are named ``test_xxx.py``. Helper classes and functions can be found in ``helper.py``.

Tests/test_file_bmp.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,9 @@ def test_rle8() -> None:
190190
# Signal end of bitmap before the image is finished
191191
with open("Tests/images/bmp/g/pal8rle.bmp", "rb") as fp:
192192
data = fp.read(1063) + b"\x01"
193-
with Image.open(io.BytesIO(data)) as im:
194-
with pytest.raises(ValueError):
195-
im.load()
193+
with Image.open(io.BytesIO(data)) as im:
194+
with pytest.raises(ValueError):
195+
im.load()
196196

197197

198198
def test_rle4() -> None:
@@ -214,9 +214,9 @@ def test_rle4() -> None:
214214
def test_rle8_eof(file_name: str, length: int) -> None:
215215
with open(file_name, "rb") as fp:
216216
data = fp.read(length)
217-
with Image.open(io.BytesIO(data)) as im:
218-
with pytest.raises(ValueError):
219-
im.load()
217+
with Image.open(io.BytesIO(data)) as im:
218+
with pytest.raises(ValueError):
219+
im.load()
220220

221221

222222
def test_offset() -> None:

0 commit comments

Comments
 (0)