Feature updates and improvements
Language features
- Added pipeline composition by @bentsherman in #7213
- Allowed any return type for a closure with a boolean signature by @bentsherman in #7688
- Added type checking for the type arguments of call arguments by @bentsherman in #7728
- Improved lint errors for common gotchas by @bentsherman in #7742
- Moved v1 process output resolution to
TaskOutputResolverV1 by @bentsherman in #7036
- Published workflow outputs with
FilePublisher by @bentsherman in #7745
- Added recognition of
Record::subMap() in the type checker by @bentsherman in #7743
- Added an error for a closure or function that returns no value by @bentsherman in #7714
- Added an error for a missing return statement in a closure or function by @bentsherman in #7738
- Changed invalid script definitions to report the real syntax error by @bentsherman in #7675
- Added a type error for record field assignment by @bentsherman in #7718
- Skipped argument checks for plugin functions in typed scripts by @bentsherman in #7726
- Added support for a map of source-to-target pairs in the output
path directive by @bentsherman in #7646
- Changed unnamed typed process outputs to use the inferred type by @pditommaso in #7757
- Added runtime validation of record fields for process record inputs by @bentsherman in #7692
Configuration
- Added the
seqera.executor.machineRequirement.onDemandCostRatio option by @pditommaso in #7710
Wave
- Added
conda/micromamba:v2-fast and conda/pixi:v1-fast to the wave.build.template docs by @pditommaso in #7727
General
- Centralized shared dependency versions in
gradle.properties by @pditommaso in #7704
- Made
HashBuilder.isAssetFile public by @jorgee in #7723
- Changed CSV output to quote values only when required by @xHaMMaDy in #7377
- Changed lineage to record only tasks that completed by @jorgee in #7664
- Replaced
LockManager with Guava Striped locks by @pditommaso in #7736
- Changed sched multi-attempt tasks to report the final attempt's start time by @pditommaso in #7755
- Changed the console log to go to stderr when ANSI logging is disabled by @bentsherman in #7741
- Added CI validation of agent examples against a staged runner image by @pditommaso in #7761
Bug fixes
Language features
- Fixed formatting of directives with a list argument by @bentsherman in #7679
- Fixed lineage path references for typed processes by @jorgee in #7713
- Fixed an NPE when all publish statements in a workflow output are no-ops by @bentsherman in #7674
- Fixed an NPE when publishing an external file with a publish statement by @bentsherman in #7721
- Fixed record cast of non-local
Path values by @bentsherman in #7684
- Fixed serialization of dataflow params by @pinin4fjords in #7759
- Fixed the
params block breaking piped operators in the entry workflow by @bentsherman in #7405
Plugins
- Fixed plugin functions that return or take a channel by @bentsherman in #7715
General
- Fixed a grep broken pipe error when reading the CPU model in the trace script by @bentsherman in #7672
- Fixed stale ANSI log lines when
COLUMNS does not match the terminal width by @pditommaso in #7705
- Fixed the launcher Java version cache and md5 fallback by @ewels in #7695
- Fixed
LsfExecutor.parseJobId() swallowing submit failures by @Arthur031221 in #7730
- Fixed the
validate.sh image override with a relative results directory and Wave images by @pditommaso in #7763
Dependencies
- Bumped Jackson to 2.21.7 and 2.18.11 to fix security advisories by @jorgee in #7732
- Bumped
nf-agent-pi to 0.5.4 with pi-coding-agent 1.0.2 so the catalog includes GPT-6 Luna by @edmundmiller in #7748
- Bumped
pi-coding-agent to 0.86.1 to fix undici advisories by @jorgee in #7733
- Bumped
sched-client to 0.100.0 in nf-seqera by @pditommaso in fe446ce6d
- Bumped slf4j to 2.0.20 by @pditommaso in #7703
- Bumped
nf-agent@0.1.2
- Bumped
nf-agent-pi@0.5.4
- Bumped
nf-azure@1.24.1
- Bumped
nf-google@1.28.2
- Bumped
nf-seqera@0.26.0
- Bumped
nf-tower@1.31.0
- Bumped
nf-wave@1.22.2
Full changelog: https://github.com/nextflow-io/nextflow/releases/tag/v26.09.2-edge