Migrating to 24.04
Nextflow 24.04 was released on May 20, 2024.
New features
Topic channels (first preview)
A topic channel is a queue channel that can receive values from multiple sources, based on a matching name or topic.
Topic channels are particularly useful for collecting metadata from various points in a pipeline without writing all of the channel logic that is normally required (e.g., using the mix
operator).
See topic for details.
Process eval
outputs
A process eval
output is a new type of process output that captures the standard output of an arbitrary shell command.
This output type is a simpler way to capture command outputs, such as the version of a command-line tool, instead of using a path
or env
output.
See Eval output (eval) for details.
Resource limits
The resourceLimits
process directive allows you to define global limits on the resources requested by individual tasks.
This directive is useful for ensuring that a task’s resource requirements never exceed system-wide limits. It is especially important for preventing tasks from becoming unschedulable when using retry with dynamic resources.
See resourceLimits for details.
Job arrays
The array
directive allows a process to submit jobs as job arrays, a feature used by many batch schedulers to submit many similar jobs in an efficient manner.
Tip
On Google Batch, the array
directive can be used in conjunction with the cpus
, memory
, and machineType
directives to pack multiple tasks onto the same VM.
See array for details.
Workflow outputs (first preview)
Workflow outputs are a new way to publish outputs at the workflow level:
nextflow.preview.output = true
workflow {
main:
ch_foo = foo(data)
bar(ch_foo)
publish:
ch_foo >> 'foo'
}
output {
directory 'results'
mode 'copy'
}
This syntax allows you to publish channels in a workflow, instead of publishing file patterns in a process using publishDir
.
See Workflow outputs for details.
Enhancements
Colored logs
Nextflow’s console output now features colored logs and improved organization to highlight the most important information about a pipeline while it’s running.
AWS Fargate
Nextflow now supports AWS Fargate for the AWS Batch executor. See AWS Fargate for details.
OCI auto-pull mode for Singularity and Apptainer
The singularity.ociAutoPull
(apptainer.ociAutoPull
) config option enables OCI auto-pull mode for Singularity (Apptainer). When enabled, this setting allows Singularity (Apptainer) to download and convert Docker images during task execution rather than on the Nextflow head node.
See singularity and apptainer for details.
Improved publish error handling
The publishing logic used by publishDir
and workflow outputs will automatically retry failed publish operations with exponential backoff, providing better resilience against transient errors. The retry behavior can be controlled using the nextflow.publish.retryPolicy.*
config settings.
Additionally, the failOnError
option of the publishDir
directive is now true
by default. This means that, by default, publish errors (after retries) will cause the pipeline to fail. To restore the previous behavior, set failOnError
to false
for each publishDir
directive.
Note
The nextflow.publish
config settings have since been moved to workflow.output
. See workflow for details.
GA4GH TES 1.1
The TES executor has been updated to be compliant with version 1.1 of the TES API specification. Notable improvements include support for directory outputs, glob outputs, and the bin
directory.
Note
The nf-ga4gh
plugin has since been moved into its own repository, nextflow-io/nf-ga4gh. Refer to this repository for documentation and the latest updates on GA4GH integrations for Nextflow.
Breaking changes
Support for Glacier auto-retrieval was removed. Consider using the AWS CLI to restore Glacier objects before or at the beginning of your pipeline.
The
seqera
anddefaults
channels were removed from the list of default conda channels used by Wave. They can be restored with the following setting:conda.channels = ['seqera', 'conda-forge', 'bioconda', 'defaults']
Miscellanous
New config option:
azure.batch.pools.<name>.lowPriority
New config option:
azure.batch.pools.<name>.startTask.script
New config option:
azure.batch.pools.<name>.startTask.privileged
New config option:
executor.account
New config option:
fusion.cacheSize
New config option:
google.batch.maxSpotAttempts
New config option:
k8s.cpuLimits
New config option:
k8s.fuseDevicePlugin
New environment variable:
NXF_CLOUDINFO_ENABLED
New environment variable:
NXF_CACHE_DIR
New plugin extension point:
TaskTipProvider
New
pod
directive option:schedulerName
New
pod
directive option:ttlSecondsAfterFinished
New workflow metadata:
workflow.fusion.enabled
New workflow metadata:
workflow.fusion.version
New workflow metadata:
workflow.preview
New workflow metadata:
workflow.wave.enabled
Support Google Batch instance templates
Support the use of secrets in the pipeline script
Upgrade to Groovy 4