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

DNM: Ensure manual builds use at least the same minimum Cython version used to build our wheels #9876

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

bdraco
Copy link
Member

@bdraco bdraco commented Nov 14, 2024

#9871 (reply in thread) showed some warnings/errors that are fixed in newer Cython. We currently don't specify a minimum Cython version which means manual builds can result in broken builds if the Cython version being used for the build is too old.

This PR should not merge until we confirm this is the issue in the discussion

@bdraco bdraco added the backport-3.11 Trigger automatic backporting to the 3.11 release branch by Patchback robot label Nov 14, 2024
@bdraco bdraco changed the title Ensure manual builds use the same Cython version used to build our wheels DNM: Ensure manual builds use the same Cython version used to build our wheels Nov 14, 2024
Copy link

codspeed-hq bot commented Nov 14, 2024

CodSpeed Performance Report

Merging #9876 will not alter performance

Comparing manual_builds_cython (2f3ef84) with master (4adb061)

Summary

✅ 24 untouched benchmarks

@bdraco bdraco changed the title DNM: Ensure manual builds use the same Cython version used to build our wheels DNM: Ensure manual builds at least the same minimum Cython version used to build our wheels Nov 14, 2024
Copy link

codecov bot commented Nov 14, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 98.71%. Comparing base (4adb061) to head (2f3ef84).
Report is 1 commits behind head on master.

✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #9876   +/-   ##
=======================================
  Coverage   98.71%   98.71%           
=======================================
  Files         118      118           
  Lines       36294    36309   +15     
  Branches     4315     4316    +1     
=======================================
+ Hits        35826    35841   +15     
  Misses        315      315           
  Partials      153      153           
Flag Coverage Δ
CI-GHA 98.60% <ø> (+<0.01%) ⬆️
OS-Linux 98.28% <ø> (+<0.01%) ⬆️
OS-Windows 96.09% <ø> (+<0.01%) ⬆️
OS-macOS 97.36% <ø> (-0.01%) ⬇️
Py-3.10.11 97.21% <ø> (-0.01%) ⬇️
Py-3.10.15 97.77% <ø> (+<0.01%) ⬆️
Py-3.11.10 97.81% <ø> (+<0.01%) ⬆️
Py-3.11.9 97.26% <ø> (-0.02%) ⬇️
Py-3.12.7 98.35% <ø> (+<0.01%) ⬆️
Py-3.13.0 98.34% <ø> (+<0.01%) ⬆️
Py-3.9.13 97.13% <ø> (-0.01%) ⬇️
Py-3.9.20 97.69% <ø> (+<0.01%) ⬆️
Py-pypy7.3.16 97.29% <ø> (-0.01%) ⬇️
VM-macos 97.36% <ø> (-0.01%) ⬇️
VM-ubuntu 98.28% <ø> (+<0.01%) ⬆️
VM-windows 96.09% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@bdraco bdraco changed the title DNM: Ensure manual builds at least the same minimum Cython version used to build our wheels DNM: Ensure manual builds use at least the same minimum Cython version used to build our wheels Nov 14, 2024
@@ -1,6 +1,7 @@
[build-system]
requires = [
"setuptools >= 46.4.0",
"Cython >= 3.0.11",
Copy link
Member

@webknjaz webknjaz Nov 14, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This won't do anything since the current packaging implementation in aiohttp differs from the other libs. setuptools is configured to build from C-files. And those C-files have to exist. So the contributors have to call cythonize. And we call it when publishing. The end-users either get pre-built wheels or hit the sdist that contains those C-files.
So everything is dependent on whatever https://github.com/aio-libs/aiohttp/blob/9e3a328/requirements/cython.txt outputs at the time of release (this is also known to cause problems with older Cython-produced C-files not being compatible with bleeding-edge CPythons).
At some point, I'd like to change the build process but this is how things are right now.

Hence, we shouldn't add this here as it's never getting invoked in the current process.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also I wonder how build will go on Python distro where Cython is not available?
python for java, .net, whatever...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cython is not the problem. It can convert PYX into C with its pure-python code. I'd worry about the following step (calling GCC/CLANG).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport-3.11 Trigger automatic backporting to the 3.11 release branch by Patchback robot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants