Releases: nf-core/tools
v4.0.0 - Bold Boa
v4.0.0 - Bold Boa - [2026-04-28]
See more details about this release on our blog: https://nf-co.re/blog/2025/tools-4_0_0
Highlights
- Nextflow strict syntax in the pipeline template
- Auto-generated container config files
- New command aliases
- Webhook notifications removed
Breaking Changes
- require strict Nextflow syntax
- dropped deprecated prefix-free commands, e.g.
nf-core createis nownf-core pipelines create - removed the
--migrate-pytestfunctionality fornf-core modules create
General
- Add command to generate pipeline container config files (#3955)
- sync: don't overwrite the defaultBranch if already set in nextflow.config (#3939)
- Add aliases to common sub-subcommands like
install,lint, etc. (#3980)
| Command | Subcommand | Aliases |
|---|---|---|
modules & subworkflows |
bump-versions (modules only) |
bump-version, bump, bv, b |
create |
c |
|
install |
add, i |
|
lint |
l |
|
list |
ls |
|
patch |
p |
|
remove |
uninstall, rm |
|
test |
t |
|
update |
up, u |
|
pipelines |
bump-version |
bump, bv, b |
create |
c |
|
download |
d |
|
lint |
l |
|
list |
ls |
|
schema lint |
schema l |
|
sync |
s |
|
test-datasets |
(command group) | test-dataset, tds, td, t |
list |
ls |
|
list-branches |
lsb |
- Add more ruff rules (B, PTH, RSE, SIM, C4, BLE, A) (#4034)
- hinder renovate from updating packages with a fixed range (#4058)
- nf-core bot: collect all snapshots before commiting (#4082)
- fix nf-core bot snapshot action (#4083)
- Fix GHA notification for AWS full tests job (#4092)
- Parse manifest.contributors to fill in the RO-Crate (#4147)
- Isolate test runs to avoid cross talks of Nextflow assets (#4175)
- Remove
--migrate-pytestfunctionality and deprecated pipeline commands (#4167) - use prek instead of pre-commit in all instances (#4187)
- nextflow source CI: set up uv (#4208)
- automatically handle merge conflicts for changelog files with union (#4223)
Download
- Fix
nf-core pipelines download --platformoutput directory structure and tagging (#4185) - Add a fallback for
nextflow inspectfor pipelines without a default for the--outdirparameter specified in the test profiles (#4212)
Linting
- fix failing pytest for lint after samtools topic conversion (#4026)
- capture correct error for invalid .nf-core.yml (#4080)
- Ensure release linting happens on branch named main (#4121)
- Add linting for meta and ext keys (#4127)
- Add strict syntax linting to template with pre-commit (#4128)
- Lint meta variable names (#4129)
- Lint against the correct repo (#4140)
- Fix false positive matches to words like text in ext key linting (#4142)
- Fix changelog bot failing after linting step (#4155)
- lint for correct syntax for compressed files in stubs (#4048)
- fix linting with missing input (#4202)
- fix(lint): use correct config key zenodo_doi (#4201)
- add missing lint test documentation and add pre-commit check for them (#4052)
Modules
- fix incorrect unqoting of
val()version numbers (#4042) - Template: have a
main:section in workflow even when modules are skipped (#4043) - allow harshil alignment™ in version channels (#4064)
- Update example links in main.nf comments (#4188)
- Always prettify modules.json (#4063)
- Allow versions.yml in the version topics (#4094)
- switch to gitlab module to test with old version syntax (#4126)
- linting: Fix version emit for version.yml (#4095)
- linting: make version topics mandatory (#4163)
- only check for compressed stubs with .gz as final extension (#4206)
- modules linting: require registry prefix in container link (#4209)
- add apptainer support to module template (#4210)
Subworkflows
- update test to new upstream subworkflow structure (#4038)
- Fix lint: preserve underscores for subworkflow includes via full path (#4074)
- update modules and subworkflows in template (#4077)
- add
--forceparameter tomodules removeandsubworkflow remove(#4213)
Template
- Remove webhook notifications (hook_url, slackreport, adaptivecard) (#4051).
- Add
.lineage/directory to the template .gitignore (#4075). - Update nf-test module template to topics (#4113)
- Fix nf-core tools version to what is specified in
.nf-core.ymlfor the GitHub workflowdownload_pipeline.yml(#4124). - Update all documentation URLs to point to equivalents on the new nf-core website documentation structure (#4135)
- Trigger full nf-test run if scripts in bin/ or schema JSON files are modified (#3897)
- Add additional fusion specific exit codes (#4180)
- fix: rename variables in pipeline nf-test template default.nf.test for clarity (#4189)
- bump nextflow to 25.10.4 (#4190)
- fix jinja variable in template (#4156)
- fix some nextflow lint warnings in different skipped template versions (#4191)
- trigger full nf-test run if CI changes (#4203)
- Include AI and LLM usage guidelines in CONTRIBUTING.md (#4211)
Version updates
v3.5.2 - Terne Topi Patch 2
v3.5.2 - Terne Topi Patch 2 - [2026-01-30]
General
- Switch from pre-commit to prek for pre-commit hooks in development(#3899)
- Fix docker errors in test (#3924)
- switch to uv and pyproject.toml (#3925)
- dockerhub action: add disk clean-up step and combine the two actions (#3926)
- Pin j178/prek-action action to 91fd7d7 (#3931)
- Simplify coverage reporting in pytest.yml (#3934)
- add pre-commit hook to keep uv.lock in sync (#3933)
- Fix quote handling in meta.yml (#3948)
- Add support for SVG files in bump-version command (#3978)
- handle type for val in topics correctly (#3991)
- Update docker/login-action digest to c94ce9f (#3998)
- fix wrong parsing when output values contain spaces (#3999)
- fix failing devcontainer builds (#4013)
Linting
- fix test for linting for version.yml (#3947)
- Fix bugs in subworkflows lint causing false positive warnings (#3968)
- more fixes for incorrect parsing of version statement (#3973)
- handle val in version topics correctly (#3988)
- handle additional attributes in input parsing correctly (#3990)
Modules
- sort meta.yml based on keys in schema (#3958)
- fix(modules_json): Use name string instead of dict as key in recreate_dependencies (#3963)
- linting: polish regex for output parsing in modules main.nf (#3967)
- modules linting: catch failing edamontology requests (#3994)
Subworkflows
- Update to new topic version handling (#3929)
Version updates
- Update actions/setup-python digest to 83679a8 (#3928)
- Update python:3.14-slim Docker digest to 119fd5b (#3910)
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.7 (#3943)
- Update mcr.microsoft.com/devcontainers/miniconda Docker digest to 2be0f5a (#3946)
- Update actions/checkout digest to 8e8c483 (#3956)
- Update GitHub Actions (#3957)
- Update astral-sh/setup-uv digest to ed21f2f (#3959)
- Update codecov/codecov-action digest to 671740a (#3962)
- Update codecov/codecov-action digest to 671740a (#4000)
- Update pre-commit hook pre-commit/mirrors-mypy to v1.19.1 (#4007)
- Update pre-commit hook astral-sh/uv-pre-commit to v0.9.28 (#4006)
- Update dependency textual-dev to v1.8.0 (#4005)
- Update mcr.microsoft.com/devcontainers/base Docker tag to v2.1.5 (#4002)
- Update dependency textual to v7 (#4008)
- Update mcr.microsoft.com/devcontainers/miniconda Docker digest to 8a29f1c (#4009)
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.14 (#4011)
- Update python:3.14-slim Docker digest to 9b81fe9 (#4012)
v3.5.1 - Terne Topi Patch 1
v3.5.1 - Terne Topi Patch 1 - [2025-11-19]
General
v3.5.0 - Terne Topi
v3.5.0 - Terne Topi - [2025-11-19]
See more details about this release on our blog: https://nf-co.re/blog/2025/tools-3_5_0
Highlights
- Version reporting with topic channels in modules
General
- Improve file ignores in workflow file enumeration (#3820)
- add optional link to blogpost to sync PR (#3852)
- Avoid deleting files ignored by git during
pipelines sync(#3847) - remove trailing comas from nextflow_schema.json (#3874)
- Make bump-version snapshot test more stable (#3865)
- add missing setup steps to snapshot update action (#3883)
- fix sync test (#3885)
- fix syntax in dockerfile for devcontainer (#3887)
- Enable authenticated pipeline download from nf-core compatible repos with github api (#3607)
- fix pytest setup matrix (#3888)
- Fix GH API rate limits. (#3895)
- devcontainer: downgrade to debian 12 and revert #3904 (#3907)
Template
- Change GitHub Codespaces badge style (#3869 and #3873)
- update multiqc version to fix utils test (#3853)
- Update multiqc to 1.32 (#3878)
- Update pipeline creation information page to be more exclusive as to what should use the full nf-core pipeline template (#3891)
- Fix LSP warnings in pipeline template (#3905)
Linting
- TEMPLATE: ignore nf-core components during prettier linting (#3858)
- update json schema store URL (#3877)
- add word boundary for input, output and topic linting (#3894)
- Add linting of topics (#3902)
Modules
- Add
topicsto the template + update linting (#3779) - Preserve the value of self.modules_repo across nested calls (#3881)
- modules lint: handle meta.ymls without topics field (#3909)
Version updates
- Update GitHub Actions (major) (#3849)
- Update docker/setup-qemu-action digest to c7c5346 (#3875)
- chore(deps): update python:3.14-slim docker digest to 9813eec (#3880)
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.14.4 (#3882)
- Update python:3.14-slim Docker digest to 4ed3310 (#3862)
- Update dependency textual-dev to v1.8.0 (#3860)
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.3 (#3861)
- Update GitHub Actions (major) (#3849)
- chore(deps): update mcr.microsoft.com/devcontainers/miniconda docker digest to 19516ba (#3890)
- Update dependency textual to v6.6.0 (#3892)
- chore(deps): update mcr.microsoft.com/devcontainers/base:debian docker digest to 2e826a6 (#3893)
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.14.5 (#3900)
- Update actions/checkout digest to 93cb6ef (#3906)
v3.4.1 - Ducol Dingo Patch 1
v3.4.1 - Ducol Dingo Patch 1 - [2025-10-16]
Template
v3.4.0 - Ducol Dingo
v3.4.0 - Ducol Dingo - [2025-10-15]
Highlights
- Refactored download command
- New devcontainer setup
- Improvements in ARM64 architecture handling
- CLI convenience improvements
Template
- Update the
download_pipelineworkflow to remove dependency ondevbranch of tools (#3734) - Update mastodon announcement to include pipeline description (#3741)
- Bump nf-schema to 2.5.0 and update the help message creation to be compatible with future Nextflow versions (#3743)
- Bump minimum Nextflow version to 25.04.0 (#3743)
- Explicitly declare conda-forge as a channel in the conda setup for GitHub CI for nf-test (#3764)
- Update multiqc to 1.31 (#3766)
- Update charliecloud URL (#3757)
- Add NXF_VERSION environment variable to nf-test workflow (#3770)
- Update nextflow.config to use environment variable for
hook_url(#3756) - Update nf-test to 0.9.3 (#3781)
- update release checklist to battle test pipeline template more (#3788)
- update pipeline template subworkflows (#3826)
- fix AWS tests launch action (#3827)
Linting
- ignore files in gitignore also for pipeline_if_empty_null lint test (#3722)
- do not check pytest_modules.yml file, deprecating (#3748)
- Use the org from the .nf-core.yml when linting manifest name and homePage. (#3767)
- Use the org from .nf-core.yml when linting multiqc_config report_comment (#3800)
- Linting of patched subworkflows (#3755)
- Add link to modules and subworkflows linting error docs (#3818)
- fix ternary container linting (#3830)
Modules
- Support modules with
exec:blocks (#3633) - nf-core modules bump-version supports specifying the toolkit (#3608)
- use same logic for super-tool selection in modules lint and bump-version (#3823)
- Override example keywords in modules test (#3801)
- update test assertions in modules template to current recommendations and remove
single_endfrom example meta value (#3815)
Subworkflows
- Update the utils_nfschema_plugin subworkflow to the latest version (#3814)
General
- don't read param expressions with spaces as params (#3674)
- Stop using Gitpod in favor of devcontainer for codespaces (#3569)
- Validation of meta.yaml in cross-org repos (#3680)
- Refactor downloads command (#3634)
- Split
download.pyinto subdirectorydownload/ - Use
nextflow inspectfor container discovery and remove legacy regex container discovery (requires Nextflow >= 25.04.04) - Add support for downloading docker images into tar archives
- Add pipeline to test data to be compatible with
nextflow inspect
- Split
- Move
gather_registriesfunction toContainerFetchersubclasses (#3634 follow-up) (#3696) - Add container load scripts for Docker and Podman (#3634 follow up) (#3706)
- Replace arm profile with arm64 and emulate_amd64 profiles (#3689)
- Fix paths to logos (#3715)
- Update test-datasets list subcommand to output plain text urls and paths for easy copying #3720
- Remove workflow.trace from nf-test snapshot (#3721)
- Add GHA to update template nf-test snapshots (#3723)
- Fix backwards compatibility with python 3.9 in use of Enum (#3736)
- Fix downloads: temporary files not moved and cleaned up correctly after singularity pull (#3749)
- impr devcontainer: Add hostRequirements to run with 4CPUs and 16GB ram by default (#3746)
- Fix Issues/3729: Remove temporary folders created from nextflow inspect during downloads (#3750)
- Fix diff printing to terminal (#3759)
- Add .nf-test/ to prettier ignore list (#3776)
- pipelines bump-version: fix indentation for list in dumped .nf-core.yml (#3829)
Version updates
- Update marocchino/sticky-pull-request-comment digest to 7737449 (#3681)
- Update codecov/codecov-action digest to fdcc847 (#3717)
- Update dependency prompt_toolkit to <=3.0.52 (#3783)
- update rich-click to 1.9 and use new styling options (#3787)
- Update dependency textual to v6 (#3793)
- Update pre-commit hook pre-commit/mirrors-mypy to v1.18.2 (#3792)
- Update python:3.13-slim Docker digest to 5f55cdf (#3796)
- Update pre-commit hook astral-sh/ruff-pre-commit to v0.13.3 (#3791)
- Update pre-commit hook pre-commit/pre-commit-hooks to v6 (#3797)
- Update dependency python to 3.14 (#3817)
- update Dockerfile to python 3.14 (#3822)
- downgrade python version to 3.13 in devcontainer (#3834)
- Update GitHub Actions (#3795)
v3.3.2 - Tungsten Tamarin Patch 2
v3.3.2 - Tungsten Tamarin Patch 2 - [2025-07-08]
Template
- Avoid overriding
NFT_DIFFandNFT_DIFF_ARGSinnf-testaction (#3606) and (#3619) - fix nf-test scope to ignore nf-core module/swf tests (#3609)
- write github.run_id on pipeline template (#3637)
- Bump nf-schema to
2.4.2(#3533) - Bump the minimal Nextflow version to
24.10.5(#3533, #3667) - CI - Only trigger nf-test action on pull_request (#3628)
- Fix link to nf-test GHA in README.md (#3630)
- Add accelerator directive for GPU-enabled processes (#3632)
- Update dependency prettier to v3.6.0 (#3641) and 3.6.2 (#3646)
- Add opt-in feature
gpu(#3562) - Update zentered/bluesky-post-action action to v0.3.0 (#3626)
Linting
- Fix linting of nf-test files content (#3603)
Modules
- Remove args stub from module template to satisfy language server (#3403)
- Fix modules meta.yml file structure (#3532)
- Fix wrong key when updating module outputs (#3665)
Subworkflows
General
- update id of ruff hook in pre-commit config (#3621)
- Fixes a bug with the test-datasets subcommand #3617
- Pin python Docker tag to f2fdaec (#3623)
- Make changelog bot push to correct remote (#3638)
- Give unique button ids to help buttons in create app (#3645)
- Parallelize pytest runs and speed up coverage step (#3635)
- Update gitpod/workspace-base Docker digest to 77021d8 (#3649)
- Update error message for rocrate_readme_sync (#3652)
- Update
nf-core modules infocommand aftermeta.ymlrestructuring (#3659) - Enable parsing of multi-line config values (#3629)
Version updates
v3.3.1 - Tungsten Tamarin Patch
v3.3.1 - Tungsten Tamarin Patch - [2025-06-02]
This patch release includes fixing a comment message in the nf-test.yml GitHub Action.
Template
- Use correct comment symbol in
nf-test.yml(#3601)
v3.3.0 - Tungsten Tamarin
v3.3.0 - Tungsten Tamarin - [2025-06-02]
Highlights
This version adds pipeline level nf-test to the pipeline template.
We also enabled to install subworkflows with modules from different remotes.
Template
- Remove the on
pull_request_targettrigger andpull_requesttypes from the download test. Also droppushtriggers on other CI tests. (#3399) - Add nf-core template version badges to README (#3396)
- Basic pipeline level nf-test tests (#3469, 3597)
- Add Bluesky badge to readme (#3475)
- Add .nftignore to trigger list (#3508)
- Tun nf-test tests on runsOn runners (#3525)
- Include the centralized nf-core configs also in offline mode, if a local copy is available. (#3491)
- Make jobs automatically resubmit for exit code 175 (#3564)
- Bump nf-schema back to 2.3.0 (#3577)
- Do not skip AWS fulltest action on release (#3583)
- Make all github actions in the template kebab-case (#3600)
Linting
- Add linting for ifEmpty(null) (#3411)
- Fix arbitrarily nested params schema linting (#3443)
- Fix linting with comments after the input directive (#3458)
- EDAM ontology fixes (#3460)
- Fix default linting of nf-core components when
nf-core pipelines lintis ran (#3480) - Fix the unexpected warning and sychronize the
README.mdandRO-crate-metadata.json(#3493) - Adapt the linter to the new notation used to include the centralized nf-core configs (#3491)
- Addressing more cases than can happen when processing input and output values (#3541)
- Add linting of nf-test files content (#3580)
Subworkflows
- Install subworkflows with modules from different remotes (#3083)
Modules
- Increase meta index for multiple input channels (#3463)
- Configure the default module repository, branch, and path from environment variables. (#3481)
General
- Remove hard coded key prefix for schema in launcher (#3432)
- Output passed to
write_params_fileas Path object (#3435) - format name/value with YAML syntax (#3442)
- Remove Twitter from README (#3454)
- docs: fix contributing link in the main README (#3459)
- Cleanup: Removed Redundant if Condition (#3468)
- Ontology fix comment yaml (#3502)
- Bugfix - add back logo to the README (#3504)
- Update dead link (#3505)
- Changing retrieval of file extension from EDAM (#3512)
- Refactor adding EDAM ontologies and allowing detect more patterns (e.g., versions.yml) (#3519)
- Add offline configs test action (#3524)
- Adds
test-datasetssubcommand for listing/searching files in the nf-core/test-datasets repo from the cli (#3487, #3548, #3566, #3567) - Fix indentation in included_configs API docs (#3523)
- Adding boundary in regex (#3535)
- Switch to using runsOn runners in nf-core/tools repo (#3537)
- Handling issue with arity #3530 (#3539)
- GitHub action for nightly tests with Nextflow from source (#3553)
- Update CI to test template pipelines with nf-test (#3559)
- Use secret for notification email on nextflow nightly builds (#3576)
- Use pdiff from setup-nf-test (#3578)
Version updates
- chore(deps): update python:3.12-slim docker digest to fd95fa2 (#3587)
- chore(deps): update dependency pytest-textual-snapshot to v1.1.0 (#3439)
- chore(deps): update pre-commit hook astral-sh/ruff-pre-commit to v0.11.11 (#3585)
- chore(deps): update pre-commit hook editorconfig-checker/editorconfig-checker.python to v3.2.0 (#3446)
- chore(deps): update pre-commit hook pre-commit/mirrors-mypy to v1.15.0 (#3447)
- Update prettier to 3.5.0 (#3448)
- chore(deps): update gitpod/workspace-base docker digest to 3aa18f4 (#3586)
- chore(deps): update github actions (#3488)
- chore(deps): update github actions (#3498)
- chore(deps): update dependency textual to v2 (#3471)
- chore(deps): update actions/setup-python digest to 8d9ed9a (#3518)
- chore(deps): update actions/github-script action to v7 (#3545)
- chore(deps): pin dependencies (#3554)
- chore(deps): update codecov/codecov-action digest to 18283e0 (#3575)
v3.2.1 - Pewter Pangolin Patch
v3.2.1 - Pewter Pangolin Patch - [2025-04-30]
This patch release fixes pipelines CI, particularly the GitHub Action to launch full-size tests on AWS.
There was also an error when running the pipelines with the edge version of Nextflow. Due to this, we had to downgrade the version of the nf-schema plugin until the compatibility with the latest Nextflow is addressed. Now, running the pipeline with Nextflow latest-everything won't fail, to avoid future similar problems, until we find a better way to test edge versions.