-
-
Notifications
You must be signed in to change notification settings - Fork 173
Use Cython 3.1 universally #1514
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
Conversation
CodSpeed Performance ReportMerging #1514 will degrade performances by 57.73%Comparing Summary
Benchmarks breakdown
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
❌ Your project status has failed because the head coverage (98.07%) is below the target coverage (100.00%). You can increase the head coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #1514 +/- ##
==========================================
+ Coverage 99.62% 99.63% +0.01%
==========================================
Files 29 29
Lines 5798 5795 -3
Branches 265 265
==========================================
- Hits 5776 5774 -2
+ Misses 19 18 -1
Partials 3 3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
@bdraco is this a legit coverage hit? |
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.
Pull Request Overview
This PR updates the project to use Cython 3.1 universally while removing obsolete requirement files and related conditional dependency handling. Key changes include updating Cython version in requirement files and build backend, deleting test-pure and cython-freethreading requirements, and simplifying the CI/CD configuration.
Reviewed Changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated no comments.
Show a summary per file
File | Description |
---|---|
requirements/test.txt | Updated to include additional test dependencies and reference cython.txt |
requirements/test-pure.txt | Removed redundant testing requirements |
requirements/test-freethreading.txt | Removed obsolete freethreading testing requirements |
requirements/cython.txt | Updated Cython version from 3.0.12 to 3.1.1 |
requirements/cython-freethreading.txt | Removed obsolete Cython freethreading requirement |
pyproject.toml | Removed override configuration related to Cython freethreading |
packaging/pep517_backend/_backend.py | Updated Cython dependency handling by removing the special branch for GIL-disabled builds |
CHANGES/1514.packaging.rst | Documented the universal update to Cython 3.1 |
.github/workflows/ci-cd.yml | Simplified dependency reference for CI/CD builds |
Comments suppressed due to low confidence (2)
packaging/pep517_backend/_backend.py:377
- The removal of the dedicated branch for GIL-disabled builds simplifies dependency management, but please confirm that builds relying on the prior behavior are properly handled with Cython 3.1 universally.
elif sysconfig.get_config_var('Py_GIL_DISABLED'):
.github/workflows/ci-cd.yml:262
- Changing the dependency specification from a conditional formulation to a fixed 'requirements/test.txt' may affect build configurations that previously used freethreading tests; please verify that these changes align with the intended build strategy.
requirements/test.txt
Will check it when I'm back at my desk |
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.
LGTM functionally, but it'd be good to figure out the benchmark thing. I'll let @bdraco decide whether this is mergeable.
At least for some of them it's now including the Cython tracing overhead and the performance regression is not real. It will take me a few hours to investigate the rest of them. I'm at the OHF summit in Dublin this week so I'm quite time limited and trying to only focus on blockers and bugs this week |
I will do a deep dive next week when I'm back in Texas |
aio-libs/frozenlist#658 seems to imply we have an issue with production wheels using line tracing |
Here are the benchmark results with line tracing disabled against the previous release The problem is we are benchmarking with line tracing for PRs and no line tracing for releases. We should be benchmarking what we are actually going to release. I will make a PR to fix that. |
@lysnikolaou shouldn't we also use the |
So after much investigation it turns out we are shipping wheels with linetrace on #1521 will fix this. |
We're doing that already in the |
@lysnikolaou oh, I see… I wonder if it'd be a good idea to centralize those settings through https://github.com/aio-libs/yarl/blob/3871d2c/pyproject.toml#L22-L37 so that individual pyx files wouldn't need a copy of that comment. |
Yeah, that's a good point. This wasn't possible up until now, because we were using different versions of Cython that did not have support for the |
What do these changes do?
Are there changes in behavior for the user?
No.
Checklist