Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Python 3.10 #5569

Open
6 of 9 tasks
hugovk opened this issue Jul 1, 2021 · 11 comments
Open
6 of 9 tasks

Add support for Python 3.10 #5569

hugovk opened this issue Jul 1, 2021 · 11 comments
Milestone

Comments

@hugovk
Copy link
Member

@hugovk hugovk commented Jul 1, 2021

Tracking issue for getting the pieces into place to support Python 3.10 in Pillow 8.4.0, scheduled for 2020-10-15.

(3.9 issue for comparison: #4953)

@wiredfool
Copy link
Member

@wiredfool wiredfool commented Aug 6, 2021

I've seen this mentioned elsewhere and it makes sense -- Shipping a py 3.10 compatible/tagged wheel before the actual release can help with other libraries sorting their compatibility. It could reduce the support load here as well, as we wouldn't get the confusion from people attempting to compile for 3.10 in the window between it coming out and us (well, you) getting the new release out. This assumes that we can run the RC in the testing setup, and I'm not 100% clear that that's actually the case.

In the unlikely event that the 3.10 RC differs from 3.10 final in a significant manner, we can roll a point release.

@hugovk hugovk pinned this issue Aug 9, 2021
@hugovk
Copy link
Member Author

@hugovk hugovk commented Aug 9, 2021

We have an 11 day buffer between 3.10.0 final release and Pillow release, and I was going to suggest doing the Pillow release as soon as we're actually ready, before the end of that buffer.

But yes, sounds good to put out RC wheels first. We've already been testing this repo against 3.10 on GHA.

What do we need?

Windows

https://www.lfd.uci.edu/~gohlke/pythonlibs/#pillow already has 3.10 wheels for the newest Pillow 8.3.1, so we could upload those right away (or first check/ask for a build against RC1).

macOS and Linux

Update https://github.com/python-pillow/pillow-wheels for 3.10, first we need https://github.com/matthew-brett/multibuild to add support?

multibuild depends on https://github.com/pypa/manylinux which already supports 3.10.0 RC1: pypa/manylinux#1159.

@radarhere
Copy link
Member

@radarhere radarhere commented Aug 27, 2021

@hugovk
Copy link
Member Author

@hugovk hugovk commented Aug 27, 2021

Great, thanks for those!

What's the easiest way for us to proceed? Do we need to make some code changes before creating wheels, and how best to trigger the wheel build process?

Perhaps a point release (8.3.2) with #5570 (or a subset)? And anything else?

@radarhere
Copy link
Member

@radarhere radarhere commented Aug 27, 2021

The wheels have actually already been generated. From https://github.com/python-pillow/pillow-wheels/actions/runs/1170567136 I can download the artifacts. Here are just the Python 3.10 wheels - Pillow-8.3.1-cp310-cp310.zip.

#5570 is needed to get rid of the exit warning on Windows though, so 8.3.2 probably sounds like the best way to go.

If we're looking for 8.3.0 problems to fix, then I would suggest #5588, since that problem was introduced in #5514, and #5599 since that adds documentation changes missing from #5552.

@hugovk
Copy link
Member Author

@hugovk hugovk commented Aug 27, 2021

Yep, fine by me to include those regression fixes too.

@nulano
Copy link
Contributor

@nulano nulano commented Aug 30, 2021

#5651 fixing the FriBiDi segmentation fault would probably be good to include in a point release also.

@hugovk
Copy link
Member Author

@hugovk hugovk commented Sep 1, 2021

Yep, looks a good candidate for inclusion too, if no objections from others.

I'll put together release notes and I can make a 8.3.2 release this week.

@hugovk
Copy link
Member Author

@hugovk hugovk commented Sep 2, 2021

@hugovk
Copy link
Member Author

@hugovk hugovk commented Oct 12, 2021

Update on 3.10 for the CIs. In short: no release blockers.

  • GitHub Actions: had 3.10 available 12 hours after release. 🥇

  • AppVeyor: appveyor/ci#3741 is in their next-images-update milestone, no ETA, 36% complete. I'm not worried if we don't have this for Friday's release: it's for testing, we're already testing 3.10 on GHA, and we already released 8.3.2 for 3.10 with no issues.

  • Travis CI: no reaction at all from Travis to the request: https://travis-ci.community/t/add-python-3-10/12220. I'm even less worried about this, we use Docker to create those wheels (including 3.10) so it doesn't really matter what Python is on the Travis machine (and 3.10-dev is available).

@hugovk
Copy link
Member Author

@hugovk hugovk commented Oct 15, 2021

Update:

AppVeyor are still in progress with their next-images-update milestone, and no response from Travis CI whatsoever (to the 3.10 ticket, or any other ticket, as far as I can see...).

Not a release blocker, moving this issue to the next milestone.

@hugovk hugovk removed this from the 8.4.0 milestone Oct 15, 2021
@hugovk hugovk added this to the 9.0.0 milestone Oct 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
4 participants