Skip to content

Commit b456c2f

Browse files
committed
Update docs
Signed-off-by: Ben Sherman <[email protected]>
1 parent 90a1457 commit b456c2f

File tree

8 files changed

+65
-93
lines changed

8 files changed

+65
-93
lines changed

docs/aws.md

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -550,31 +550,3 @@ To enable this capability, you need to enable the Wave service in the Nextflow c
550550
## Advanced configuration
551551

552552
Read the {ref}`AWS configuration<config-aws>` section to learn more about advanced configuration options.
553-
554-
## AWS SDK v1 to v2 migration
555-
556-
AWS Java SDK v1 is reaching end of life in December 2025. Since version `25.06.0-edge`, Nextflow uses AWS Java SDK v2 in the `nf-amazon` core plugin.
557-
The migration to the new version has introduced significant changes in the plugin. This section provides an overview of how these changes can affect the Nextflow configuration.
558-
559-
### HTTP Client
560-
561-
The most important change is in the HTTP clients. In v1, there was a single synchronous HTTP client to interact with AWS services.
562-
In v2, AWS Java SDK users can choose between different sync and async clients.
563-
To reduce the number of changes, the `nf-amazon` core plugin uses the HTTP sync client as in v1 in most cases, except for S3 transfers managed by the S3 Transfer Manager, where an async client is required.
564-
For these transfers, the plugin uses the CRT-based S3 async client, which is recommended for performance in large transfers.
565-
566-
### Signer and User Agent
567-
568-
Another important change in SDK v2 is the supported request signer. The new SDK only implements the AWS Signer V4, and the CRT client does not support overriding advanced HTTP options such as the signer override or user agent prefix.
569-
For this reason, overriding the signer or defining a user agent is no longer supported.
570-
571-
### Nextflow configuration
572-
573-
As a consequence of the changes mentioned above, the supported `aws.client` configuration options have been modified as described below.
574-
575-
* New options have been added to tune the new S3 Transfer Manager and CRT-based client. The main CRT-based client configuration is `targetThroughputInGbps`. This is used to automatically set low-level parameters like `maxConcurrency`, `maxNativeMemory`, `minimumPartSize`, and `multipartThreshold`.
576-
You can also define `transferManagerThreads`, but note this does not limit transfer concurrency — it is used for auxiliary tasks such as traversing directories, etc.
577-
578-
* Options `signerOverride`, `userAgent`, `protocol`, `socketSendBufferSizeHint`, and `socketRecvBufferSizeHint` are no longer supported by AWS SDK v2.
579-
580-
* Multi-part uploads are automatically managed by the S3 Transfer Manager in most cases. Therefore, the options `uploadChunkSize`, `uploadMaxAttempts`, `uploadMaxThreads`, and `uploadRetrySleep` are only used in the `Files.newOutputStream()` case, which cannot be handled by the S3 Transfer Manager.

docs/conf.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,8 @@
5050
'mail.md': 'notifications.md',
5151
'operator.md': 'reference/operator.md',
5252
'dsl1.md': 'migrations/dsl1.md',
53-
'updating-syntax.md': 'strict-syntax.md'
53+
'updating-syntax.md': 'strict-syntax.md',
54+
'updating-spot-retries.md': 'guides/updating-spot-retries.md'
5455
}
5556

5657
# Add any paths that contain templates here, relative to this directory.

docs/guides/aws-java-sdk-v2.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
(aws-java-sdk-v2-page)=
2+
3+
# AWS Java SDK v2
4+
5+
AWS Java SDK v1 is reaching end of life at the end of 2025. Starting in version `25.06.0-edge`, Nextflow uses AWS Java SDK v2 in the `nf-amazon` plugin.
6+
7+
This migration introduced several breaking changes to the `aws.client` config scope, including new options and removed options. This page describes these changes and how they affect your Nextflow configuraiton.
8+
9+
## New HTTP client
10+
11+
The HTTP client used by SDK v2 does not support overriding certain advanced HTTP options. As a result, the following config options are no longer supported:
12+
13+
- `aws.client.protocol`
14+
- `aws.client.signerOverride`
15+
- `aws.client.socketRecvBufferSizeHint`
16+
- `aws.client.socketSendBufferSizeHint`
17+
- `aws.client.userAgent`
18+
19+
## S3 transfer manager
20+
21+
The *S3 transfer manager* is a subsystem of SDK v2 which handles S3 transfers, including S3 uploads and downloads.
22+
23+
The concurrency and throughput of the S3 transfer manager can be configured manually using the `aws.client.maxConcurrency` and `aws.client.maxNativeMemory` config options. Alternatively, the `aws.client.targetThroughputInGbps` config option can be used to set the previous two options automatically based on a target throughput.
24+
25+
## Multi-part uplaods
26+
27+
Multi-part uploads are handled by the S3 transfer manager. The `aws.client.minimumPartSize` and `aws.client.multipartThreshold` config options can be used to control when and how multi-part uploads are performed.
28+
29+
The following multi-part upload options are no longer supported:
30+
31+
- `aws.client.uploadChunkSize`
32+
- `aws.client.uploadMaxAttempts`
33+
- `aws.client.uploadMaxThreads`
34+
- `aws.client.uploadRetrySleep`
File renamed without changes.

docs/index.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,11 +158,19 @@ developer/plugins
158158

159159
```{toctree}
160160
:hidden:
161-
:caption: Guides
161+
:caption: Tutorials
162162
:maxdepth: 1
163163
164164
data-lineage
165-
updating-spot-retries
166165
metrics
167166
flux
168167
```
168+
169+
```{toctree}
170+
:hidden:
171+
:caption: Guides
172+
:maxdepth: 1
173+
174+
guides/aws-java-sdk-v2
175+
guides/updating-spot-retries
176+
```

docs/migrations/25-10.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
(migrating-25-10-page)=
2+
3+
# Migrating to 25.10 (preview)
4+
5+
This page summarizes the upcoming changes in Nextflow 25.10, which will be released in October 2025.
6+
7+
:::{note}
8+
This page is a work in progress and will be updated as features are finalized. It should not be considered complete until the 25.10 release.
9+
:::
10+
11+
## Breaking changes
12+
13+
- The AWS Java SDK used by Nextflow was upgraded from v1 to v2, which introduced some breaking changes to the `aws.client` config options. See {ref}`the guide <aws-java-sdk-v2-page>` for details.

docs/reference/config.md

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -222,28 +222,28 @@ The following settings are available:
222222
`aws.client.maxConcurrency`
223223
: :::{versionadded} 25.06.0-edge
224224
:::
225-
: The maximum number of concurrent S3 transfers in the S3 Transfer Manager's client. By default, this setting is determined by `aws.client.targetThroughputInGbps`. Modifying this value can affect the amount of memory used for S3 transfers.
225+
: The maximum number of concurrent S3 transfers used by the S3 transfer manager. By default, this setting is determined by `aws.client.targetThroughputInGbps`. Modifying this value can affect the amount of memory used for S3 transfers.
226226

227227
`aws.client.maxConnections`
228-
: The maximum number of allowed open HTTP connections when using the synchronous S3 client (default: `50`).
228+
: The maximum number of open HTTP connections used by the S3 transfer manager (default: `50`).
229229

230230
`aws.client.maxErrorRetry`
231231
: The maximum number of retry attempts for failed retryable requests (default: `-1`).
232232

233233
`aws.client.maxNativeMemory`
234234
: :::{versionadded} 25.06.0-edge
235235
:::
236-
: The maximum native memory used by the S3 Transfers Manager's client. By default, this setting is determined by `aws.client.targetThroughputInGbps`. Modifying this value can affect the memory used by the S3 transfers.
236+
: The maximum native memory used by the S3 transfer manager. By default, this setting is determined by `aws.client.targetThroughputInGbps`.
237237

238238
`aws.client.minimumPartSize`
239239
: :::{versionadded} 25.06.0-edge
240240
:::
241-
: The minimum part size used by the S3 Transfer Manager's client multi-part uploads (default: `8 MB`).
241+
: The minimum part size used by the S3 transfer manager for multi-part uploads (default: `8 MB`).
242242

243243
`aws.client.multipartThreshold`
244244
: :::{versionadded} 25.06.0-edge
245245
:::
246-
: The object size threshold for performing multi-part uploads in the S3 Transfer Manager's client (default: same as `aws.cllient.minimumPartSize`).
246+
: The object size threshold used by the S3 transfer manager for performing multi-part uploads (default: same as `aws.cllient.minimumPartSize`).
247247

248248
`aws.client.protocol`
249249
: :::{deprecated} 25.06.0-edge
@@ -308,7 +308,7 @@ The following settings are available:
308308
`aws.client.targetThroughputInGbps`
309309
: :::{versionadded} 25.06.0-edge
310310
:::
311-
: The target network throughput (in Gbps) when using the asynchronous S3 client (default: `10`). This setting is not used when `aws.client.maxConcurrency` and `aws.client.maxNativeMemory` are specified.
311+
: The target network throughput (in Gbps) used by the S3 transfer manager (default: `10`). This setting is not used when `aws.client.maxConcurrency` and `aws.client.maxNativeMemory` are specified.
312312

313313
`aws.client.transferManagerThreads`
314314
: :::{versionadded} 25.06.0-edge
@@ -339,14 +339,12 @@ The following settings are available:
339339
:::
340340
: The maximum number of threads used for multipart upload (default: `10`).
341341

342-
343342
`aws.client.uploadRetrySleep`
344343
: :::{deprecated} 25.06.0-edge
345344
This option is no longer supported.
346345
:::
347346
: The time to wait after a failed upload attempt to retry the part upload (default: `500ms`).
348347

349-
350348
`aws.client.uploadStorageClass`
351349
: The S3 storage class applied to stored objects. Can be `STANDARD`, `STANDARD_IA`, `ONEZONE_IA`, or `INTELLIGENT_TIERING` (default: `STANDARD`).
352350

modules/nf-lang/src/main/java/nextflow/config/scopes/AwsClientConfig.java

Lines changed: 0 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,6 @@ The minimum size of a single part in a multipart upload (default: `8 MB`).
8585
""")
8686
public MemoryUnit multipartThreshold;
8787

88-
@ConfigOption
89-
@Description("""
90-
The protocol (i.e. HTTP or HTTPS) to use when connecting to AWS.
91-
""")
92-
public String protocol;
93-
9488
@ConfigOption
9589
@Description("""
9690
The proxy host to connect through.
@@ -133,24 +127,6 @@ The protocol scheme to use when connecting through a proxy (http/https).
133127
""")
134128
public boolean s3PathStyleAccess;
135129

136-
@ConfigOption
137-
@Description("""
138-
The name of the signature algorithm to use for signing requests made by the client.
139-
""")
140-
public String signerOverride;
141-
142-
@ConfigOption
143-
@Description("""
144-
The size hint (in bytes) for the low level TCP send buffer.
145-
""")
146-
public int socketSendBufferSizeHint;
147-
148-
@ConfigOption
149-
@Description("""
150-
The size hint (in bytes) for the low level TCP receive buffer.
151-
""")
152-
public int socketRecvBufferSizeHint;
153-
154130
@ConfigOption
155131
@Description("""
156132
The amount of time to wait (in milliseconds) for data to be transferred over an established, open connection before the connection is timed out.
@@ -181,36 +157,6 @@ The number of threads used by the S3 transfer manager (default: `10`).
181157
""")
182158
public int transferManagerThreads;
183159

184-
@ConfigOption
185-
@Description("""
186-
The HTTP user agent header passed with all HTTP requests.
187-
""")
188-
public String userAgent;
189-
190-
@ConfigOption
191-
@Description("""
192-
The size of a single part in a multipart upload (default: `100 MB`).
193-
""")
194-
public MemoryUnit uploadChunkSize;
195-
196-
@ConfigOption
197-
@Description("""
198-
The maximum number of upload attempts after which a multipart upload returns an error (default: `5`).
199-
""")
200-
public int uploadMaxAttempts;
201-
202-
@ConfigOption
203-
@Description("""
204-
The maximum number of threads used for multipart upload.
205-
""")
206-
public int uploadMaxThreads;
207-
208-
@ConfigOption
209-
@Description("""
210-
The time to wait after a failed upload attempt to retry the part upload (default: `500ms`).
211-
""")
212-
public Duration uploadRetrySleep;
213-
214160
@ConfigOption
215161
@Description("""
216162
The S3 storage class applied to stored objects, one of \\[`STANDARD`, `STANDARD_IA`, `ONEZONE_IA`, `INTELLIGENT_TIERING`\\] (default: `STANDARD`).

0 commit comments

Comments
 (0)