Not sure where the best place to ask this is but f...
# wg-container-conversion-task-force
j
Not sure where the best place to ask this is but figure folk here would know... I have built a container for COMEBin using Seqera containers, which depends on CheckM. The Bioconda recipe for CheckM includes a post-link script (github.com/bioconda/bioconda-recipes/blob/…/post-link.sh) that downloads and sets up the required database, but when I run CheckM in the container this is not set up correctly. Do these scripts not get run when building a Seqera container?
p
Do you have a link to the build log? You should be able to see what is happening during the build..
j
I can try and find one
p
I'm asking GitHub Copilot on github.com/seqeralabs/wave now
j
Copy code
+ pixi add conda-forge::which
 WARN Skipped running the post-link scripts because `run-post-link-scripts` = `false`
	- bin/.checkm-genome-pre-unlink.sh

To enable them, run:
	pixi config set --local run-post-link-scripts insecure

More info:
	<https://pixi.sh/latest/reference/pixi_configuration/#run-post-link-scripts>
p
Ah right, this build was done by nf-core CLI I guess? Wave / Seqera Containers use miniconda by default, but for nf-core we force Pixi.
j
Yeah this was through nf-core tools
So I could try building it through the web interface for now?
p
Yup, for a quick fix 👍🏻
Longer term maybe we should look into somehow enabling that config 🤔 Not sure how common this case is though?
j
Conda docs say these scripts should be avoided where possible
p
Yeah makes sense, as they are basically arbitrary script execution by design
A bit like how Python's
setup.py
is not great, for similar reasons
j
Yeah
I would be minded to let these run in nf-core containers, though - for better or worse they are the expected behaviour when installing a conda package and hapless maintainers such as myself will get confused when various set-up stages are not executed
p
Yeah - what I'd love and am too lazy to do is to scan all packages in all nf-core modules and see how many of them define this.
Like if it's just your one package, then I don't think we need to do anything.
If it's a significant proportion, then maybe we enable it for all
j
github.com/search?q=repo%3Abioconda%2Fbi…&amp;type=code 1.8k Bioconda packages with a post-link script
Obviously not all of those are nf-core modules
p
ok now tell me how many are something important and not just
echo
commands lolsob
But yeah, seems quite a fair few legit ones
Ok, so we should look into whether we can enable this:
Copy code
pixi config set --local run-post-link-scripts insecure
Ideally at nf-core level if possible, to avoid any changes upstream in Wave
p
For this kind of thing, there may be dragons, and even when not by purpose, thing may still be bothersome. Looking at the Zenodo record for the data (https://zenodo.org/records/7401545), it's listed as CC BY 4.0. How do we here make sure to attribute this properly in the container? (I bypass some things with Seqera likely being the distributor and so on that I think could play out differently in different jurisdictions. nf-core should still do the right thing.)
No fun, I know, but "having a follow up action to download something" I'd say is a fairly established pattern to deal with publicly available but problematically licensed things (even my Ubuntu 26.04 desktop has a
ttf-mscorefonts-installer
package to do just that...).
p
@Jim Downie did you get it to work via the seqera containers web interface? (miniconda)
j
Yes, that did work
👍🏻 1
p
@pontus yup you're right to be cautious. This kind of stuff does bother me with Wave / Seqera Containers. But at some point if we worry too much then we risk being paralysed and not doing anything useful 🫠
nf-core should still do the right thing.
I don't think that nf-core is really doing anything here, as we're not building or hosting the containers.
j
I did have a bit of a nosey through these various scripts in Bioconda. Most of them just print some text to the screen saying, download this database, or export this variable we didn't want to overwrite by default. This tool does seem to be an exception, though I'll note that the Bioconda package is officially sanctioned by the authors from what I can see so I wouldn't be too worried about attribution.
p
It sounds like
nf-core
forcing pixi "helped" here :)
j
But perhaps more importantly, the post-link scripts are needed for Bioconductor data packages: bioconda.github.io/faqs.html#…
p
Of course, most often, legalities is not a problem. I'd generally wouldn't recommend relying on just someone not enforcing any specific commitment in agreements/licenses since that may be changed in the future,
(But there is also "kicking the can down the road" in order to be able to say you agree on something where otherwise it's not considered wise to rely on everyone always being nice and helpful, just like a prenuptial agreement ideally does not assume the two will always be in lvove.)