-
Notifications
You must be signed in to change notification settings - Fork 69
Adopt pyproject.toml and Meson to build Python extension #148
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
1605b3c to
31b17c0
Compare
|
Hi, what more I need to do to get this PR merged? |
Just for somebody to find the time to review it again. |
|
Please allocate some time for this PR. |
|
@hongquan Thanks for your contribution (and patience). |
|
This looks great! Hopefully there'll be a new release cut and deployed to PyPi with this PR now merged so the PyPi project has a project description (readme) |
|
A new release is planned after the current PR are addressed. |
|
@behrmann Any planned release upcoming? I'm hitting the same issue trying to install this package using UV on non-linux dev machines. I think the next release that includes this merged PR will solve the problem |
Motivation
I have a Django web project, which targets Linux server but some team members use MacOS for development. We use
uvas Python package manager. In the "dependency resolution" phase,uvtried to findsystemd-pythonmetadata but couldn't get what it wanted from the setup.py file. It had to buildsystemd-pythonwheel to get the metadata, then failed on MacOS machines.What this PR does
Adopt new pyproject.toml file, in place of setup.py. For building C code, I adopt Meson, which has meson-python as a build backend so that
pipor any other modern Python package manager can know how to build the C-based extensions.Because this new build process is done in an isolated environment and leave no *.so files, the Makefile is also updated to work with this new build method.
This is the rework of #147, but split to smaller steps.
At this step, I only make these 4 jobs work:
I don't move the other jobs from Makefile to Meson.
I also move the "systemd" folder (containing C & Py sources) to
srcfolder, to prevent importing by accident when standing at the top-level folder. This is also a common practice for many other Python projects.