-
-
Notifications
You must be signed in to change notification settings - Fork 170
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
proposal: use meson-python as build backend #1452
Conversation
CodSpeed Performance ReportMerging #1452 will degrade performances by 7.55%Comparing Summary
Benchmarks breakdown
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #1452 +/- ##
==========================================
+ Coverage 96.14% 96.70% +0.55%
==========================================
Files 31 26 -5
Lines 5970 5668 -302
Branches 364 348 -16
==========================================
- Hits 5740 5481 -259
+ Misses 204 177 -27
+ Partials 26 10 -16
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
19950c5
to
58546e8
Compare
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.
Thanks for the proposal but I'm not seeking to migrate away from setuptools anytime soon. This adds unnecessary maintenance burden on many levels, including replicating the configuration across many similarly packaged project within and outside aio-libs, keeping all of them in sync, learning several new tools and supporting this long-term (I don't suppose you're offering to support packaging of all aio-libs projects for years to come instead of me, are you?)
Other things I see being problematic:
- another interference change for the downstream packagers
- forcing contributors to install even more tooling
- a bunch of formatting changes all over
- some test matrix changes
- requiring cython to build sdists
- blocking the upgrade path to eventually using setuptools-scm
- losing the reproducibility infrastructure
- unrelated hacks making their way into a packaging PR
- the patch being big to the point of discouraging the reviewers from scheduling looking into it
- no prior discussion / agreement of the need or any acceptance really
So I'm strongly 👎 on this.
Thanks for your response.
You have convinced me here 😆 I wouldn't call it mergeable eigher, it present as a proposal and POC for another option without maintaining a build backend for further discussion. It's indeed a dead end that does not lead to I'll close it. Some misunderstanding: It doesn't not require cpython to build sdist (ninja extra is optional and can be removed), it require cpython only when you compile binary wheel from sdist. on pypy it's will only build a pure python wheel. ths hack on yarl/_quoting_c.pyx is caused by upgrading the cython to 3.1.0a1 to support pyx coverage, and will be fixed in 3.1, which is also not necessary. the formatter change in yarl/_quoting_c.pyi is also not expected not generated by ruff-format, both I'd very much to avoid but necessary to make ci pass at this time. |
I made a typo and meant Cython. What I meant is that the deps listed in Among other things that are lost is the reference conversion in readme+changelog. By the way, there's no Ruff in this project, so those changes are coming from your editor being misconfigured. P.S. There's an effort in Cython to make it easier to use in a declarative way but it doesn't cover all the things I have currently implemented: cython/cython#6305. I hope that one day https://ofek.dev/extensionlib/ will take off and evolve into some sort of standard, which would then improve making C-extensions across different tools in the ecosystem. |
OH, sorry. It's not ruff-format but black. It will infer minimal target python version from pyproject's |
What do these changes do?
This is proposal and POC for using meson-python as build system.
Currently we need to maintain a build backend to support our use-case for pure-python/binary module, dynamic cython flags, which is supported by meson.
uv
uv related change are just for speedup, which can be removed.
coverage hit line changes
coverage dropped ~200 lines from removed packaging directory.
benchmark
benchmark of this PR is misleading becuase it use different compile flags, it should not be compared with master branch.
Cython upgrade:
cython check
Py_UCS4
value range in trace mode,<Py_UCS4>-1
now will throw aValueError
, so a extra return value is need to indicate the_restore_ch
return.The upgrade of cython can be avoided by patch generated c file: 0c4e11c#diff-feabd8e812a476b3324d4cc9144ef3e2ff439b8afda577322f4ba99f6185d63b
Are there changes in behavior for the user?
No, only affect developers.
Related issue number
Checklist