conda-forge / graph-tool-feedstock

A conda-smithy repository for graph-tool.
BSD 3-Clause "New" or "Revised" License
5 stars 7 forks source link

Build wheel and encapsulate with auditwheel #67

Open count0 opened 2 years ago

count0 commented 2 years ago

It would be really nice if together with the conda builds we could generate wheel packages as well, which could be made self-contained with auditwheel (or delocate for macos). This would mean that people could do a pip install graph-tool (and hell would freeze over).

How much would we need to change in the build recipe? Is there any other package that does this?

stuarteberg commented 2 years ago

It would be really nice if together with the conda builds we could generate wheel packages

I agree it would be great if this could be done. It's a natural idea, so surely someone knows what the pitfalls are, if any. I'm afraid I'm not yet familiar with anything related to wheels.

Apparently conda-build is capable of producing a wheel package. It's not clear to me if that only applies to pure-python packages, or if it also supports everything that would be necessary for packages with non-python dependencies. If the former, then some post-processing would be necessary, as you proposed. I suppose one could try adding an additional "output" to the recipe (with type: wheel) and building it locally to see what it produces. For faster results, perhaps it would make sense to experiment with a different recipe, such as h5py. (Looks like that feedstock builds in ~10 minutes.) I'd be curious to see if libhdf5.so ends up in the wheel or not.

Searching through the conda-forge docs didn't yield much except for meeting notes that mention this topic, including a reference to an old discussion that remains unresolved. We'll probably have to ask for help on that thread, or ask in the gitter chat room.

Unfortunately, I don't have time for further investigation any time soon.