Migrating to 25.04 (preview)
This page summarizes the upcoming changes in Nextflow 25.04, which will be released in May 2025.
Note
This page is a work in progress and will be updated as features are finalized. It should not be considered complete until the 25.04 release.
New features
Strict syntax
The strict syntax is a strict parser for Nextflow DSL2 that implements the Nextflow language specification. Originally introduced by the Nextflow language server alongside Nextflow 24.10, the strict syntax is now available in the Nextflow CLI.
The strict syntax is disabled by default. It can be enabled by setting the environment variable NXF_SYNTAX_PARSER=v2
. See Preparing for strict syntax for details.
Linting and formatting
The nextflow lint
command checks Nextflow scripts and config files for errors using the strict syntax. It can also format Nextflow files using the same formatter as the Nextflow language server. See lint for details.
Workflow outputs (third preview)
The third preview of workflow outputs introduces the following breaking changes from the previous version:
The
publish:
section can only be specified in the entry workflow.Workflow outputs in the
publish:
section are assigned instead of using the>>
operator. Output names must be valid identifiers.By default, output files are published to the base output directory, rather than a subdirectory corresponding to the output name.
The syntax for dynamic publish paths has changed. Instead of defining a closure that returns a closure with the
path
directive, the outer closure should use the>>
operator to publish individual files. See Publishing files for details.The
mapper
index directive has been removed. Use amap
operator in the workflwo body instead.
See Workflow outputs to learn more about the workflow output definition.
Enhancements
Improved inspect
command
Previously, the nextflow inspect
command included all processes that were invoked in a preview run. Now, the inspect
command includes all processes that are included by the entry workflow (directly or indirectly), which has several benefits:
It includes all processes that could potentially be invoked by the workflow, not just the processes that are invoked for a particular run configuration.
It’s faster, as it doesn’t need to evaluate the entry workflow – only the includes.
It can be run as
nextflow inspect <PIPELINE>
, without specifying any parameters or config profiles.
See inspect to learn more about the inspect
command.
Plugin version ranges
When specifying a plugin, the plugin version can now be prefixed with ~
to pin the major and minor version while allowing the latest patch release. This syntax makes it possible to pin the plugin version while automatically using new patch releases.
See Plugins for details.
Improved publish error handling
Nextflow will terminate the run if the thread pool responsible for publishing files takes too long. Previously, this timeout was reported as a warning. Now, it is reported as an error.
The previous behavior can be restored with the following config setting:
workflow.output.ignoreErrors = true
Breaking changes
Nextflow now requires Java 17 or newer. See Requirements for instructions to install Java 17.
The HyperQueue executor now requires HyperQueue 0.20.0 or later.
Deprecations
The process
shell
section has been deprecated. See Shell for details.Nextflow will report a warning if it encounters a process
shell
directive that contains newlines. This warning will become an error in a future release.The
-with-weblog
CLI option has been deprecated. See nextflow-io/nf-weblog to learn how to use thenf-weblog
plugin.
Miscellaneous
New config option:
workflow.output.copyAttributes
New standard library function
env()
Support
disk
directive for Azure Batch