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

Enable Python 3.10 wheels. #245

Closed
wants to merge 1 commit into from
Closed

Enable Python 3.10 wheels. #245

wants to merge 1 commit into from

Conversation

QuLogic
Copy link
Contributor

@QuLogic QuLogic commented Aug 20, 2021

From the 3.10 release notes:

There will be no ABI changes from this point forward in the 3.10 series and the goal is that there will be as few code changes as possible.

So it is, roughly-speaking, safe to start building 3.10 wheels, but it seems we need to wait for pillow: python-pillow/Pillow#5569

I managed to fix a bug in the CI setup, but there's still something missing to get Pillow to load correctly in all tests.

@QuLogic
Copy link
Contributor Author

QuLogic commented Aug 20, 2021

It appears I was able to fix the build stages, but the testing is stymied by lack of Pillow wheels. Not sure if you want to work around that or wait for them.

@jbarlow83
Copy link
Member

Thanks for this. I'd prefer to wait for Pillow's 3.10 wheels to be released; we have time since Python 3.10 won't be released until October.

@codecov
Copy link

codecov bot commented Sep 1, 2021

Codecov Report

Merging #245 (c9ebb78) into master (74971b6) will decrease coverage by 0.15%.
The diff coverage is n/a.

❗ Current head c9ebb78 differs from pull request most recent head e53909e. Consider uploading reports for the commit e53909e to get more accurate results
Impacted file tree graph

@@            Coverage Diff             @@
##           master     #245      +/-   ##
==========================================
- Coverage   96.59%   96.43%   -0.16%     
==========================================
  Files          37       37              
  Lines        3877     3788      -89     
==========================================
- Hits         3745     3653      -92     
- Misses        132      135       +3     
Impacted Files Coverage Δ
src/qpdf/parsers.cpp 96.59% <0.00%> (-1.53%) ⬇️
src/qpdf/object.cpp 95.91% <0.00%> (-1.47%) ⬇️
src/pikepdf/models/__init__.py 94.73% <0.00%> (-0.27%) ⬇️
src/pikepdf/models/metadata.py 92.50% <0.00%> (-0.14%) ⬇️
src/qpdf/pikepdf.h 95.65% <0.00%> (-0.10%) ⬇️
src/qpdf/pikepdf.cpp 98.70% <0.00%> (-0.02%) ⬇️
src/pikepdf/_methods.py 99.29% <0.00%> (-0.01%) ⬇️
src/qpdf/parsers.h 100.00% <0.00%> (ø)
src/pikepdf/jbig2.py 100.00% <0.00%> (ø)
src/pikepdf/__init__.py 100.00% <0.00%> (ø)
... and 6 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 74971b6...e53909e. Read the comment docs.

@QuLogic
Copy link
Contributor Author

QuLogic commented Sep 3, 2021

It looks like Pillow has 3.10 wheels now, but for some reason, 3.6 doesn't load it and uses the sdist again https://github.com/QuLogic/pikepdf/runs/3501350170?check_suite_focus=true

Maybe everything isn't fully mirrored yet and I should wait a few hours.

@QuLogic
Copy link
Contributor Author

QuLogic commented Sep 3, 2021

Also Windows fails building lxml for Python 3.10, which apparently has manylinux wheels, but not win32 or win64.

@hugovk
Copy link

hugovk commented Sep 3, 2021

Maybe something to do with upgrading from manylinux1 to manylinux2014?

@jbarlow83
Copy link
Member

jbarlow83 commented Sep 3, 2021

@QuLogic Thanks for investigating. It looks to me like Pillow has moved to manylinux2014 and has stopped supporting manylinux2010. For what it's worth I complained that they should consider this is a breaking change and should bump their major version number.

Setting manylinux-x86_64-image = "manylinux2014" will make the Linux build pass on Python 3.10. As you found lxml doesn't have Windows yet.

That said, since pikepdf 3.x is just around the corner, I am strongly considering moving to manylinux2014 and dropping Python 3.6 (since it is two months from end of life) to avoid further drama. Maybe also switching from C++14 to 17.

@jbarlow83
Copy link
Member

@hugovk I believe it does have to do with the switch to manylinux2014 - reported at python-pillow/Pillow#5701

@jbarlow83 jbarlow83 marked this pull request as ready for review October 5, 2021 07:06
@jbarlow83
Copy link
Member

I've done further work on this - very like we'll need to drop Python 3.6 support and release pikepdf 4.0.
Also dropping manylinux2010 wheels and C++14 as mentioned above.

Currently everything is ready to go except that we are waiting for lxml to release Python 3.10 wheels, especially for Windows.

@jbarlow83
Copy link
Member

Implemented in pikepdf 4.0; many thanks for this contribution which kicked off Python 3.10.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants