You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: adr/20251017-typed-processes.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -245,7 +245,7 @@ Moving topic emissions to a dedicated section allows them to be defined without
245
245
246
246
## Distinguishing between typed and legacy processes
247
247
248
-
Typed processes are gated behind the `nextflow.preview.types` feature flag. This flag will be replaced by `nextflow.enable.types`when the feature becomes stable, which will be used to distinguish between typed and legacy processes in the language.
248
+
Typed processes are gated behind the `nextflow.enable.types` feature flag, in order to distinguish between typed and legacy processes in the language.
249
249
250
250
When a script enables this feature flag, its processes are treated as typed processes; otherwise, its processes are treated as legacy processes. This way, typed and legacy processes cannot be mixed in the same script, but they can be used together as long as they are declared in different scripts.
Copy file name to clipboardExpand all lines: adr/20260306-record-types.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -341,7 +341,7 @@ process FASTQC {
341
341
342
342
This approach is syntactically more concise, and it re-uses the typed output syntax that was introduced in Nextflow 25.10.
343
343
344
-
However, with this approach, the same syntax can have different meanings depending on the surrounding context (e.g. presence/absence of the `nextflow.preview.types` feature flag), which can be confusing for both users and agents.
344
+
However, with this approach, the same syntax can have different meanings depending on the surrounding context (e.g. presence/absence of the `nextflow.enable.types` feature flag), which can be confusing for both users and agents.
345
345
346
346
The `record()` approach works "out of the box", and it isn't much more verbose, so we decided that it is sufficient for now.
Copy file name to clipboardExpand all lines: adr/20260310-typed-workflows.md
+9-9Lines changed: 9 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -85,11 +85,11 @@ Even the pipe (`|`), which is loved by many users, can rarely be used in its ide
85
85
86
86
Introduce **typed workflows**, which provide a streamlined syntax for workflows that supports static typing.
87
87
88
-
Typed workflows can be used with the `nextflow.preview.types` feature flag:
88
+
Typed workflows can be used with the `nextflow.enable.types` feature flag:
89
89
90
90
```groovy
91
91
// typed workflow
92
-
nextflow.preview.types = true
92
+
nextflow.enable.types = true
93
93
94
94
workflow HELLO {
95
95
take:
@@ -131,7 +131,7 @@ The operator library is extended to support static typing and records:
131
131
132
132
All operators can be used with or without static typing, with some caveats:
133
133
134
-
- Some operators have stricter semantics when static typing is enabled via `nextflow.preview.types`. These changes are necessary in order to support static typing effectively. They should not affect the majority of existing code.
134
+
- Some operators have stricter semantics when static typing is enabled via `nextflow.enable.types`. These changes are necessary in order to support static typing effectively. They should not affect the majority of existing code.
135
135
136
136
- Some operators are discouraged from use with static typing. While they can still be used, the type checker will not be able to validate them. Users should be encouraged to migrate away from them in favor of the *core operators* that are statically typed.
137
137
@@ -219,7 +219,7 @@ This incremental approach was done in contrast to DSL2, which was a monolithic c
219
219
220
220
Most of the features for static typing are new concepts that can be used alongside existing code. However, typed processes and typed workflows modify existing concepts (`process` and `workflow` definitions), so they require a feature flag.
221
221
222
-
The `nextflow.enable.types` feature flag (currently in preview as `nextflow.preview.types`) will be used to distinguish between typed and legacy code, indefinitely. It would only be removed if the support for legacy syntax was removed, which is unlikely since DSL2 has been the standard Nextflow syntax for many years.
222
+
The `nextflow.enable.types` feature flag will be used to distinguish between typed and legacy code, indefinitely. It would only be removed if the support for legacy syntax was removed, which is unlikely since DSL2 has been the standard Nextflow syntax for many years.
223
223
224
224
To help distinguish between typed and legacy workflows, the use of type annotations should be allowed only for typed workflows:
225
225
@@ -239,7 +239,7 @@ workflow greet {
239
239
240
240
```groovy
241
241
// typed workflow
242
-
nextflow.preview.types = true
242
+
nextflow.enable.types = true
243
243
244
244
workflow greet {
245
245
take:
@@ -261,7 +261,7 @@ Typed and legacy workflows use different underlying dataflow types:
261
261
262
262
-**Typed workflows (v2)** use wrapper types: `ChannelImpl` (wraps a `DataflowBroadcast`) and `ValueImpl` (wraps a `DataflowVariable`). These wrappers implement the new operators and integrate with the type system.
263
263
264
-
While a given script must be entirely typed or entirely legacy (controlled by the `nextflow.preview.types` flag), **typed and legacy workflows can call each other across different scripts**. This interoperability enables incremental migration -- individual scripts can be migrated to static typing without having to update the entire pipeline at once.
264
+
While a given script must be entirely typed or entirely legacy (controlled by the `nextflow.enable.types` flag), **typed and legacy workflows can call each other across different scripts**. This interoperability enables incremental migration -- individual scripts can be migrated to static typing without having to update the entire pipeline at once.
Copy file name to clipboardExpand all lines: docs/migrations/26-04.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -97,15 +97,15 @@ See {ref}`script-records` for details. See {ref}`migrating-static-types` for mor
97
97
<h3>Static typing (preview)</h3>
98
98
99
99
:::{note}
100
-
Typed processes and typed workflows require the `nextflow.preview.types` feature flag to be enabled in every script that uses them.
100
+
Typed processes and typed workflows require the `nextflow.enable.types` feature flag to be enabled in every script that uses them.
101
101
:::
102
102
103
103
Nextflow 26.04 brings full support for static typing with {ref}`typed processes <process-typed-page>` and {ref}`typed workflows <workflow-typed-page>`.
104
104
105
105
Typed processes can now declare record inputs and outputs:
106
106
107
107
```nextflow
108
-
nextflow.preview.types = true
108
+
nextflow.enable.types = true
109
109
110
110
process FASTQC {
111
111
input:
@@ -129,7 +129,7 @@ process FASTQC {
129
129
Typed workflows can declare typed inputs and outputs, and provide first-class support for static typing in dataflow logic:
130
130
131
131
```nextflow
132
-
nextflow.preview.types = true
132
+
nextflow.enable.types = true
133
133
134
134
workflow RNASEQ {
135
135
take:
@@ -158,6 +158,10 @@ Several operators have been extended to support static typing and records:
158
158
159
159
Breaking changes from the {ref}`first preview <static-typing-first-preview>`:
160
160
161
+
- The `nextflow.preview.types` feature flag has been replaced with `nextflow.enable.types`.
162
+
163
+
- The `nextflow.enable.types` feature flag must be enabled in order to use type annotations in workflow takes/emits.
164
+
161
165
- The syntax for process tuple inputs has been updated:
162
166
163
167
```nextflow
@@ -172,8 +176,6 @@ Breaking changes from the {ref}`first preview <static-typing-first-preview>`:
172
176
173
177
- The method signature for the `stageAs` directive was changed from `(filePattern, value)` to `(value, filePattern)`.
174
178
175
-
- The `nextflow.preview.types` feature flag must be enabled in order to use type annotations in workflow takes/emits.
176
-
177
179
See {ref}`migrating-static-types` for more information about migrating to static typing. See {ref}`migrating-static-types-operators` for best practices on using operators with static typing.
Copy file name to clipboardExpand all lines: docs/reference/feature-flags.md
+4-24Lines changed: 4 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,10 +2,10 @@
2
2
3
3
# Feature flags
4
4
5
-
Feature flags enable experimental or other opt-in features. They must be specified in the pipeline script.
5
+
Feature flags enable opt-in features. They must be specified in the pipeline script.
6
6
7
7
:::{warning}
8
-
Feature flags with the `nextflow.preview` prefix can cause pipelines run with newer versions of Nextflow to fail due to breaking changes. Always consult the {ref}`migration notes <migrations-page>` before updating to a new Nextflow version.
8
+
Feature flags marked as *preview* can cause pipelines run with newer versions of Nextflow to fail due to breaking changes. Always consult the {ref}`migration notes <migrations-page>` before updating to a new Nextflow version.
9
9
:::
10
10
11
11
`nextflow.enable.configProcessNamesValidation`
@@ -49,28 +49,8 @@ Feature flags with the `nextflow.preview` prefix can cause pipelines run with ne
49
49
50
50
- Nextflow will fail if multiple functions and/or processes with the same name are defined in a module script
51
51
52
-
`nextflow.preview.output`
53
-
: :::{versionadded} 24.04.0
54
-
:::
55
-
: :::{deprecated} 25.10.0
56
-
This feature flag is no longer supported. Workflow outputs are out of preview.
57
-
:::
58
-
: When `true`, enables the use of {ref}`workflow outputs <workflow-output-def>`.
59
-
60
-
`nextflow.preview.recursion`
61
-
: *Preview feature: the syntax and behavior may change in future releases.*
62
-
: When `true`, enables {ref}`process and workflow recursion <workflow-recursion>`.
63
-
64
-
`nextflow.preview.topic`
65
-
: :::{versionadded} 24.04.0
66
-
:::
67
-
: :::{deprecated} 25.04.0
68
-
This feature flag is no longer supported. Topic channels are out of preview.
69
-
:::
70
-
: When `true`, enables the use of {ref}`topic channels <channel-topic>`.
71
-
72
-
`nextflow.preview.types`
73
-
: :::{versionadded} 25.10.0
52
+
`nextflow.enable.types`
53
+
: :::{versionadded} 26.04.0
74
54
:::
75
55
: *Preview feature: the syntax and behavior may change in future releases.*
76
56
: When `true`, enables the use of {ref}`typed processes <process-typed-page>` and {ref}`typed workflows <workflow-typed-page>`. Must be enabled in every script that uses typed processes/workflows. Legacy processes/workflows cannot be defined in scripts with this flag enabled.
Copy file name to clipboardExpand all lines: docs/reference/process.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ The following task properties are defined in the process body:
63
63
:::
64
64
65
65
:::{note}
66
-
Typed processes require the `nextflow.preview.types` feature flag to be enabled in every script that uses them. The syntax and behavior may change in future releases.
66
+
Typed processes require the `nextflow.enable.types` feature flag to be enabled in every script that uses them.
0 commit comments