bioconda-recipes icon indicating copy to clipboard operation
bioconda-recipes copied to clipboard

genomedata

Open siebrenf opened this issue 1 year ago • 8 comments

Genomedata (still) does not build on Conda. I found two issues with the build process:

  • the hdf5 installation is not found by pkg-conf
  • the encoding of genomedata-load-data is not recognized by tokenize.

I circumvented the hdf5 not found error with the patch. Without it, the develop tools are not loaded in I believe. To fix this for real, the package's setup.py would need to be updated to work with a conda installed hdf5. The encoding problem is beyond my expertise, and likely on the side of the package.

Pinging package creators to keep you in the know @michaelmhoffman, @EricR86, @jayhesselberth

siebrenf avatar Sep 09 '22 14:09 siebrenf

@bioconda-bot please fetch artifacts

daler avatar Sep 11 '22 17:09 daler

No artifacts found on the most recent Azure build. Either the build failed, the artifacts have were removed due to age, or the recipe was blacklisted/skipped.

BiocondaBot avatar Sep 11 '22 17:09 BiocondaBot

Whoops, no need to check for artifacts since it's still blacklisted.

Do you know if other parts of the package (aside from the genomedata-load-data) work with the patch that prevents hdf5 error?

daler avatar Sep 11 '22 17:09 daler

I'm sure the patch would work. The removed code included a pass statement in case pkg-conf didn't find hfd5 (the except doesn't include the error we get with Conda installed hdf5):

except CalledProcessError:
    # CalledProcessError occurs when hdf5 is not found by pkg-config
    pass

Their master branch indicates the removed code is optional: # Attempt to get HDF5 development directories through pkg-config

siebrenf avatar Sep 12 '22 15:09 siebrenf

This seems like a good approach to the mess that is trying to locate HDF5 development libraries. For a while I've been attempting to figure out a catch-all solution to this issue regardless of environment/platform but a conda patch seems like the sanest solution here.

My only recommendation is to remove pkg-config from the build requirements in meta.yaml. If it doesn't break the build I'll review/approve.

Thank you so much for your work on this.

EricR86 avatar Sep 13 '22 14:09 EricR86

On second thought, why not just remove pkg-config from the build section in meta.yaml and skip the patch altogether? Wouldn't it have the same effect? This would also be more stable for future changes to setup.py if necessary.

EricR86 avatar Sep 13 '22 14:09 EricR86

That would work, unless if the user installed pkg-config already...

A clean solution would be define a flag like CONDA_INSTALL = False in your setup.py, and overwrite this with a patch file here. That way you can make modular code of variable length, while the patch would stay the same and keep working. Or perhaps check for the presence of conda specific environmental variables.

siebrenf avatar Sep 14 '22 13:09 siebrenf

I'm trying to avoid a continual arms race of environment/system specifics in the setup.py. I could probably work up a solution for each environment but it would be potentially costly to maintain.

EricR86 avatar Sep 14 '22 14:09 EricR86