-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Add support for iOS #9030
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 iOS #9030
Conversation
for more information, see https://pre-commit.ci
But this is something that you're planning to do, yes? I'm not personally opposed to patches, but it would be ideal if they were temporary, and I just want to know that the ball is rolling in that direction. Although, #8743 (comment)
|
That's my intention, yes. The current problem is that I need my employer to sign off on me signing Google's CLA, and that process is proving complicated. They don't have any problem with me contributing code to Open Source projects; but they're wary of signing a big contributor agreement with Google.
You won't get any argument from me on this one. If I could see another option, I'd take it. The only thing I'd say in defence of these particular patches is that they're relatively small modifications to the build system of the respective projects; and neither project releases updates very often (Brotli's last two releases were in August 2023 and August 2020; libwebp in Dec 2024 and Apr 2024) |
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
At some point in working on this, you may start scratching your head and wonder where these intermittent TIFF errors are coming from. This is a problem in Pillow main, and #9002 is a possible soluton. |
Thanks for the heads up on that one. I'm also trying to work out why the iOS builds that work fine locally are breaking in CI... 🤔 |
As an aside, that isn't done in this PR. It is was already done in #9010 |
The CI failures at this point seem to fall into two categories:
The iOS wheels, however, are building and passing tests. |
Add some minor simplifications and removes som changes that aren't strictly necessary.
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Would it be helpful if I created a PR with your patch at https://github.com/google/brotli? I would just need you to comment with an explanation and answer any questions. |
Co-authored-by: Andrew Murray <3112309+radarhere@users.noreply.github.com>
Remove pyproject.toml from test-sources, plus tweaks to script syntax and release note.
Looks like everything is back to passing, except for the stray coverage failure which is a false positive, AFAICT. |
In our Windows wheels in main at the moment, we only test NumPy on AMD64 Pillow/.github/workflows/wheels-test.ps1 Lines 18 to 20 in a370209
This PR installs it on Windows x86. However, NumPy is not detected, and a warning is raised - https://github.com/python-pillow/Pillow/actions/runs/15938772420/job/44963636446?pr=9030#step:7:14090
|
Do not install NumPy on Windows x86
With the win32 fix (thanks @radarhere) we're back to a green board - even coverage is happy. |
Woo hoo!! Thanks @freakboy3742 , @radarhere , all! Excited to see this. |
Changes proposed in this pull request:
Upgrades cibuildwheel to 3.0There are two notable/controversial features of this patch.
Firstly, it moves the "check" tests to a separate checks directory. This is necessary because iOS has to use a single
python -m pytest
invocation to run the test suite, and it isn't possible (or, at least, I can't work out how to get it to work) to run all thetest_*
tests in theTests
folder and theTests/check_wheel.py
test with a single invocation, because the two targets overlap.Secondly, it provides patches for
brotli
andlibwebp
. These projects are both managed by Google, and contributing code upstream is complicated because of their CLA process. Until those patches have been contributed, applied, and a release made, these patches are required to build on iOS.