Adopt pyproject.toml and Meson to build Python extension#148
Conversation
1605b3c to
31b17c0
Compare
June 30, 2025 11:58
|
Hi, what more I need to do to get this PR merged? |
Sorry, something went wrong.
Just for somebody to find the time to review it again. |
Sorry, something went wrong.
|
Please allocate some time for this PR. |
Sorry, something went wrong.
b0acce4
into
systemd:main
Oct 3, 2025
|
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) |
Sorry, something went wrong.
|
A new release is planned after the current PR are addressed. |
Sorry, something went wrong.
|
@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 |
Sorry, something went wrong.
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.