Skip to content

Commit 90a1457

Browse files
authored
Merge branch 'master' into aws-sdk-v2-fs-impl
2 parents a2554a0 + 700fadd commit 90a1457

File tree

95 files changed

+1641
-1178
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+1641
-1178
lines changed

.github/stale.yml

Lines changed: 0 additions & 17 deletions
This file was deleted.

.github/workflows/stale.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: 'Mark stale issues and PRs'
2+
on:
3+
schedule:
4+
- cron: '30 1 * * *'
5+
workflow_dispatch:
6+
7+
jobs:
8+
stale:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/stale@v9
12+
with:
13+
days-before-stale: 180
14+
days-before-close: -1
15+
stale-issue-label: stale
16+
stale-issue-message: ''
17+
stale-pr-label: stale
18+
stale-pr-message: ''
19+
exempt-issue-labels: bug,planned,security
20+
exempt-all-milestones: true
21+
exempt-all-assignees: true

build.gradle

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
*/
1616

1717
plugins {
18-
id "io.codearte.nexus-staging" version "0.30.0"
1918
id 'java'
2019
id 'idea'
2120
}
@@ -268,8 +267,8 @@ task exportClasspath {
268267
}
269268
}
270269

271-
ext.nexusUsername = project.findProperty('nexusUsername')
272-
ext.nexusPassword = project.findProperty('nexusPassword')
270+
ext.nexusUsername = project.findProperty('nexusUsername') ?: System.getenv('AWS_ACCESS_KEY_ID')
271+
ext.nexusPassword = project.findProperty('nexusPassword') ?: System.getenv('AWS_SECRET_ACCESS_KEY')
273272
ext.nexusFullName = project.findProperty('nexusFullName')
274273
ext.nexusEmail = project.findProperty('nexusEmail')
275274

@@ -347,8 +346,8 @@ configure(coreProjects) {
347346
repositories {
348347
maven {
349348
// change URLs to point to your repos, e.g. http://my.org/repo
350-
def releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2/"
351-
def snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
349+
def releasesRepoUrl = "s3://maven.seqera.io/releases/"
350+
def snapshotsRepoUrl = "s3://maven.seqera.io/snapshots/"
352351
url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
353352
credentials(PasswordCredentials) {
354353
username nexusUsername
@@ -393,17 +392,6 @@ task upload {
393392
dependsOn coreProjects.publish
394393
}
395394

396-
/*
397-
* Configure Nextflow staging plugin -- https://github.com/Codearte/gradle-nexus-staging-plugin
398-
* It adds the tasks
399-
* - closeRepository
400-
* - releaseRepository
401-
* - closeAndReleaseRepository
402-
*/
403-
nexusStaging {
404-
packageGroup = 'io.nextflow'
405-
delayBetweenRetriesInMillis = 10_000
406-
}
407395

408396
if( System.env.BUILD_PACK ) {
409397
apply from: 'packing.gradle'

buildSrc/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ group = "io.nextflow"
1212

1313
dependencies {
1414
implementation ('com.amazonaws:aws-java-sdk-s3:1.12.777')
15-
implementation 'com.google.code.gson:gson:2.10.1'
15+
implementation 'com.google.code.gson:gson:2.13.1'
1616
}
1717

1818
gradlePlugin {

changelog.txt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
NEXTFLOW CHANGE-LOG
22
===================
3+
25.04.4 - 16 Jun 2024
4+
- Fix bug in generated Groovy code (#6082) [ead2f320]
5+
- Fix default imports in included configs (#6096) [831a577b]
6+
- Fix variable checking in v2 config parser (#6097) [686ff608]
7+
- Sort linter errors/warnings by source location (#6098) [f51f339c]
8+
39
24.10.8 - 6 Jun 2025
410
- Add Fusion license validation [02b4dd74]
511
- Bump [email protected] [cf6af9c5]
@@ -36,6 +42,11 @@ NEXTFLOW CHANGE-LOG
3642
- Bump [email protected] [0f6498f1]
3743
- Bump [email protected] [0b491840]
3844

45+
25.04.3 - 2 Jun 2025
46+
- Add Platform info to Fusion license (#6142) [375db65a]
47+
- Force overwritting to trace file (#6105) [59e9d88d]
48+
- Bump [email protected] [f7509bce]
49+
3950
25.04.2 - 13 May 2025
4051
- Add check subcommand in lineage (#6074) [5ba67bca]
4152
- Fix issues with `lint` console output (#6064) [7405f513]

docs/channel.md

Lines changed: 27 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,63 @@
22

33
# Channels
44

5-
Nextflow is based on the dataflow programming model in which processes communicate through channels.
5+
In Nextflow, **channels** are the key data structures that facilitate the dataflow dependencies between each step (i.e. {ref}`process <process-page>`) in a pipeline.
66

7-
A channel has two major properties:
7+
There are two kinds of channels, *queue channels* and *value channels*. Channels are created using *channel factories* and transformed using *channel operators*.
88

9-
1. Sending a message is an *asynchronous* (i.e. non-blocking) operation, which means the sender doesn't have to wait for the receiving process.
10-
2. Receiving a message is a *synchronous* (i.e. blocking) operation, which means the receiving process must wait until a message has arrived.
11-
12-
(channel-types)=
9+
(channel-type-queue)=
1310

14-
## Channel types
11+
## Queue channels
1512

16-
In Nextflow there are two kinds of channels: *queue channels* and *value channels*.
13+
A *queue channel* is a channel that *emits* an asynchronous sequence of values.
1714

18-
(channel-type-queue)=
15+
A queue channel can be created by channel factories (e.g., {ref}`channel.of <channel-of>` and {ref}`channel.fromPath <channel-path>`), operators (e.g., {ref}`operator-map` and {ref}`operator-filter`), and processes (see {ref}`Process outputs <process-output>`).
1916

20-
### Queue channel
17+
The values in a queue channel cannot be accessed directly -- they can only be accessed by passing the channel as input to an operator or process. For example:
2118

22-
A *queue channel* is a non-blocking unidirectional FIFO queue connecting a *producer* process (i.e. outputting a value)
23-
to a consumer process or an operator.
19+
```nextflow
20+
channel.of(1, 2, 3).view { v -> "queue channel emits ${v}" }
21+
```
2422

25-
A queue channel can be created by factory methods ({ref}`channel-of`, {ref}`channel-path`, etc), operators ({ref}`operator-map`, {ref}`operator-flatmap`, etc), and processes (see {ref}`Process outputs <process-output>`).
23+
```console
24+
queue channel emits 1
25+
queue channel emits 2
26+
queue channel emits 3
27+
```
2628

2729
(channel-type-value)=
2830

29-
### Value channel
31+
## Value channels
3032

31-
A *value channel* can be bound (i.e. assigned) with one and only one value, and can be consumed any number of times by
32-
a process or an operator.
33+
A *value channel* is a channel that is *bound* to an asynchronous value.
3334

34-
A value channel can be created with the {ref}`channel-value` factory method or by any operator that produces a single value
35-
({ref}`operator-first`, {ref}`operator-collect`, {ref}`operator-reduce`, etc). Additionally, a process will emit value
36-
channels if it is invoked with all value channels, including simple values which are implicitly wrapped in a value channel.
35+
A value channel can be created with the {ref}`channel.value <channel-value>` factory, certain operators (e.g., {ref}`operator-collect` and {ref}`operator-reduce`), and processes (under {ref}`certain conditions <process-out-singleton>`).
3736

38-
For example:
37+
The value in a value channel cannot be accessed directly -- it can only be accessed by passing the channel as input to an operator or process. For example:
3938

4039
```nextflow
41-
process echo {
42-
input:
43-
val x
44-
45-
output:
46-
path 'x.txt'
47-
48-
script:
49-
"""
50-
echo $x > x.txt
51-
"""
52-
}
53-
54-
workflow {
55-
result = echo(1)
56-
result.view { file -> "Result: ${file}" }
57-
}
40+
channel.value(1).view { v -> "value channel is ${v}" }
5841
```
5942

60-
In the above example, since the `echo` process is invoked with a simple value instead of a channel, the input is implicitly
61-
wrapped in a value channel, and the output is also emitted as a value channel.
62-
63-
See also: {ref}`process-multiple-input-channels`.
43+
```console
44+
value channel is 1
45+
```
6446

6547
## Channel factories
6648

67-
Channel factories are functions that can create channels.
49+
Channel factories are functions that create channels from regular values.
6850

69-
For example, the `channel.of()` factory can be used to create a channel from an arbitrary list of arguments:
51+
The `channel.fromPath()` factory creates a channel from a file name or glob pattern, similar to the `files()` function:
7052

7153
```nextflow
72-
channel.of(1, 2, 3).view()
54+
channel.fromPath('input/*.txt').view()
7355
```
7456

7557
See {ref}`channel-factory` for the full list of channel factories.
7658

7759
## Operators
7860

79-
Channel operators, or _operators_ for short, are functions that consume and produce channels. Because channels are asynchronous, operators are necessary to manipulate the values in a channel, aside from using a process. As a result, operators are useful for implementing the _glue logic_ between processes.
61+
Channel operators, or *operators* for short, are functions that consume and produce channels. Because channels are asynchronous, operators are necessary to manipulate the values in a channel. Operators are particularly useful for implementing glue logic between processes.
8062

8163
Commonly used operators include:
8264

docs/config.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,9 @@ The following constants are globally available in a Nextflow configuration file:
108108
`projectDir: Path`
109109
: The directory where the main script is located.
110110

111+
`secrets: Map<String,String>`
112+
: Map of pipeline secrets. See {ref}`secrets-page` for more information.
113+
111114
## Functions
112115

113116
The following functions are globally available in a Nextflow configuration file:

docs/process.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -776,9 +776,9 @@ The process `echo` is executed two times because the `x` channel emits only two
776776
2 and b
777777
```
778778

779-
A different semantic is applied when using a {ref}`value channel <channel-type-value>`. This kind of channel is created by the {ref}`channel.value <channel-value>` factory method or implicitly when a process is invoked with an argument that is not a channel. By definition, a value channel is bound to a single value and it can be read an unlimited number of times without consuming its content. Therefore, when mixing a value channel with one or more (queue) channels, it does not affect the process termination because the underlying value is applied repeatedly.
779+
When a {ref}`value channel <channel-type-value>` is supplied as a process input alongside a queue channel, the process is executed for each value in the queue channel, and the value channel is re-used for each execution.
780780

781-
To better understand this behavior, compare the previous example with the following one:
781+
For example, compare the previous example with the following:
782782

783783
```nextflow
784784
process echo {
@@ -811,7 +811,7 @@ The above example executes the `echo` process three times because `x` is a value
811811
In general, multiple input channels should be used to process *combinations* of different inputs, using the `each` qualifier or value channels. Having multiple queue channels as inputs is equivalent to using the {ref}`operator-merge` operator, which is not recommended as it may lead to {ref}`non-deterministic process inputs <cache-nondeterministic-inputs>`.
812812
:::
813813

814-
See also: {ref}`channel-types`.
814+
See also: {ref}`process-out-singleton`.
815815

816816
(process-output)=
817817

@@ -1160,6 +1160,22 @@ In this example, the process is normally expected to produce an `output.txt` fil
11601160
While this option can be used with any process output, it cannot be applied to individual elements of a [tuple](#output-tuples-tuple) output. The entire tuple must be optional or not optional.
11611161
:::
11621162

1163+
(process-out-singleton)=
1164+
1165+
### Singleton outputs
1166+
1167+
When a process is only supplied with value channels, regular values, or no inputs, it returns outputs as value channels. For example:
1168+
1169+
```{literalinclude} snippets/process-out-singleton.nf
1170+
:language: nextflow
1171+
```
1172+
1173+
In the above example, the `echo` process is invoked with a regular value that is wrapped in a value channel. As a result, `echo` returns a value channel and `greet` is executed three times.
1174+
1175+
If the call to `echo` was changed to `echo( channel.of('hello') )`, the process would instead return a queue channel, and `greet` would be executed only once.
1176+
1177+
See also: {ref}`process-multiple-input-channels`.
1178+
11631179
(process-when)=
11641180

11651181
## When

docs/reference/cli.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1282,9 +1282,11 @@ The `run` command is used to execute a local pipeline script or remote pipeline
12821282

12831283
See {ref}`cli-params` for more information about writing custom parameters files.
12841284

1285+
(cli-secrets)=
1286+
12851287
### `secrets`
12861288

1287-
Manage pipeline secrets.
1289+
Manage {ref}`pipeline secrets <secrets-page>`.
12881290

12891291
**Usage**
12901292

docs/reference/config.md

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ This page lists all of the available settings in the {ref}`Nextflow configuratio
88

99
## Unscoped options
1010

11+
`bucketDir`
12+
: The remote work directory used by hybrid workflows. Equivalent to the `-bucket-dir` option of the `run` command.
13+
1114
`cleanup`
1215
: If `true`, on a successful completion of a run all files in *work* directory are automatically deleted.
1316

@@ -182,7 +185,7 @@ The following settings are available:
182185

183186
`aws.batch.terminateUnschedulableJobs`
184187
: :::{versionadded} 25.03.0-edge
185-
:::
188+
:::
186189
: When `true`, jobs that cannot be scheduled for lack of resources or misconfiguration are terminated automatically (default: `false`). The pipeline may complete with an error status depending on the error strategy defined for the corresponding jobs.
187190

188191
`aws.batch.volumes`
@@ -1246,10 +1249,26 @@ Read the {ref}`sharing-page` page to learn how to publish your pipeline to GitHu
12461249

12471250
## `nextflow`
12481251

1249-
:::{deprecated} 24.10.0
1250-
The `nextflow.publish` scope has been renamed to `workflow.output`. See {ref}`config-workflow` for more information.
1252+
:::{versionchanged} 24.10.0
1253+
The `nextflow.publish.retryPolicy` settings were moved to `workflow.output.retryPolicy`.
12511254
:::
12521255

1256+
:::{versionchanged} 25.06.0-edge
1257+
The `workflow.output.retryPolicy` settings were moved to `nextflow.retryPolicy`.
1258+
:::
1259+
1260+
`retryPolicy.delay`
1261+
: Delay used for retryable operations (default: `350ms`).
1262+
1263+
`retryPolicy.jitter`
1264+
: Jitter value used for retryable operations (default: `0.25`).
1265+
1266+
`retryPolicy.maxAttempts`
1267+
: Max attempts used for retryable operations (default: `5`).
1268+
1269+
`retryPolicy.maxDelay`
1270+
: Max delay used for retryable operations (default: `90s`).
1271+
12531272
(config-notification)=
12541273

12551274
## `notification`
@@ -1589,7 +1608,7 @@ The following settings are available:
15891608
`wave.retryPolicy.delay`
15901609
: :::{versionadded} 22.06.0-edge
15911610
:::
1592-
: The initial delay when a failing HTTP request is retried (default: `150ms`).
1611+
: The initial delay when a failing HTTP request is retried (default: `450ms`).
15931612

15941613
`wave.retryPolicy.jitter`
15951614
: :::{versionadded} 22.06.0-edge
@@ -1604,7 +1623,7 @@ The following settings are available:
16041623
`wave.retryPolicy.maxDelay`
16051624
: :::{versionadded} 22.06.0-edge
16061625
:::
1607-
: The max delay when a failing HTTP request is retried (default: `90 seconds`).
1626+
: The max delay when a failing HTTP request is retried (default: `90s`).
16081627

16091628
`wave.scan.mode`
16101629
: :::{versionadded} 24.09.1-edge
@@ -1705,18 +1724,6 @@ The `workflow` scope provides workflow execution options.
17051724
`'standard'`
17061725
: Overwrite existing files when the file size or last modified timestamp is different.
17071726

1708-
`workflow.output.retryPolicy.delay`
1709-
: Delay when retrying a failed publish operation (default: `350ms`).
1710-
1711-
`workflow.output.retryPolicy.jitter`
1712-
: Jitter value when retrying a failed publish operation (default: `0.25`).
1713-
1714-
`workflow.output.retryPolicy.maxAttempt`
1715-
: Max attempts when retrying a failed publish operation (default: `5`).
1716-
1717-
`workflow.output.retryPolicy.maxDelay`
1718-
: Max delay when retrying a failed publish operation (default: `90s`).
1719-
17201727
`workflow.output.storageClass`
17211728
: *Currently only supported for S3.*
17221729
: Specify the storage class for published files.

0 commit comments

Comments
 (0)