Pillow
Pillow copied to clipboard
Add support for Python 3.11
Tracking issue for getting the pieces into place to support Python 3.11 in Pillow 9.3.0, scheduled for 2022-10-XX.
- [ ] Wait for 3.11.0, expected Monday, 2022-10-24
- [ ] Update https://github.com/python-pillow/pillow-wheels
- [x] (#6441, #6433) Add Trove classifier, update
setup.pyversion check, add totox.ini, update Python support table - [ ] Update CI targets table
Non-blockers
- [ ] Wait for 3.11.0 on GHA: https://github.com/actions/setup-python/issues/TODO
- [ ] Replace
3.11-devwith3.11on GHA 3.11-devshould pick up 3.11.0 on-flight fairly soon after release, and be added to cached images later
- [ ] Replace
- [ ] Wait for 3.11.0 on AppVeyor: https://github.com/appveyor/ci/issues/TODO
- [ ] Replace
3.10with3.11on AppVeyor
- [ ] Replace
- [ ] Wait for 3.11.0 on Travis CI (https://github.com/python-pillow/pillow-wheels): https://travis-ci.community/t/TODO
- this is base Python, we use Docker for building wheels
(3.10 issue for comparison: https://github.com/python-pillow/Pillow/issues/5569)
-
Does "Update https://github.com/python-pillow/pillow-wheels" have any external dependencies, other than the 3.11.0 release itself? Can we do things like https://github.com/python-pillow/pillow-wheels/pull/324 so we don't need to wait for multibuild updates?
-
Is "Wait for 3.11.0 on AppVeyor" also a non-blocker? We're already testing 3.11 quite widely on Windows on GitHub Actions.
- Does "Update https://github.com/python-pillow/pillow-wheels" have any external dependencies, other than the 3.11.0 release itself? Can we do things like Updated Python 3.11 to rc2 pillow-wheels#324 so we don't need to wait for multibuild updates?
pillow-wheels#324 updates the macOS Python version so that we don't need to wait for multibuild, yes. The Linux Python versions though, come from images like https://quay.io/repository/pypa/manylinux_2_28_x86_64,
Good stuff, and those images are published by https://github.com/pypa/manylinux/ who should be quick about updating. (And it looks like they have automation too.)
Is "Wait for 3.11.0 on AppVeyor" also a non-blocker? We're already testing 3.11 quite widely on Windows on GitHub Actions.
Yes. AppVeyor is used as both a backup in case GHA stops working, as well as to make sure the Windows builds are not specific to GHA and can be done elsewhere also.
Main thing we're missing here is manylinux updating from 3.11.0rc2 to 3.11.0 final:
For example:
- https://github.com/hugovk/pillow-wheels/actions/runs/3321491929/jobs/5489216523#step:4:6696
Tracking issue:
- https://github.com/pypa/manylinux/issues/1317
Tracking issues for non-blocking things:
- https://github.com/actions/setup-python/issues/531 (draft PR: https://github.com/python-pillow/Pillow/pull/6686)
- https://github.com/appveyor/ci/issues/3844
- https://travis-ci.community/t/please-add-image-for-python-3-11/13384
Looks like the manylinux wheel issue was closed half an hour ago.
Hmm, while linux / 3.11 manylinux2014 i686 is picking up the new version:
Python 3.11.0 (main, Oct 24 2022, 19:56:01) [GCC 7.5.0]
But linux / 3.11 manylinux2014 x86_64, linux / 3.11 manylinux_2_28 x86_64 and linux / 3.11 musllinux_1_1 x86_64 are still on RC1 (and there was also an RC2):
Python 3.11.0rc1 (main, Aug 8 2022, 18:31:54) [GCC 9.4.0]
That's because the i686 3.11 job uses my docker test image, whereas the others don't. The wheels are being built with Python 3.11 on those other environments, just not tested on them. I've created https://github.com/python-pillow/pillow-wheels/pull/337 to fix that.
https://github.com/multi-build/multibuild/pull/485, https://github.com/multi-build/docker-images/pull/37 and https://github.com/python-pillow/pillow-wheels/pull/337 are merged, so the important 3.11 things are now ready! 🚀
To anyone watching this issue, Pillow 9.3.0 has now been released, so the latest wheels support Python 3.11.
All the important things are in place and it could take Travis CI a long time to update (was ~3 months last time).
We can just update Travis as and when, no need to keep this open as a tracking issue.
Travis CI has updated to Python 3.11, and https://github.com/python-pillow/pillow-wheels/pull/345 has added it to pillow-wheels.
So that is everything in our checklist.