This PR contains the following updates:
| Package | Change | Age | Confidence |
|---|---|---|---|
| [pillow](https://github.com/python-pillow/Pillow) ([changelog](https://github.com/python-pillow/Pillow/releases)) | `<12.0.0,>=11.0.0` -> `<12.0.1,>=12.0.0` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>python-pillow/Pillow (pillow)</summary>
### [`v12.0.0`](https://github.com/python-pillow/Pillow/releases/tag/12.0.0)
[Compare Source](python-pillow/Pillow@11.3.0...12.0.0)
<https://pillow.readthedocs.io/en/stable/releasenotes/12.0.0.html>
#### Removals
- Remove support for FreeType <= 2.9.0 [#​9159](python-pillow/Pillow#9159) \[[@​radarhere](https://github.com/radarhere)]
- Drop support for Python 3.9 [#​9119](python-pillow/Pillow#9119) \[[@​hugovk](https://github.com/hugovk)]
- Remove deprecations for Pillow 12.0.0 [#​9053](python-pillow/Pillow#9053) \[[@​radarhere](https://github.com/radarhere)]
#### Deprecations
- Deprecate Image.\_show [#​9186](python-pillow/Pillow#9186) \[[@​radarhere](https://github.com/radarhere)]
- Deprecate ImageCmsProfile product\_name and product\_info [#​8995](python-pillow/Pillow#8995) \[[@​lukegb](https://github.com/lukegb)]
#### Documentation
- ImagingHistogramInstance can use two bands [#​9251](python-pillow/Pillow#9251) \[[@​radarhere](https://github.com/radarhere)]
- Update 12.0.0 release notes [#​9247](python-pillow/Pillow#9247) \[[@​hugovk](https://github.com/hugovk)]
- Added ImageDraw alpha channel examples [#​9201](python-pillow/Pillow#9201) \[[@​radarhere](https://github.com/radarhere)]
- Update Python version [#​9230](python-pillow/Pillow#9230) \[[@​radarhere](https://github.com/radarhere)]
- Updated macOS tested Pillow versions [#​9209](python-pillow/Pillow#9209) \[[@​radarhere](https://github.com/radarhere)]
- Add GitHub profile link to release notes [#​9197](python-pillow/Pillow#9197) \[[@​radarhere](https://github.com/radarhere)]
- Split versionadded info [#​9190](python-pillow/Pillow#9190) \[[@​radarhere](https://github.com/radarhere)]
- Document ImageFile.MAXBLOCK [#​9163](python-pillow/Pillow#9163) \[[@​radarhere](https://github.com/radarhere)]
- Updated macOS version in CI targets [#​9157](python-pillow/Pillow#9157) \[[@​radarhere](https://github.com/radarhere)]
- Fix typos [#​9135](python-pillow/Pillow#9135) \[[@​radarhere](https://github.com/radarhere)]
- Added "Colors" to concepts [#​9067](python-pillow/Pillow#9067) \[[@​radarhere](https://github.com/radarhere)]
- Update macOS tested Pillow versions [#​9068](python-pillow/Pillow#9068) \[[@​radarhere](https://github.com/radarhere)]
- Thanks, folks! [#​9056](python-pillow/Pillow#9056) \[[@​aclark4life](https://github.com/aclark4life)]
- Setup nit: "fork" should be lowercased [#​9055](python-pillow/Pillow#9055) \[[@​aclark4life](https://github.com/aclark4life)]
#### Dependencies
- Update dependency cibuildwheel to v3.2.1 [#​9246](python-pillow/Pillow#9246) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- \[pre-commit.ci] pre-commit autoupdate [#​9233](python-pillow/Pillow#9233) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)]
- Update harfbuzz to 12.1.0 [#​9218](python-pillow/Pillow#9218) \[[@​radarhere](https://github.com/radarhere)]
- Update libtiff to 4.7.1 [#​9222](python-pillow/Pillow#9222) \[[@​radarhere](https://github.com/radarhere)]
- Update FreeType to 2.14.1 on macOS and Linux wheels [#​9217](python-pillow/Pillow#9217) \[[@​radarhere](https://github.com/radarhere)]
- Update dependency cibuildwheel to v3.2.0 [#​9219](python-pillow/Pillow#9219) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update Ghostscript to 10.6.0 [#​9202](python-pillow/Pillow#9202) \[[@​radarhere](https://github.com/radarhere)]
- Update openjpeg to 2.5.4 [#​9215](python-pillow/Pillow#9215) \[[@​radarhere](https://github.com/radarhere)]
- Update harfbuzz to 11.5.0 [#​9203](python-pillow/Pillow#9203) \[[@​radarhere](https://github.com/radarhere)]
- Update dependency mypy to v1.18.2 [#​9213](python-pillow/Pillow#9213) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update dependency mypy to v1.18.1 [#​9207](python-pillow/Pillow#9207) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update github-actions [#​9194](python-pillow/Pillow#9194) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Updated harfbuzz to 11.4.5 [#​9150](python-pillow/Pillow#9150) \[[@​radarhere](https://github.com/radarhere)]
- Update zlib-ng to 2.2.5 [#​9140](python-pillow/Pillow#9140) \[[@​radarhere](https://github.com/radarhere)]
- Update raqm to 0.10.3 [#​9137](python-pillow/Pillow#9137) \[[@​radarhere](https://github.com/radarhere)]
- Update libjpeg-turbo to 3.1.2 [#​9188](python-pillow/Pillow#9188) \[[@​radarhere](https://github.com/radarhere)]
- \[pre-commit.ci] pre-commit autoupdate [#​9180](python-pillow/Pillow#9180) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)]
- Update dependency cibuildwheel to v3.1.4 [#​9164](python-pillow/Pillow#9164) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update actions/checkout action to v5 [#​9156](python-pillow/Pillow#9156) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update actions/download-artifact action to v5 [#​9141](python-pillow/Pillow#9141) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Updated harfbuzz to 11.3.3 [#​9103](python-pillow/Pillow#9103) \[[@​radarhere](https://github.com/radarhere)]
- \[pre-commit.ci] pre-commit autoupdate [#​9131](python-pillow/Pillow#9131) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)]
- Updated libimagequant to 4.4.0 [#​9074](python-pillow/Pillow#9074) \[[@​radarhere](https://github.com/radarhere)]
- Update dependency mypy to v1.17.1 [#​9130](python-pillow/Pillow#9130) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update dependency cibuildwheel to v3.1.3 [#​9129](python-pillow/Pillow#9129) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update dependency cibuildwheel to v3.1.2 [#​9118](python-pillow/Pillow#9118) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Updated libpng to 1.6.50 [#​9058](python-pillow/Pillow#9058) \[[@​radarhere](https://github.com/radarhere)]
- Update cygwin/cygwin-install-action action to v6 [#​9108](python-pillow/Pillow#9108) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Update dependency mypy to v1.17.0 [#​9092](python-pillow/Pillow#9092) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- Updated libwebp to 1.6.0 [#​9082](python-pillow/Pillow#9082) \[[@​radarhere](https://github.com/radarhere)]
- Update dependency cibuildwheel to v3.0.1 [#​9075](python-pillow/Pillow#9075) \[@​[renovate\[bot\]](https://github.com/apps/renovate)]
- \[pre-commit.ci] pre-commit autoupdate [#​9073](python-pillow/Pillow#9073) \[@​[pre-commit-ci\[bot\]](https://github.com/apps/pre-commit-ci)]
#### Testing
- Check return types [#​9045](python-pillow/Pillow#9045) \[[@​radarhere](https://github.com/radarhere)]
- Upgrade from macos-13 [#​9212](python-pillow/Pillow#9212) \[[@​radarhere](https://github.com/radarhere)]
- Wheels CI: Check number of expected dists [#​9239](python-pillow/Pillow#9239) \[[@​hugovk](https://github.com/hugovk)]
- Assert image type [#​8845](python-pillow/Pillow#8845) \[[@​radarhere](https://github.com/radarhere)]
- Test GD transparency [#​9196](python-pillow/Pillow#9196) \[[@​radarhere](https://github.com/radarhere)]
- Test mode when saving PPM images [#​9195](python-pillow/Pillow#9195) \[[@​radarhere](https://github.com/radarhere)]
- Test unsupported BMP bitfields layout [#​9193](python-pillow/Pillow#9193) \[[@​radarhere](https://github.com/radarhere)]
- Update Ghostscript to 10.6.0 [#​9202](python-pillow/Pillow#9202) \[[@​radarhere](https://github.com/radarhere)]
- Use monkeypatch [#​9192](python-pillow/Pillow#9192) \[[@​radarhere](https://github.com/radarhere)]
- Always check XMLPacket value [#​9113](python-pillow/Pillow#9113) \[[@​radarhere](https://github.com/radarhere)]
- Rename variable to not shadow import [#​9124](python-pillow/Pillow#9124) \[[@​radarhere](https://github.com/radarhere)]
- Removed unused code [#​9182](python-pillow/Pillow#9182) \[[@​radarhere](https://github.com/radarhere)]
- Add has\_feature\_version helper [#​9172](python-pillow/Pillow#9172) \[[@​radarhere](https://github.com/radarhere)]
- Replace print with assert [#​9171](python-pillow/Pillow#9171) \[[@​radarhere](https://github.com/radarhere)]
- Add Debian 13 Trixie [#​9147](python-pillow/Pillow#9147) \[[@​hugovk](https://github.com/hugovk)]
- Do not import from Tests directory in checks [#​9143](python-pillow/Pillow#9143) \[[@​radarhere](https://github.com/radarhere)]
- Improve features test coverage [#​9077](python-pillow/Pillow#9077) \[[@​radarhere](https://github.com/radarhere)]
- Remove WebP feature handling [#​9096](python-pillow/Pillow#9096) \[[@​radarhere](https://github.com/radarhere)]
- Update for pyroma 5.0 [#​9093](python-pillow/Pillow#9093) \[[@​radarhere](https://github.com/radarhere)]
- Improve WmfImagePlugin test coverage [#​9090](python-pillow/Pillow#9090) \[[@​radarhere](https://github.com/radarhere)]
- Improve DdsImagePlugin test coverage [#​9091](python-pillow/Pillow#9091) \[[@​radarhere](https://github.com/radarhere)]
- Improve ImageMath test coverage [#​9087](python-pillow/Pillow#9087) \[[@​radarhere](https://github.com/radarhere)]
- Fix unclosed file warning [#​9065](python-pillow/Pillow#9065) \[[@​radarhere](https://github.com/radarhere)]
- Pyroma now supports PEP 639 [#​9064](python-pillow/Pillow#9064) \[[@​radarhere](https://github.com/radarhere)]
#### Type hints
- Install arro3 dependencies when type checking [#​9254](python-pillow/Pillow#9254) \[[@​radarhere](https://github.com/radarhere)]
- Check return types [#​9045](python-pillow/Pillow#9045) \[[@​radarhere](https://github.com/radarhere)]
- Assert image type [#​8845](python-pillow/Pillow#8845) \[[@​radarhere](https://github.com/radarhere)]
- Move imports into TYPE\_CHECKING [#​9123](python-pillow/Pillow#9123) \[[@​radarhere](https://github.com/radarhere)]
- Remove support for NumPy 1.20 when type checking [#​9125](python-pillow/Pillow#9125) \[[@​radarhere](https://github.com/radarhere)]
#### Other changes
- Use macos-14 for iOS arm64 simulator [#​9258](python-pillow/Pillow#9258) \[[@​hugovk](https://github.com/hugovk)]
- Use enums for Modes and RawModes in C [#​9256](python-pillow/Pillow#9256) \[[@​radarhere](https://github.com/radarhere)]
- Add ImageText [#​9098](python-pillow/Pillow#9098) \[[@​radarhere](https://github.com/radarhere)]
- Shift bits before making value negative [#​9255](python-pillow/Pillow#9255) \[[@​radarhere](https://github.com/radarhere)]
- Support saving variable length rational TIFF tags by default [#​9241](python-pillow/Pillow#9241) \[[@​radarhere](https://github.com/radarhere)]
- Added four private SGI TIFF tags [#​9245](python-pillow/Pillow#9245) \[[@​radarhere](https://github.com/radarhere)]
- Band names for arrow exported images [#​9099](python-pillow/Pillow#9099) \[[@​wiredfool](https://github.com/wiredfool)]
- Use macos-latest for iOS arm64 simulator [#​9250](python-pillow/Pillow#9250) \[[@​radarhere](https://github.com/radarhere)]
- If pasting an image onto itself at a lower position, copy from bottom [#​8882](python-pillow/Pillow#8882) \[[@​radarhere](https://github.com/radarhere)]
- Removed unused access for I;32L and I;32B [#​9238](python-pillow/Pillow#9238) \[[@​radarhere](https://github.com/radarhere)]
- Corrected scientific-python-nightly-wheels pattern [#​9252](python-pillow/Pillow#9252) \[[@​radarhere](https://github.com/radarhere)]
- Run sdist when scheduled, but do not upload to scientific-python-nightly-wheels index [#​9248](python-pillow/Pillow#9248) \[[@​radarhere](https://github.com/radarhere)]
- Removed shebang lines and executable flags [#​9179](python-pillow/Pillow#9179) \[[@​radarhere](https://github.com/radarhere)]
- Remove Pillow version from PDF comment [#​9176](python-pillow/Pillow#9176) \[[@​radarhere](https://github.com/radarhere)]
- Support saving variable length rational TIFF tags [#​9111](python-pillow/Pillow#9111) \[[@​radarhere](https://github.com/radarhere)]
- Build Python 3.14 on macOS 10.15 [#​9234](python-pillow/Pillow#9234) \[[@​radarhere](https://github.com/radarhere)]
- Test largest CUR cursor [#​9191](python-pillow/Pillow#9191) \[[@​radarhere](https://github.com/radarhere)]
- Do not unnecessarily update FLI \_\_offset [#​9184](python-pillow/Pillow#9184) \[[@​radarhere](https://github.com/radarhere)]
- Fill alpha channel when quantizing RGB images [#​9133](python-pillow/Pillow#9133) \[[@​radarhere](https://github.com/radarhere)]
- Allow RGBA palettes to work with ImageOps.expand() [#​9138](python-pillow/Pillow#9138) \[[@​radarhere](https://github.com/radarhere)]
- Fixed loading rotated PCD images [#​9177](python-pillow/Pillow#9177) \[[@​radarhere](https://github.com/radarhere)]
- Cast before shifting bits [#​9236](python-pillow/Pillow#9236) \[[@​radarhere](https://github.com/radarhere)]
- Use \_ensure\_mutable() [#​9200](python-pillow/Pillow#9200) \[[@​radarhere](https://github.com/radarhere)]
- Seek past BeginBinary data when parsing EPS metadata [#​9211](python-pillow/Pillow#9211) \[[@​radarhere](https://github.com/radarhere)]
- Do not allow negative offset with memory mapping [#​9235](python-pillow/Pillow#9235) \[[@​radarhere](https://github.com/radarhere)]
- Clear C image when MPO frame image size changes [#​9208](python-pillow/Pillow#9208) \[[@​radarhere](https://github.com/radarhere)]
- When converting RGBA to PA, use RGB to P quantization [#​9153](python-pillow/Pillow#9153) \[[@​radarhere](https://github.com/radarhere)]
- Remove use of sudo from libavif and raqm install scripts [#​9231](python-pillow/Pillow#9231) \[[@​radarhere](https://github.com/radarhere)]
- Load image palette into Python after converting to PA [#​9152](python-pillow/Pillow#9152) \[[@​radarhere](https://github.com/radarhere)]
- Check all reserved bytes in FLI header [#​9183](python-pillow/Pillow#9183) \[[@​radarhere](https://github.com/radarhere)]
- Limit length of read operation in ImageFont.\_load\_pilfont\_data() [#​9181](python-pillow/Pillow#9181) \[[@​radarhere](https://github.com/radarhere)]
- Python 3.9 wheels are no longer needed [#​9214](python-pillow/Pillow#9214) \[[@​radarhere](https://github.com/radarhere)]
- Remove unused Image \_expand() [#​9227](python-pillow/Pillow#9227) \[[@​radarhere](https://github.com/radarhere)]
- Updated FreeType to 2.14.1 on Windows [#​9206](python-pillow/Pillow#9206) \[[@​radarhere](https://github.com/radarhere)]
- Only deprecate fromarray mode for changing data types [#​9063](python-pillow/Pillow#9063) \[[@​radarhere](https://github.com/radarhere)]
- Fix reading RGB and CMYK IPTC images [#​9088](python-pillow/Pillow#9088) \[[@​radarhere](https://github.com/radarhere)]
- Install zstd for libtiff on Linux wheels [#​9097](python-pillow/Pillow#9097) \[[@​radarhere](https://github.com/radarhere)]
- Improve WalImageFile test coverage [#​9189](python-pillow/Pillow#9189) \[[@​radarhere](https://github.com/radarhere)]
- ImageMorph operations must have length 1 [#​9102](python-pillow/Pillow#9102) \[[@​radarhere](https://github.com/radarhere)]
- Set correct size for rotated PCD images after opening [#​9086](python-pillow/Pillow#9086) \[[@​radarhere](https://github.com/radarhere)]
- Simplify check for GBR width and height [#​9089](python-pillow/Pillow#9089) \[[@​radarhere](https://github.com/radarhere)]
- Make in parallel when building libjpeg-turbo and openjpeg for macOS and Linux wheels [#​9144](python-pillow/Pillow#9144) \[[@​radarhere](https://github.com/radarhere)]
- Fix ZeroDivisionError in ImageStat [#​9105](python-pillow/Pillow#9105) \[[@​radarhere](https://github.com/radarhere)]
- When deleting EXIF IFD tag, delete IFD data [#​9083](python-pillow/Pillow#9083) \[[@​radarhere](https://github.com/radarhere)]
- Allow alpha\_composite to use LA images [#​9066](python-pillow/Pillow#9066) \[[@​radarhere](https://github.com/radarhere)]
- Improve \_accept length check [#​9170](python-pillow/Pillow#9170) \[[@​radarhere](https://github.com/radarhere)]
- Do not set core to DeferredError [#​9166](python-pillow/Pillow#9166) \[[@​radarhere](https://github.com/radarhere)]
- Use macos-14 for iOS arm64 simulator [#​9161](python-pillow/Pillow#9161) \[[@​radarhere](https://github.com/radarhere)]
- Make in parallel when building brotli and libavif for macOS and Linux wheels [#​9142](python-pillow/Pillow#9142) \[[@​radarhere](https://github.com/radarhere)]
- Use Python 3.14 for gcc problem matching [#​9134](python-pillow/Pillow#9134) \[[@​radarhere](https://github.com/radarhere)]
- Add libavif support for iOS [#​9117](python-pillow/Pillow#9117) \[[@​freakboy3742](https://github.com/freakboy3742)]
- Restore pyroma test for iOS [#​9116](python-pillow/Pillow#9116) \[[@​freakboy3742](https://github.com/freakboy3742)]
- Use correct bands for two band histograms [#​9054](python-pillow/Pillow#9054) \[[@​radarhere](https://github.com/radarhere)]
- Add support for Python 3.14 [#​9120](python-pillow/Pillow#9120) \[[@​hugovk](https://github.com/hugovk)]
- Drop support for PyPy3.10 [#​9112](python-pillow/Pillow#9112) \[[@​radarhere](https://github.com/radarhere)]
- Add parallel compile from pybind11 [#​8990](python-pillow/Pillow#8990) \[[@​wiredfool](https://github.com/wiredfool)]
- Remove unused \_save\_cjpeg [#​9084](python-pillow/Pillow#9084) \[[@​radarhere](https://github.com/radarhere)]
- Ensure dynamic libjpeg libraries are not linked [#​9081](python-pillow/Pillow#9081) \[[@​freakboy3742](https://github.com/freakboy3742)]
- Remove reference to libtiff 3.x [#​9072](python-pillow/Pillow#9072) \[[@​radarhere](https://github.com/radarhere)]
- Restored manylinux2014 wheels [#​9059](python-pillow/Pillow#9059) \[[@​radarhere](https://github.com/radarhere)]
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNDkuMiIsInVwZGF0ZWRJblZlciI6IjQxLjE0OS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL2RlcGVuZGVuY2llcyJdfQ==-->
Reviewed-on: https://git.tainton.uk/repos/webexmemebot/pulls/519
Co-authored-by: renovate[bot] <renovate-bot@git.tainton.uk>
Co-committed-by: renovate[bot] <renovate-bot@git.tainton.uk>
This improves/adds length checks in _accept for several plugins.
Here are two examples of the errors this fixes.