Create wheels from conda-forge packages
This fundable has not been submitted yet.
- [X] This fundable has not been submitted yet.
Motivation
While conda packages offer more packaging flexibility for shared libraries, wheels are sometimes more convenient for some Python-adjacent end-users. There are a number of examples out there following this strategy:
- https://github.com/Unidata/netcdf4-python/blob/master/.github/workflows/cibuildwheel.yml
- https://github.com/pygraphviz/pygraphviz/pull/537
- https://github.com/openmm/openmm-wheels
cc @ocefpaf @isuruf
Expected result
An installable project that can simplify the involved workarounds, possibly available as a Github Actions action so folks can easily create their wheels on CI.
Work items
TBD
References
- https://github.com/conda-incubator/conda-press (revive it?)
- https://github.com/Unidata/netcdf4-python/blob/master/.github/workflows/cibuildwheel.yml
- https://github.com/pygraphviz/pygraphviz/pull/537
- https://github.com/openmm/openmm-wheels
Skills / personnel
- Deep knowledge of library linking across platforms
- Familiar with the intricacies of wheel vendoring
Estimated costs and/or resources needed (optional)
A ballpark figure is around 400h of work.
There is some prior art on this. https://github.com/conda-incubator/conda-press
There is some prior art on this. https://github.com/conda-incubator/conda-press
Conda-press goal is similar but the road to get there is quite different. In the examples above the plan is to use conda-forge non-Python dependencies to build compliant wheels. Conda-press converts conda packages to wheels and breaks the compliance in a few places. That is one of the reasons it was abandoned. It was a hard sell for the ecosystem. Providing community curated dependencies, on the other hand, is easier to get folks into to.
We are currently working on pixi build that could simplify this as well :)