Only enable line tracing when building with Cython tracing#660
Merged
Only enable line tracing when building with Cython tracing#660
Conversation
This PR modifies the build backend to dynamically enable Cython line tracing only when explicitly requested via the `with-cython-tracing=true` config setting. Previously, having `linetrace = "True"` in pyproject.toml was causing build issues for users (#658) and makes our production wheels almost half as fast. Now, line tracing is opt-in: - Regular builds: `pip install .` (no line tracing) - Tracing builds: `pip install . --config-setting=with-cython-tracing=true` (enables line tracing) When tracing is requested, the build backend automatically adds the `linetrace=True` and `profile=True` Cython directives and sets the appropriate C compiler flags. <!-- Outline any notable behaviour for the end users. --> - Regular users will no longer encounter build issues related to line tracing being enabled by default - Developers who need line tracing must now explicitly enable it using `--config-setting=with-cython-tracing=true` - The `YARL_CYTHON_TRACING` environment variable can also be used as an alternative to the config setting <!-- Are there any issues opened that will be resolved by merging this change? --> <!-- Remember to prefix with 'Fixes' if it should close the issue (e.g. 'Fixes #123'). --> - [x] I think the code is well written - [ ] Unit tests for the changes exist - [ ] Documentation reflects the changes
bdraco
commented
Jun 9, 2025
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #660 +/- ##
==========================================
+ Coverage 94.14% 94.21% +0.07%
==========================================
Files 10 10
Lines 632 640 +8
Branches 46 46
==========================================
+ Hits 595 603 +8
Misses 13 13
Partials 24 24
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:
|
This was referenced Sep 11, 2025
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What do these changes do?
Only enable line tracing when building with Cython tracing
This PR modifies the build backend to dynamically enable Cython line tracing only when explicitly requested via the
with-cython-tracing=trueconfig setting. Previously, havinglinetrace = "True"in pyproject.toml was causing build issues for users (#658) and makes our production wheels almost half as fast.Now, line tracing is opt-in:
pip install .(no line tracing)pip install . --config-setting=with-cython-tracing=true(enables line tracing)When tracing is requested, the build backend automatically adds the
linetrace=Trueandprofile=TrueCython directives and sets the appropriate C compiler flags.Are there changes in behavior for the user?
--config-setting=with-cython-tracing=trueFROZENLIST_CYTHON_TRACINGenvironment variable can also be used as an alternative to the config settingRelated issue number
Checklist