-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rely on "run exports" to install zlib at runtime #18
base: main
Are you sure you want to change the base?
Conversation
Note that 3 weeks ago, @jmarshall removed
And I still think a different or additional example would be useful. The |
Bump. I think these minor changes would clarify the current bioconda documentation on run exports. Any potential larger changes can wait for a future PR |
Closing because the file |
It was migrated to https://bioconda.github.io/faqs.html#what-are-the-host-and-build-sections-of-a-recipe (and here in the source), is there anything that should be changed in that section? |
I like the explanation of build/host/run in that section. The only missing aspect I would add is that the shared libraries in However, the current guidance for writing recipes still recommends explicitly adding bioconda-docs/source/contributor/guidelines.rst Lines 419 to 444 in d8b5591
If you're interested, I'm happy to send PR(s) to update either of the above points. |
Ah, yes, PR/PRs would be wonderful -- thanks |
I recently had a colleague get confused about "run exports" after reading the documentation page on migrating to conda build v3. I think the explanation of how to handle the
zlib
requirement is confusing.Currently the text contains this explanation:
bioconda-docs/source/contributor/cb3.rst
Lines 203 to 209 in 6366416
The first thing I noticed is that
zlib
shouldn't be added tobuild
, since it doesn't have "strong run exports". Instead it should be added tohost
.Then in the example recipe,
zlib
is still added inrun
, which contradicts the paragraph about run exportsbioconda-docs/source/contributor/cb3.rst
Lines 246 to 251 in 6366416
I suspect that part of the confusion is that
zlib
is itself a complex example of "run exports", which I will explain below. For documentation purposes, it might be better to simply include a more straight-forward example, and then tacklezlib
since it is such a common requirement for bioconda recipes.Here is why I think
zlib
is a complex example to demonstrate the concept of "run exports"zlib
should not have appeared in therun
requirements in this example (https://github.com/conda-forge/zlib-feedstock/blob/b8a90e7d70a09d6672b559ac3bd027cc1f3019fa/recipe/meta.yaml#L17)libzlib
(https://github.com/conda-forge/zlib-feedstock/blob/649df646085a23f9f580418c1ca01249e151857b/recipe/meta.yaml#L77)libzlib
should be sufficient for software that properly links againstlibzlib
. However, some software out in the wild still requires the files provided byzlib
at runtime. Therefore, there are some cases where you would need to putzlib
in bothhost
andrun
. See this Issue for the details: Something broken with zlib vs. libzlib files (or run-export) conda-forge/zlib-feedstock#65Lastly, I'd note that there are many existing bioconda recipes that include
zlib
in therun
requirements (https://github.com/search?q=repo%3Abioconda%2Fbioconda-recipes+zlib+language%3AYAML&type=code&l=YAML). If it's a bioconda convention to includezlib
inrun
(perhaps to avoid the complexity I noted above), then I definitely think a different example should be chosen to demonstrate the concept of "run exports"