Pillow icon indicating copy to clipboard operation
Pillow copied to clipboard

Add support for Python 3.11

Open hugovk opened this issue 3 years ago • 4 comments

Tracking issue for getting the pieces into place to support Python 3.11 in Pillow 9.3.0, scheduled for 2022-10-XX.

Non-blockers

  • [ ] Wait for 3.11.0 on GHA: https://github.com/actions/setup-python/issues/TODO
    • [ ] Replace 3.11-dev with 3.11 on GHA
    • 3.11-dev should pick up 3.11.0 on-flight fairly soon after release, and be added to cached images later
  • [ ] Wait for 3.11.0 on AppVeyor: https://github.com/appveyor/ci/issues/TODO
    • [ ] Replace 3.10 with 3.11 on AppVeyor
  • [ ] 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)

hugovk avatar Sep 13 '22 10:09 hugovk

  • 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.

hugovk avatar Sep 13 '22 10:09 hugovk

  • 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,

radarhere avatar Sep 13 '22 10:09 radarhere

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.)

hugovk avatar Sep 13 '22 11:09 hugovk

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.

nulano avatar Sep 13 '22 13:09 nulano

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

hugovk avatar Oct 25 '22 18:10 hugovk

Looks like the manylinux wheel issue was closed half an hour ago.

wiredfool avatar Oct 25 '22 19:10 wiredfool

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]

hugovk avatar Oct 26 '22 11:10 hugovk

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.

radarhere avatar Oct 27 '22 01:10 radarhere

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! 🚀

hugovk avatar Oct 27 '22 12:10 hugovk

To anyone watching this issue, Pillow 9.3.0 has now been released, so the latest wheels support Python 3.11.

radarhere avatar Oct 29 '22 21:10 radarhere

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.

hugovk avatar Nov 13 '22 22:11 hugovk

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.

radarhere avatar Nov 22 '22 22:11 radarhere