conda / grayskull

Grayskull :skull: - Recipe generator for Conda
https://conda.github.io/grayskull/
Apache License 2.0
321 stars 67 forks source link

Handling non-Python dependencies #261

Open jakirkham opened 3 years ago

jakirkham commented 3 years ago

Is your feature request related to a problem? Please describe.

Some packages have non-Python dependencies, but are otherwise Python packages. For example they may depend on a C/C++/etc. library they link to, they may interface with Java code, or have some other such use cases. As these dependencies are not dependencies pip can handle, package authors leave them out. However often package maintainers know they exist and have already included them. Would be great to have some kind of mechanism to include these non-Python dependencies.

Describe the solution you'd like

One solution would be to just trust that any dependencies listed in a recipe are meant to be there. Though Grayskull could warn or flag with a comment any that it didn't find these in setup.py (say if they are Python dependencies, but got dropped by upstream).

Another solution might be to allow users to specify a list of these either directly to the CLI or via a file that contains them.

Describe alternatives you've considered

Considered at least one above, but there may be more.

Additional context

Recently this came up with Dask-SQL's Java dependencies ( https://github.com/conda-forge/dask-sql-feedstock/pull/28 ), but this can and does come up in a variety of places

jakirkham commented 3 years ago

One component of this is that Grayskull seems to drop build dependencies (like compilers, other build tools, etc.). These should ideally be left in place untouched