Hi folks! I have a suggestion / proposal.. Curren...
# team-maintainers
p
Hi folks! I have a suggestion / proposal.. Currently, modules don't specify a docker container URI, to make it easy to use a custom registry mirror. Nextflow defaults to docker hub, and we override this default in the pipeline template config file, setting it to quay.io This is fine until you try to run the module in isolation. Now you have no pipeline config, so Nextflow tries to use dockerhub and fails. Instead, could we go back to having the full URI in the module, and tell people to use the relatively new
registryOverride
(nextflow 25.10), making the module truly self-contained? https://docs.seqera.io/nextflow/reference/config#dockerregistryoverride This will require a mega-modules PR to update all modules in sync with a new tools / template update, but shouldn't be too disruptive I think. If a full URI is given I'm pretty sure the registry config option is ignore (though we should check this). And I think we're pushing the minimum Nextflow version to 25.10 anyway in the next template release (right, @mashehu ?). The only people who'd need to change anything are the folks swapping the registry for their mirror, and the new config option should work in a backwards-compatible manner with pipelines that aren't updated yet, I think.
➕ 4
🫠 3
m
Did someone say mega-PR? 👀
p
shared a GIF
m
why not do it together with container conversion?
100 rainbow 1
m
Agreeing with @mashehu
Full URI trumps
wathever.registry
for sure, as we're already using that somehwere. But yeah when we do that, we need to sync with tools release
Is running modules in isolation a big thing?
m
I think it might become a big thing with the next nf release
➕ 3
m
in the meantime for people running modules from nf-core in isolation, could we point them to a custom config file with some the whatever.registry for quay.io?
j
we could fix my versions thing at the same time! Agree with the OP
m
what's your versions thing?
n
That would take some more work though, let's keep those things separate please
sadpanda 1
💯 3
the containers won't break stuff but your change will 😅
p
Yeah the containers should hopefully be a pretty trivial change, I'm hoping.. 🤞🏻
m
a-little-girl-in-a-black-dress-and-white-collar-is-making-a-funny-face-and-says-famous-last-words.gif
p
I came to it because of the upcoming
nextflow modules run nf-core/xxx
command. At the moment this, fails as it needs docker (or something):
Copy code
nextflow modules run nf-core/fastqc --meta.id sample1 --input sample1.fq.gz
I want to get it to work by adding
-with-docker
- that fails right now with a validation error, but hoping to get around that. But then it still fails because the
container
is not valid in isolation.
But also this change to remove the stem that we did a while ago has bugged me quite a lot ever since it got put in 😅
(@Adam Talbot I think you were behind it? I feel the need to blame you anyway, whether it was or not)
Would feel much better if modules are self-sufficient
n
Make modules modular again!
🦣 1
p
I think that we can actually update modules and tools separately.. Pretty sure that
docker.registry
will just ignore all fully qualified URLs?
party this 3
a
This:
Instead, could we go back to having the full URI in the module, and tell people to use the relatively new
registryOverride
(nextflow 25.10), making the module truly self-contained?
Is exactly what I was asking for in the first place! the docker.registry thing was a hack. I actually think this should be solved with a pull-through cache or Wave but that's a different matter.
Full URIs are safer and more reliable
With registryOverride, it becomes possible for all users to use them (albeit a frustrating experience)
Pretty sure that
docker.registry
will just ignore all fully qualified URLs?
Correct
With Seqera Containers, we've already been using fully qualified URIs already right?
👍 1
p
Yup
👍 1
m
Screenshot 2026-04-21 at 11.32.24.png
elmofire 2
p
But not very many lines changed 😅
a
I hope all those CI tests pass eyebrows
😁 2
p
uh, wot?
a
Too many concurrent tests?
I think the max is 256 or 512 or something
m
256 sad cowboy
a
Copy code
.github/workflows/lint.yml (Line: 125, Col: 7): Strategy for job 'nf-core-lint-modules' produced 1104 configurations which exceeds the maximum of 256 configurations
m
that's why we can't do any bulk things, but split them up
p
shared a GIF
shared a GIF
m
YOLO?
n
shared a GIF
a
Feels like a great use case for that agentic stuff: • take a list of modules that need updating • open a PR for each of them • if tests pass with no changes, merge • if they don't, make a low effort attempt to fix • if they still don't, ask a human
p
shared a GIF
a
nf-claw anyone
🤣 1
j
It'll never catch on
p
image.png
😬 2
a
Phil desperate to get up the nf-core/modules leaderboard
p
Basically all of my PRs to modules are these bulk ones 😆
m
Someone should check that
nf-core pipelines download
still works. It does a bit of parsing of the container names to create symlinks for the same container in other registries. It should support fully-qualified URIs but 😨
m
I think it now relies completely on
nextflow inspect
which should give the right names
👍 1
phew obama 2
s
If we want to do this, we can bulk merge without the CI. Splitting into batches will just highlight a bunch of unrelated errors anyway and kill polar bears
💯 1
p
Posted this yesterday, so hoping to merge today if everyone is happy.
s
Yaeh, I saw the PR, just responding to the suggestions to split it up
👍🏻 1
p
ok shall we merge the badger then? big red rubber duck nyancat
s
m
Yeah, while we're merging big changes, let's add in that
p
The new Seqera Container upgrade are going to fix that though 🧌 😆
s
mmhmm
p
haha, but yeah sure that's fine by me
it won't break #CE5LG7WMB?
let me know if you want me to add it into myPR
j
but when
(sorry Phil, you're amazingly industrious, that was a bit uncalled for)
p
Sorry, the containers thing was just me trolling @Simon Pearce, not serious
(though I mean, it will be, but we can have both fixes)
j
I'm just excited about the new container goodness when it happens
excited 1
s
I think it makes sense to make this change too
Be good to test a few modules first though 😉
p
I think let's do that as a separate mega-PR. We can just merge one after another.
s
We should be getting rid of task.ext.singularity_pull_docker_container as well
on account of the fact that nobody uses it
except Harshil once like 5 years ago
😄 1
m
🤣
j
I won't tell him
p
It used to be a real problem back in the day, the .sif files randomly not working a lot of the time
I guess it's good that we don't need it..?
m
If I remember well the issue was not the sif files themselves, but the fact that the singularity pull was not working directly from the galaxy servers when used in certain settings (ie the Crick)
👍 1
p
You have a better memory than me, I have no idea
Ok, we good to merge? I'd appreciate a couple of ✅s on the two PRs if possible, just so I can blame others at a later date if necessary..
✅ 1
m
pff, you would anyway just blame a certain drawing by kurt vonnegut
old man yells at claude 1
m
For me this registry was mainly driven by the scidev, so if Jon says it's ok, and cause no issues with customers/users, and we can still keep equivalent registry changes (basically the whole mirroring of registry), I'm happy
j
I never liked it, caused me more problems that it solved. Customers won't get hit unless we do something really stupid in workflow module updates. Approved!
🤣 1
p
Done merged
m
looks like linting can't handle the full path. will make a quick fix
🫢 1
quick fix for broken linting because of registry prefix in container links https://github.com/nf-core/tools/pull/4209
s
Are we ready for https://github.com/nf-core/modules/pull/11260/ to be force merged?
p
If @mashehu is happy (we were just chatting about it, I think so?) then I think so
👍🏻 1
Will wait for final confirmation from him
m
p
shared a GIF
Just need to make sure that incoming PRs follow the new style now
m
phil can you rerun your "script" for both PRs again. i guess some PRs slipped through
p
(as 180 of them predate these)
oops too late, I merged alrady
m
jimmy-fallon-twins-gif-by-the-tonight-show-starring-jimmy-fallon.gif
no worries. just do it for both changes
p
shame there's no way to do this for all open PRs 🤔
m
the registry PR is now part of linting, so new PRs will fail there
p
Which one?
m
the one that broke everything yesterday 😉 https://github.com/nf-core/modules/pull/11251
p
oh registry as in quay.io registry, gotcha
Thought you meant Nextflow Registry sorry
m
nobody is talking about that one 😜
👀 1
eyebrows 1
p
I might see if I can get Claude to re-trigger all
nf-core lint modules
CI jobs on all open PRs..
So that none get merged with stale CI
m
no need to run lint imo (will generate too many other errors). would just have a quick grep for missing quay.io entries
p
yeah but that doesn't work for open PRs
I mean literally re-run the CI job on all open PRs
👍🏻 1
👍 1
not run lint modules on all modules in the repo
blah, flaky tests even though the PRs were only merged yesterday / today??
all PRs that were previously all-pass on CI have had their lint jobs retriggered, so should now be failing evil laugh
There were 63 that were too old to be triggered again though. Those need a new commit to re-run the CI.
s
Did it merge in the most recent changes first?
meow yes 1
blah, flaky tests even though the PRs were only merged yesterday / today??
The singularity/docker images were out of sync, updated
p
Thank you!
I don't really understand how the previous PRs got through CI? confused dog
s
Most likely I broke it when I merged the branch into your PR
yeah, you can see it aws the bulk PR that broke it
👍🏻 1