Container Linting for Modules
@ningyuxin1999 is already working on this.
Since Feb 12, 2026.
- Dominant language
- Python
- Stars
- 322
- Forks
- 255
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 5
Description
Implement linting for the wave functionality described in https://github.com/nf-core/tools/issues/3952
Linting Tasks:
Lint meta.yml
-
if
containerssection exists: Check if docker linux/amd64 image exists (Exceptions to this for modules in https://github.com/nf-core/modules/blob/master/.github/skip_nf_test.json)
-> Assume that we are linting for the modules repo and this file exists locally -
Check if hash part of
build_id(bd-this_part_1234089273409_2) matches the docker / singularity container name. -
Check for conda if the hash in
build_idfor the docker linux/amd64 image matches the hash in the condalock_file -
Check for singularity and docker if the correct protocol is used:
orasfor singularity,httpfor docker -
Check for conda if
lock_files exist
Lint main.nf:
- Check if container specified in
main.nfmatches the docker linux/amd64 image (without registry) frommeta.yml"containers" section.
-> Add functionality to fix automatically
Lint the conda lock files / environment.yaml:
- Check for conda if the dependencies + versions match / appear in the conda lock files.
-> Look out for differneces between Python version, conda dependencies, and pip dependencies.
Where this goes
Extend the modules/lint/meta_yaml.py, modules/lint/main_nf.py files, add modules/lint/modules_containers.py
How this is used
- Add all new linting functions to
modules/lint/__init__.py - Add container linting functions to the new subcommand
nf-core modules containers list(at least for testing)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.