cmake-python-distributions icon indicating copy to clipboard operation
cmake-python-distributions copied to clipboard

Packaging python metadata for downstream

Open LecrisUT opened this issue 1 year ago • 5 comments
trafficstars

In Fedora many of the dependencies are auto-detected via %pyproject_buildrequires and sometimes cmake pinning is included in a projects [build-system].

Just to make such packaging smoother it would be nice to have a way to generate only the python metadata (and python-only files) so that can be packaged in cmake. This most likely would require revisiting scikit-build-cli.

On this repo side, there is only 1 requirement, to make sure release candidate are tagged and released close to the release of cmake upstream.

LecrisUT avatar Apr 19 '24 05:04 LecrisUT

The fix is to not add cmake to build-system, and maybe specifically filter 'cmake', 'ninja', 'patchelf', and any other PyPI redistrubtions with the auto-detection tool. They are not meant to be distributed outside of PyPI.

Duplicate of #80 and others, though this is more focused on redistributors, which would keep the versions in sync, at least. See my comment on #511.

One other problem with providing these metadata files is that it can cause some systems to add a Python dependency when one isn't needed (Conda-forge's ninja and cmake packages would then require Python, while they don't now), and it can also tie this to one version of Python (it would in Homebrew), when cmake and ninja do not require Python.

henryiii avatar Jun 26 '24 06:06 henryiii

Beyond the build-system, my worry is if the python files gain more functionalities like https://github.com/scikit-build/cmake-python-distributions/issues/36 such that it is used beyond the building of python packages.

One other problem with providing these metadata files is that it can cause some systems to add a Python dependency when one isn't needed

Oh good point. On distro packages it is possible to tune the dependencies of each sub-package. I guess you can mimic that behavior by splitting the packages, but that would lead desyncing and other issues.

LecrisUT avatar Jun 26 '24 06:06 LecrisUT

Additional functionally will not be added to this package. Scikit-build-core or other packages support additional functionality. This is only a redistribution.

henryiii avatar Jun 26 '24 06:06 henryiii

Ok, that's reassuring. Could the relevant feature requests be closed?

LecrisUT avatar Jun 26 '24 07:06 LecrisUT

Also, maybe adding some notes/warning on the README such that people do not start using/relying on the python files here, and instead use other tools that check the availability of system cmake first

LecrisUT avatar Jun 26 '24 07:06 LecrisUT