conda-forge.github.io icon indicating copy to clipboard operation
conda-forge.github.io copied to clipboard

Create wheels from conda-forge packages

Open jaimergp opened this issue 1 year ago • 3 comments

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.

jaimergp avatar Sep 23 '24 12:09 jaimergp

There is some prior art on this. https://github.com/conda-incubator/conda-press

beckermr avatar Sep 23 '24 13:09 beckermr

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.

ocefpaf avatar Sep 23 '24 13:09 ocefpaf

We are currently working on pixi build that could simplify this as well :)

wolfv avatar Sep 23 '24 15:09 wolfv