diff --git a/docs/developer/config-scopes.md b/docs/developer/config-scopes.md index 8a8ece53f1..4f2fc9b603 100644 --- a/docs/developer/config-scopes.md +++ b/docs/developer/config-scopes.md @@ -8,7 +8,7 @@ This page provides guidance on defining configuration scopes in the Nextflow run The Nextflow configuration is defined as a collection of *scope classes*. Each scope class defines the set of available options, including their name, type, and an optional description for a specific configuration scope. -Scope classes are used to generate a configuration schema, which is in turn used for several purposes: +Scope classes are used to generate a configuration spec, which is in turn used for several purposes: - Validating config options at runtime (`nextflow run` and `nextflow config`) @@ -29,15 +29,15 @@ For example: ```groovy package nextflow.hello -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName @ScopeName('hello') class HelloConfig implements ConfigScope { } ``` -A scope class must provide a default constructor, so that it can be instantiated as an extension point. If no such constructor is defined, the config scope will not be included in the schema. In the above example, this constructor is implicitly defined because no constructors were declared. +A scope class must provide a default constructor, so that it can be instantiated as an extension point. If no such constructor is defined, the config scope will not be detected by Nextflow. In the above example, this constructor is implicitly defined because no constructors were declared. The fully-qualified class name (in this case, `nextflow.hello.HelloConfig`) must be included in the list of extension points. @@ -59,7 +59,7 @@ The `@ConfigOption` annotation can specify an optional set of types that are val String tags ``` -The field type and any additional types are included in the schema, allowing them to be used for validation. +The field type and any additional types are included in the config spec, allowing them to be used for validation. The field type can be any Java or Groovy class, but in practice it should be a class that can be constructed from primitive values (numbers, booleans, strings). For example, `Duration` and `MemoryUnit` are standard Nextflow types that can each be constructed from an integer or string. @@ -83,7 +83,7 @@ See `AzBatchOpts` and `AzPoolOpts` for an example of how placeholder scopes are ### Descriptions -Top-level scope classes and config options should use the `@Description` annotation to provide a description of the scope or option. This description is included in the schema, which is in turn used by the language server to provide hover hints. +Top-level scope classes and config options should use the `@Description` annotation to provide a description of the scope or option. This description is included in the config spec, which is in turn used by the language server to provide hover hints. For example: @@ -121,9 +121,9 @@ The Nextflow runtime adheres the following best practices where appropriate: For example: ```groovy -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName @ScopeName('hello') class HelloConfig implements ConfigScope { @@ -147,7 +147,7 @@ class HelloConfig implements ConfigScope { ### Runtime -Nextflow validates the config map after it is loaded. Top-level config scopes are loaded by the plugin system as extension points and converted into a schema, which is used to validate the config map. +Nextflow validates the config map after it is loaded. Top-level config scopes are loaded by the plugin system as extension points and converted into a config spec, which is used to validate the config map. Plugins are loaded after the config is loaded and before it is validated, since plugins can also define config scopes. If a third-party plugin declares a config scope, it must be explicitly enabled in order to validate config options from the plugin. Otherwise, Nextflow will report these options as unrecognized. @@ -165,12 +165,12 @@ new ExecutorConfig( Global.session.config.executor as Map ?: Collections.emptyMa In practice, it is better to avoid the use of `Global` and provide an instance of `Session` to the client class instead. ::: -### JSON Schema +### Config spec -Config scope classes can be converted into a schema with the `SchemaNode` class, which uses reflection to extract metadata such as scope names, option names, types, and descriptions. This schema is rendered to JSON and used by the language server at build-time to provide code intelligence such as code completion and hover hints. +Config scope classes can be converted into a config spec with the `SpecNode` class, which uses reflection to extract metadata such as scope names, option names, types, and descriptions. This spec is rendered to JSON and used by the language server at build-time to provide code intelligence such as code completion and hover hints. ### Documentation -The schema described above can also be rendered to Markdown using the `MarkdownRenderer` class. It produces a Markdown document approximating the {ref}`config-options` page. +The config spec described above can be rendered to Markdown using the `MarkdownRenderer` class. It produces a Markdown document approximating the {ref}`config-options` page. This approach to docs generation is not yet complete, and has not been incorporated into the build process yet. However, it can be used to check for discrepancies between the source code and docs when making changes. The documentation should match the `@Description` annotations as closely as possible, but may contain additional details such as version notes and extra paragraphs. diff --git a/docs/migrations/25-10.md b/docs/migrations/25-10.md index 3c9f8c2e98..517f458d1a 100644 --- a/docs/migrations/25-10.md +++ b/docs/migrations/25-10.md @@ -156,6 +156,8 @@ This feature addresses previous inconsistencies in timestamp representations. - 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 ` for details. +- The `nextflow.config.schema` package was renamed to `nextflow.config.spec`. Plugin developers that define custom {ref}`configuration scopes ` will need to update their imports accordingly. + ## Deprecations - The legacy type detection of CLI parameters is disabled when using the strict syntax (`NXF_SYNTAX_PARSER=v2`). {ref}`Legacy parameters ` in the strict syntax should not rely on legacy type detection. Alternatively, use the new `params` block to convert CLI parameters based on their type annotations. Legacy type detection can be disabled globally by setting the environment variable `NXF_DISABLE_PARAMS_TYPE_DETECTION=true`. diff --git a/docs/plugins/developing-plugins.md b/docs/plugins/developing-plugins.md index 6419d5f988..1c01085e4a 100644 --- a/docs/plugins/developing-plugins.md +++ b/docs/plugins/developing-plugins.md @@ -170,6 +170,8 @@ nextflow plugin my-plugin:hello --alpha --beta See the {ref}`cli-plugin` for usage information. +(dev-plugins-extension-points-config)= + ### Configuration Plugins can access the resolved Nextflow configuration through the session object using `session.config.navigate()`. Several extension points provide the session object for this reason. This method allows you to query any configuration option safely. If the option isn’t defined, it will return null. @@ -205,12 +207,16 @@ myplugin { :::{versionadded} 25.04.0 ::: +:::{versionchanged} 25.10.0 +The `nextflow.config.schema` package was renamed to `nextflow.config.spec`. +::: + Plugins can declare their configuration options by implementing the `ConfigScope` interface and declaring each config option as a field with the `@ConfigOption` annotation. For example: ```groovy -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName('myplugin') diff --git a/modules/nextflow/src/main/groovy/nextflow/conda/CondaConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/conda/CondaConfig.groovy index 89af2f10cb..deab324cf9 100644 --- a/modules/nextflow/src/main/groovy/nextflow/conda/CondaConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/conda/CondaConfig.groovy @@ -19,9 +19,9 @@ package nextflow.conda import java.nio.file.Path import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/config/ConfigMap.groovy b/modules/nextflow/src/main/groovy/nextflow/config/ConfigMap.groovy index c2bcd23962..3d3a03136c 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/ConfigMap.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/ConfigMap.groovy @@ -17,9 +17,9 @@ package nextflow.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description /** * Represent Nextflow config as Map diff --git a/modules/nextflow/src/main/groovy/nextflow/config/ConfigValidator.groovy b/modules/nextflow/src/main/groovy/nextflow/config/ConfigValidator.groovy index 8a5c074f27..bd7a307c43 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/ConfigValidator.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/ConfigValidator.groovy @@ -18,9 +18,9 @@ package nextflow.config import groovy.transform.CompileStatic import groovy.util.logging.Slf4j -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.SchemaNode -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.SpecNode +import nextflow.config.spec.ScopeName import nextflow.plugin.Plugins import nextflow.script.dsl.Description /** @@ -62,20 +62,20 @@ class ConfigValidator { /** * Additional config scopes added by third-party plugins */ - private SchemaNode.Scope pluginScopes + private SpecNode.Scope pluginScopes ConfigValidator() { loadPluginScopes() } private void loadPluginScopes() { - final children = new HashMap() + final children = new HashMap() for( final scope : Plugins.getExtensions(ConfigScope) ) { final clazz = scope.getClass() final name = clazz.getAnnotation(ScopeName)?.value() final description = clazz.getAnnotation(Description)?.value() if( name == '' ) { - children.putAll(SchemaNode.Scope.of(clazz, '').children()) + children.putAll(SpecNode.Scope.of(clazz, '').children()) continue } if( !name ) @@ -84,9 +84,9 @@ class ConfigValidator { log.warn "Plugin config scope `${clazz.name}` conflicts with existing scope: `${name}`" continue } - children.put(name, SchemaNode.Scope.of(clazz, description)) + children.put(name, SpecNode.Scope.of(clazz, description)) } - pluginScopes = new SchemaNode.Scope('', children) + pluginScopes = new SpecNode.Scope('', children) } void validate(ConfigMap config) { @@ -131,15 +131,15 @@ class ConfigValidator { } /** - * Determine whether a config option is defined in the schema. + * Determine whether a config option is defined in the spec. * * @param names */ boolean isValid(List names) { if( names.size() == 1 && names.first() in HIDDEN_OPTIONS ) return true - final child = SchemaNode.ROOT.getChild(names) - if( child instanceof SchemaNode.Option || child instanceof SchemaNode.DslOption ) + final child = SpecNode.ROOT.getChild(names) + if( child instanceof SpecNode.Option || child instanceof SpecNode.DslOption ) return true if( pluginScopes.getOption(names) ) return true @@ -164,18 +164,18 @@ class ConfigValidator { * @param names Config option split into individual names, e.g. 'process.resourceLimits' -> [process, resourceLimits] */ private boolean isMapOption(List names) { - return isMapOption0(SchemaNode.ROOT, names) + return isMapOption0(SpecNode.ROOT, names) || isMapOption0(pluginScopes, names) } - private static boolean isMapOption0(SchemaNode.Scope scope, List names) { - SchemaNode node = scope + private static boolean isMapOption0(SpecNode.Scope scope, List names) { + SpecNode node = scope for( final name : names ) { - if( node instanceof SchemaNode.Scope ) + if( node instanceof SpecNode.Scope ) node = node.children().get(name) - else if( node instanceof SchemaNode.Placeholder ) + else if( node instanceof SpecNode.Placeholder ) node = node.scope() - else if( node instanceof SchemaNode.Option ) + else if( node instanceof SpecNode.Option ) return node.type() == Map.class else return false diff --git a/modules/nextflow/src/main/groovy/nextflow/config/Manifest.groovy b/modules/nextflow/src/main/groovy/nextflow/config/Manifest.groovy index 12be6ba3ca..96a7ed068a 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/Manifest.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/Manifest.groovy @@ -20,9 +20,9 @@ import java.util.stream.Collectors import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.exception.AbortOperationException import nextflow.script.dsl.Description diff --git a/modules/nextflow/src/main/groovy/nextflow/config/WorkflowConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/config/WorkflowConfig.groovy index 39ab5884fb..e1b2e4c876 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/WorkflowConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/WorkflowConfig.groovy @@ -16,9 +16,9 @@ package nextflow.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("workflow") diff --git a/modules/nextflow/src/main/groovy/nextflow/config/schema/MarkdownRenderer.groovy b/modules/nextflow/src/main/groovy/nextflow/config/spec/MarkdownRenderer.groovy similarity index 79% rename from modules/nextflow/src/main/groovy/nextflow/config/schema/MarkdownRenderer.groovy rename to modules/nextflow/src/main/groovy/nextflow/config/spec/MarkdownRenderer.groovy index 5968cfca25..3404bdd6ee 100644 --- a/modules/nextflow/src/main/groovy/nextflow/config/schema/MarkdownRenderer.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/config/spec/MarkdownRenderer.groovy @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema +package nextflow.config.spec import groovy.transform.TypeChecked import nextflow.plugin.Plugins @@ -23,8 +23,7 @@ import nextflow.script.dsl.Description class MarkdownRenderer { String render() { - final schema = getSchema() - final entries = schema.entrySet().sort { entry -> entry.key } + final entries = getSpec().entrySet().sort { entry -> entry.key } final result = new StringBuilder() entries.each { entry -> final scopeName = entry.key @@ -45,24 +44,24 @@ class MarkdownRenderer { result.append("\n${fromDescription(description)}\n") result.append("\nThe following settings are available:\n") - final options = scope.children().findAll { name, node -> node instanceof SchemaNode.Option } + final options = scope.children().findAll { name, node -> node instanceof SpecNode.Option } renderOptions(options, scopeName, result) - final scopes = scope.children().findAll { name, node -> node instanceof SchemaNode.Scope } + final scopes = scope.children().findAll { name, node -> node instanceof SpecNode.Scope } renderOptions(scopes, scopeName, result) } return result.toString() } - private static Map getSchema() { - final result = new HashMap() + private static Map getSpec() { + final result = new HashMap() for( final scope : Plugins.getExtensions(ConfigScope) ) { final clazz = scope.getClass() final scopeName = clazz.getAnnotation(ScopeName)?.value() final description = clazz.getAnnotation(Description)?.value() if( scopeName == null ) continue - final node = SchemaNode.Scope.of(clazz, description) + final node = SpecNode.Scope.of(clazz, description) result.put(scopeName, node) } return result @@ -72,24 +71,24 @@ class MarkdownRenderer { return description.stripIndent(true).trim() } - private static void renderOptions(Map nodes, String scopeName, StringBuilder result) { + private static void renderOptions(Map nodes, String scopeName, StringBuilder result) { final prefix = scopeName ? scopeName + '.' : '' final entries = nodes.entrySet().sort { entry -> entry.key } entries.each { entry -> final name = entry.key final node = entry.value - if( node instanceof SchemaNode.Option ) + if( node instanceof SpecNode.Option ) renderOption("${prefix}${name}", node, result) - else if( node instanceof SchemaNode.Placeholder ) + else if( node instanceof SpecNode.Placeholder ) renderOptions(node.scope().children(), "${prefix}${name}.${node.placeholderName()}", result) - else if( node instanceof SchemaNode.Scope ) + else if( node instanceof SpecNode.Scope ) renderOptions(node.children(), "${prefix}${name}", result) else throw new IllegalStateException() } } - private static void renderOption(String name, SchemaNode.Option node, StringBuilder result) { + private static void renderOption(String name, SpecNode.Option node, StringBuilder result) { final description = fromDescription(node.description()) if( !description ) return diff --git a/modules/nextflow/src/main/groovy/nextflow/container/ApptainerConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/ApptainerConfig.groovy index 3129ff8239..4bb967b2f4 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/ApptainerConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/ApptainerConfig.groovy @@ -16,9 +16,9 @@ package nextflow.container import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/container/CharliecloudConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/CharliecloudConfig.groovy index 4633ba70f9..fc76282cec 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/CharliecloudConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/CharliecloudConfig.groovy @@ -16,9 +16,9 @@ package nextflow.container import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/container/DockerConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/DockerConfig.groovy index b4f0a32b01..e99a165140 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/DockerConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/DockerConfig.groovy @@ -18,9 +18,9 @@ package nextflow.container import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.util.logging.Slf4j -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("docker") diff --git a/modules/nextflow/src/main/groovy/nextflow/container/PodmanConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/PodmanConfig.groovy index 1fbe09ea55..4b70b7b49e 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/PodmanConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/PodmanConfig.groovy @@ -17,9 +17,9 @@ package nextflow.container import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("podman") diff --git a/modules/nextflow/src/main/groovy/nextflow/container/SarusConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/SarusConfig.groovy index 05c4c88391..4552e5199f 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/SarusConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/SarusConfig.groovy @@ -17,9 +17,9 @@ package nextflow.container import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("sarus") diff --git a/modules/nextflow/src/main/groovy/nextflow/container/ShifterConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/ShifterConfig.groovy index bbb9ba6e9f..4c701a65a2 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/ShifterConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/ShifterConfig.groovy @@ -16,9 +16,9 @@ package nextflow.container import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("shifter") diff --git a/modules/nextflow/src/main/groovy/nextflow/container/SingularityConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/container/SingularityConfig.groovy index caee2d1783..9e9f1210f4 100644 --- a/modules/nextflow/src/main/groovy/nextflow/container/SingularityConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/container/SingularityConfig.groovy @@ -16,9 +16,9 @@ package nextflow.container import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorConfig.groovy index e77394011c..073be5e905 100644 --- a/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorConfig.groovy @@ -17,9 +17,9 @@ package nextflow.executor import groovy.transform.CompileStatic import groovy.transform.Memoized -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration import nextflow.util.MemoryUnit diff --git a/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorRetryConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorRetryConfig.groovy index c8436fecff..579d4370da 100644 --- a/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorRetryConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/executor/ExecutorRetryConfig.groovy @@ -16,8 +16,8 @@ package nextflow.executor import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/fusion/FusionConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/fusion/FusionConfig.groovy index c0a2389d59..5f9f0b0659 100644 --- a/modules/nextflow/src/main/groovy/nextflow/fusion/FusionConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/fusion/FusionConfig.groovy @@ -25,9 +25,9 @@ import groovy.transform.Memoized import nextflow.Global import nextflow.Session import nextflow.SysEnv -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.MemoryUnit /** diff --git a/modules/nextflow/src/main/groovy/nextflow/mail/MailConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/mail/MailConfig.groovy index 315856e33d..bc287384f1 100644 --- a/modules/nextflow/src/main/groovy/nextflow/mail/MailConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/mail/MailConfig.groovy @@ -17,9 +17,9 @@ package nextflow.mail import groovy.transform.CompileStatic import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/mail/Notification.groovy b/modules/nextflow/src/main/groovy/nextflow/mail/Notification.groovy index 8f9c3cbdb2..f0383d220a 100644 --- a/modules/nextflow/src/main/groovy/nextflow/mail/Notification.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/mail/Notification.groovy @@ -17,9 +17,9 @@ package nextflow.mail import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description @ScopeName("notification") diff --git a/modules/nextflow/src/main/groovy/nextflow/plugin/spec/ConfigSpec.groovy b/modules/nextflow/src/main/groovy/nextflow/plugin/spec/ConfigSpec.groovy index e8a743f6ad..d872846819 100644 --- a/modules/nextflow/src/main/groovy/nextflow/plugin/spec/ConfigSpec.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/plugin/spec/ConfigSpec.groovy @@ -16,7 +16,7 @@ package nextflow.plugin.spec import groovy.transform.CompileStatic -import nextflow.config.schema.SchemaNode +import nextflow.config.spec.SpecNode import nextflow.script.types.Types import org.codehaus.groovy.ast.ClassNode @@ -28,21 +28,21 @@ import org.codehaus.groovy.ast.ClassNode @CompileStatic class ConfigSpec { - static Map of(SchemaNode node, String name) { + static Map of(SpecNode node, String name) { return fromNode(node, name) } - private static Map fromNode(SchemaNode node, String name) { - if( node instanceof SchemaNode.Option ) + private static Map fromNode(SpecNode node, String name) { + if( node instanceof SpecNode.Option ) return fromOption(node, name) - if( node instanceof SchemaNode.Placeholder ) + if( node instanceof SpecNode.Placeholder ) return fromPlaceholder(node, name) - if( node instanceof SchemaNode.Scope ) + if( node instanceof SpecNode.Scope ) return fromScope(node, name) throw new IllegalStateException() } - private static Map fromOption(SchemaNode.Option node, String name) { + private static Map fromOption(SpecNode.Option node, String name) { final description = node.description().stripIndent(true).trim() final type = fromType(new ClassNode(node.type())) @@ -56,7 +56,7 @@ class ConfigSpec { ] } - private static Map fromPlaceholder(SchemaNode.Placeholder node, String name) { + private static Map fromPlaceholder(SpecNode.Placeholder node, String name) { final description = node.description().stripIndent(true).trim() final placeholderName = node.placeholderName() final scope = fromScope(node.scope()) @@ -72,7 +72,7 @@ class ConfigSpec { ] } - private static Map fromScope(SchemaNode.Scope node, String scopeName=null) { + private static Map fromScope(SpecNode.Scope node, String scopeName=null) { final description = node.description().stripIndent(true).trim() final children = node.children().collect { name, child -> fromNode(child, name) diff --git a/modules/nextflow/src/main/groovy/nextflow/plugin/spec/PluginSpec.groovy b/modules/nextflow/src/main/groovy/nextflow/plugin/spec/PluginSpec.groovy index 90b96d64cb..4eef46d761 100644 --- a/modules/nextflow/src/main/groovy/nextflow/plugin/spec/PluginSpec.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/plugin/spec/PluginSpec.groovy @@ -16,9 +16,9 @@ package nextflow.plugin.spec import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.SchemaNode -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.SpecNode +import nextflow.config.spec.ScopeName import nextflow.plugin.extension.Factory import nextflow.plugin.extension.Function import nextflow.plugin.extension.Operator @@ -42,7 +42,7 @@ class PluginSpec { Map build() { final classLoader = Thread.currentThread().getContextClassLoader() - // extract schema for each plugin definition + // extract definition for each extension point final definitions = [] for( final className : extensionPoints ) { @@ -53,7 +53,7 @@ class PluginSpec { final description = clazz.getAnnotation(Description)?.value() if( !scopeName ) continue - final node = SchemaNode.Scope.of((Class)clazz, description) + final node = SpecNode.Scope.of((Class)clazz, description) definitions.add(ConfigSpec.of(node, scopeName)) } diff --git a/modules/nextflow/src/main/groovy/nextflow/spack/SpackConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/spack/SpackConfig.groovy index 4de5961a41..8550c3b311 100644 --- a/modules/nextflow/src/main/groovy/nextflow/spack/SpackConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/spack/SpackConfig.groovy @@ -17,9 +17,9 @@ package nextflow.spack import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/modules/nextflow/src/main/groovy/nextflow/trace/config/DagConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/trace/config/DagConfig.groovy index ff998000be..a6f4051872 100644 --- a/modules/nextflow/src/main/groovy/nextflow/trace/config/DagConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/trace/config/DagConfig.groovy @@ -16,9 +16,9 @@ package nextflow.trace.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.trace.TraceHelper diff --git a/modules/nextflow/src/main/groovy/nextflow/trace/config/ReportConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/trace/config/ReportConfig.groovy index e3acd3944d..10f62896e4 100644 --- a/modules/nextflow/src/main/groovy/nextflow/trace/config/ReportConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/trace/config/ReportConfig.groovy @@ -16,9 +16,9 @@ package nextflow.trace.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.trace.TraceHelper diff --git a/modules/nextflow/src/main/groovy/nextflow/trace/config/TimelineConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/trace/config/TimelineConfig.groovy index 7cd0a828bd..4632bdc79e 100644 --- a/modules/nextflow/src/main/groovy/nextflow/trace/config/TimelineConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/trace/config/TimelineConfig.groovy @@ -16,9 +16,9 @@ package nextflow.trace.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.trace.TraceHelper diff --git a/modules/nextflow/src/main/groovy/nextflow/trace/config/TraceConfig.groovy b/modules/nextflow/src/main/groovy/nextflow/trace/config/TraceConfig.groovy index 4bbc30ee1d..422d35f528 100644 --- a/modules/nextflow/src/main/groovy/nextflow/trace/config/TraceConfig.groovy +++ b/modules/nextflow/src/main/groovy/nextflow/trace/config/TraceConfig.groovy @@ -16,9 +16,9 @@ package nextflow.trace.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.trace.TraceHelper diff --git a/modules/nextflow/src/test/groovy/nextflow/plugin/spec/PluginSpecTest.groovy b/modules/nextflow/src/test/groovy/nextflow/plugin/spec/PluginSpecTest.groovy index ab7d54e445..22a19174aa 100644 --- a/modules/nextflow/src/test/groovy/nextflow/plugin/spec/PluginSpecTest.groovy +++ b/modules/nextflow/src/test/groovy/nextflow/plugin/spec/PluginSpecTest.groovy @@ -20,9 +20,9 @@ package nextflow.plugin.spec import groovyx.gpars.dataflow.DataflowReadChannel import groovyx.gpars.dataflow.DataflowWriteChannel import nextflow.Session -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.plugin.extension.Factory import nextflow.plugin.extension.Function import nextflow.plugin.extension.Operator diff --git a/modules/nf-lang/src/main/java/nextflow/config/ast/ConfigNode.java b/modules/nf-lang/src/main/java/nextflow/config/ast/ConfigNode.java index 124fdcc9e5..c01c562e27 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/ast/ConfigNode.java +++ b/modules/nf-lang/src/main/java/nextflow/config/ast/ConfigNode.java @@ -18,7 +18,7 @@ import java.util.ArrayList; import java.util.List; -import nextflow.config.schema.SchemaNode; +import nextflow.config.spec.SpecNode; import org.codehaus.groovy.ast.ModuleNode; import org.codehaus.groovy.control.SourceUnit; @@ -31,7 +31,7 @@ public class ConfigNode extends ModuleNode { private List configStatements = new ArrayList<>(); - private SchemaNode.Scope schema; + private SpecNode.Scope spec; public ConfigNode(SourceUnit sourceUnit) { super(sourceUnit); @@ -45,11 +45,11 @@ public void addConfigStatement(ConfigStatement statement) { configStatements.add(statement); } - public SchemaNode.Scope getSchema() { - return schema; + public SpecNode.Scope getSpec() { + return spec; } - public void setSchema(SchemaNode.Scope schema) { - this.schema = schema; + public void setSpec(SpecNode.Scope spec) { + this.spec = spec; } } diff --git a/modules/nf-lang/src/main/java/nextflow/config/control/VariableScopeVisitor.java b/modules/nf-lang/src/main/java/nextflow/config/control/VariableScopeVisitor.java index 7e3adc4e41..e2fac3e502 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/control/VariableScopeVisitor.java +++ b/modules/nf-lang/src/main/java/nextflow/config/control/VariableScopeVisitor.java @@ -27,7 +27,7 @@ import nextflow.config.ast.ConfigNode; import nextflow.config.ast.ConfigVisitorSupport; import nextflow.config.dsl.ConfigDsl; -import nextflow.config.schema.SchemaNode; +import nextflow.config.spec.SpecNode; import nextflow.script.ast.ASTNodeMarker; import nextflow.script.ast.ImplicitClosureParameter; import nextflow.script.control.VariableScopeChecker; @@ -89,7 +89,7 @@ public void visit() { public void visitConfigApplyBlock(ConfigApplyBlockNode node) { configScopes.add(node.name); var names = currentConfigScopes(); - var option = SchemaNode.ROOT.getDslOption(names); + var option = SpecNode.ROOT.getDslOption(names); if( option != null ) { vsc.pushScope(option.dsl()); super.visitConfigApplyBlock(node); diff --git a/modules/nf-lang/src/main/java/nextflow/config/scopes/Config.java b/modules/nf-lang/src/main/java/nextflow/config/scopes/Config.java index 1504915cb4..74c3af8a14 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/scopes/Config.java +++ b/modules/nf-lang/src/main/java/nextflow/config/scopes/Config.java @@ -15,8 +15,8 @@ */ package nextflow.config.scopes; -import nextflow.config.schema.ConfigOption; -import nextflow.config.schema.ConfigScope; +import nextflow.config.spec.ConfigOption; +import nextflow.config.spec.ConfigScope; import nextflow.script.dsl.Description; public class Config implements ConfigScope { diff --git a/modules/nf-lang/src/main/java/nextflow/config/schema/ConfigOption.java b/modules/nf-lang/src/main/java/nextflow/config/spec/ConfigOption.java similarity index 96% rename from modules/nf-lang/src/main/java/nextflow/config/schema/ConfigOption.java rename to modules/nf-lang/src/main/java/nextflow/config/spec/ConfigOption.java index 2805559983..d91811cd71 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/schema/ConfigOption.java +++ b/modules/nf-lang/src/main/java/nextflow/config/spec/ConfigOption.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema; +package nextflow.config.spec; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/modules/nf-lang/src/main/java/nextflow/config/schema/ConfigScope.java b/modules/nf-lang/src/main/java/nextflow/config/spec/ConfigScope.java similarity index 95% rename from modules/nf-lang/src/main/java/nextflow/config/schema/ConfigScope.java rename to modules/nf-lang/src/main/java/nextflow/config/spec/ConfigScope.java index 84e229a48f..7c9808a63a 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/schema/ConfigScope.java +++ b/modules/nf-lang/src/main/java/nextflow/config/spec/ConfigScope.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema; +package nextflow.config.spec; import org.pf4j.ExtensionPoint; diff --git a/modules/nf-lang/src/main/java/nextflow/config/schema/PlaceholderName.java b/modules/nf-lang/src/main/java/nextflow/config/spec/PlaceholderName.java similarity index 96% rename from modules/nf-lang/src/main/java/nextflow/config/schema/PlaceholderName.java rename to modules/nf-lang/src/main/java/nextflow/config/spec/PlaceholderName.java index 32e7a1efe5..3ccf68d531 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/schema/PlaceholderName.java +++ b/modules/nf-lang/src/main/java/nextflow/config/spec/PlaceholderName.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema; +package nextflow.config.spec; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/modules/nf-lang/src/main/java/nextflow/config/schema/ScopeName.java b/modules/nf-lang/src/main/java/nextflow/config/spec/ScopeName.java similarity index 97% rename from modules/nf-lang/src/main/java/nextflow/config/schema/ScopeName.java rename to modules/nf-lang/src/main/java/nextflow/config/spec/ScopeName.java index 9abae1ff6f..93eef492c6 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/schema/ScopeName.java +++ b/modules/nf-lang/src/main/java/nextflow/config/spec/ScopeName.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema; +package nextflow.config.spec; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/modules/nf-lang/src/main/java/nextflow/config/schema/SchemaNode.java b/modules/nf-lang/src/main/java/nextflow/config/spec/SpecNode.java similarity index 89% rename from modules/nf-lang/src/main/java/nextflow/config/schema/SchemaNode.java rename to modules/nf-lang/src/main/java/nextflow/config/spec/SpecNode.java index d851f3c3b2..93fd031239 100644 --- a/modules/nf-lang/src/main/java/nextflow/config/schema/SchemaNode.java +++ b/modules/nf-lang/src/main/java/nextflow/config/spec/SpecNode.java @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package nextflow.config.schema; +package nextflow.config.spec; import java.lang.reflect.AnnotatedElement; import java.lang.reflect.Field; @@ -31,11 +31,11 @@ import nextflow.script.dsl.ProcessDsl; /** - * Models the config schema. + * Models a config spec. * * @author Ben Sherman */ -public sealed interface SchemaNode { +public sealed interface SpecNode { String description(); public static final Scope ROOT = rootScope(); @@ -49,9 +49,9 @@ private static Scope rootScope() { return result; } - private static SchemaNode nextflowScope() { - var enableOpts = new HashMap(); - var previewOpts = new HashMap(); + private static SpecNode nextflowScope() { + var enableOpts = new HashMap(); + var previewOpts = new HashMap(); for( var field : FeatureFlagDsl.class.getDeclaredFields() ) { var fqName = field.getAnnotation(FeatureFlag.class).value(); var names = fqName.split("\\."); @@ -67,19 +67,19 @@ else if( fqName.startsWith("nextflow.preview.") ) return new Scope( "", Map.ofEntries( - Map.entry("enable", (SchemaNode) new Scope("", enableOpts)), - Map.entry("preview", (SchemaNode) new Scope("", previewOpts)) + Map.entry("enable", (SpecNode) new Scope("", enableOpts)), + Map.entry("preview", (SpecNode) new Scope("", previewOpts)) ) ); } - private static SchemaNode processScope() { + private static SpecNode processScope() { var description = """ The `process` scope allows you to specify default directives for processes in your pipeline. [Read more](https://nextflow.io/docs/latest/config.html#process-configuration) """; - var children = new HashMap(); + var children = new HashMap(); for( var method : ProcessDsl.DirectiveDsl.class.getDeclaredMethods() ) { var desc = annotatedDescription(method, ""); children.put(method.getName(), new Option(desc, optionType(method))); @@ -116,7 +116,7 @@ private static Class optionType(AnnotatedElement element) { public static record DslOption( String description, Class dsl - ) implements SchemaNode {} + ) implements SpecNode {} /** * Models a config option. @@ -124,7 +124,7 @@ public static record DslOption( public static record Option( String description, Class type - ) implements SchemaNode {} + ) implements SpecNode {} /** * Models a config scope that contains custom named scopes @@ -134,23 +134,23 @@ public static record Placeholder( String description, String placeholderName, Scope scope - ) implements SchemaNode {} + ) implements SpecNode {} /** * Models a config scope. */ public static record Scope( String description, - Map children - ) implements SchemaNode { + Map children + ) implements SpecNode { /** - * Get the schema node at the given path. + * Get the spec node at the given path. * * @param names */ - public SchemaNode getChild(List names) { - SchemaNode node = this; + public SpecNode getChild(List names) { + SpecNode node = this; for( var name : names ) { if( node instanceof Scope sn ) node = sn.children().get(name); @@ -196,7 +196,7 @@ public Scope getScope(List names) { * @param description */ public static Scope of(Class scope, String description) { - var children = new HashMap(); + var children = new HashMap(); for( var field : scope.getDeclaredFields() ) { var name = field.getName(); var type = field.getType(); diff --git a/modules/nf-lineage/src/main/nextflow/lineage/config/LineageConfig.groovy b/modules/nf-lineage/src/main/nextflow/lineage/config/LineageConfig.groovy index c73ffdc7de..94204c8e0e 100644 --- a/modules/nf-lineage/src/main/nextflow/lineage/config/LineageConfig.groovy +++ b/modules/nf-lineage/src/main/nextflow/lineage/config/LineageConfig.groovy @@ -20,9 +20,9 @@ import groovy.transform.CompileStatic import groovy.transform.ToString import nextflow.Global import nextflow.Session -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description /** diff --git a/modules/nf-lineage/src/main/nextflow/lineage/config/LineageStoreOpts.groovy b/modules/nf-lineage/src/main/nextflow/lineage/config/LineageStoreOpts.groovy index 4e70a6fef7..6c6d5e7733 100644 --- a/modules/nf-lineage/src/main/nextflow/lineage/config/LineageStoreOpts.groovy +++ b/modules/nf-lineage/src/main/nextflow/lineage/config/LineageStoreOpts.groovy @@ -18,8 +18,8 @@ package nextflow.lineage.config import groovy.transform.CompileStatic import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsBatchConfig.groovy b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsBatchConfig.groovy index 638a36f9f2..b0ed7a914c 100644 --- a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsBatchConfig.groovy +++ b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsBatchConfig.groovy @@ -24,8 +24,8 @@ import groovy.util.logging.Slf4j import nextflow.SysEnv import nextflow.cloud.CloudTransferOptions import nextflow.cloud.aws.batch.AwsOptions -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.exception.ProcessUnrecoverableException import nextflow.util.Duration diff --git a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsConfig.groovy b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsConfig.groovy index f5719c1af0..917aae210d 100644 --- a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsConfig.groovy +++ b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsConfig.groovy @@ -25,9 +25,9 @@ import groovy.transform.CompileStatic import groovy.util.logging.Slf4j import nextflow.Global import nextflow.SysEnv -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.util.IniFile /** diff --git a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsS3Config.groovy b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsS3Config.groovy index 8b6e98fb23..cd429c4c67 100644 --- a/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsS3Config.groovy +++ b/plugins/nf-amazon/src/main/nextflow/cloud/aws/config/AwsS3Config.groovy @@ -23,8 +23,8 @@ import software.amazon.awssdk.services.s3.model.ObjectCannedACL import groovy.transform.CompileStatic import groovy.util.logging.Slf4j import nextflow.SysEnv -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.file.FileHelper import nextflow.util.Duration diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzActiveDirectoryOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzActiveDirectoryOpts.groovy index db4db1a337..8c2a77a4ec 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzActiveDirectoryOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzActiveDirectoryOpts.groovy @@ -18,8 +18,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic import nextflow.SysEnv import nextflow.cloud.azure.nio.AzFileSystemProvider -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzBatchOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzBatchOpts.groovy index cf55c45148..1ef4944719 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzBatchOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzBatchOpts.groovy @@ -24,9 +24,9 @@ import groovy.transform.CompileStatic import nextflow.Global import nextflow.Session import nextflow.cloud.CloudTransferOptions -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.PlaceholderName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.PlaceholderName import nextflow.fusion.FusionHelper import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzConfig.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzConfig.groovy index 7f6f5a0583..e2001b291d 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzConfig.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzConfig.groovy @@ -19,8 +19,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic import nextflow.Global import nextflow.Session -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzCopyOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzCopyOpts.groovy index da7979f34c..9fbdeb34dd 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzCopyOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzCopyOpts.groovy @@ -17,8 +17,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzFileShareOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzFileShareOpts.groovy index b45d8ff2cb..f278ba70ab 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzFileShareOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzFileShareOpts.groovy @@ -20,8 +20,8 @@ import com.google.common.hash.Hasher import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.CacheFunnel import nextflow.util.CacheHelper diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzManagedIdentityOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzManagedIdentityOpts.groovy index 401f59beaf..5aff838ac9 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzManagedIdentityOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzManagedIdentityOpts.groovy @@ -19,8 +19,8 @@ import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString import nextflow.cloud.azure.nio.AzFileSystemProvider -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzPoolOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzPoolOpts.groovy index f44825466f..ebe8721b4e 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzPoolOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzPoolOpts.groovy @@ -22,8 +22,8 @@ import com.google.common.hash.Hasher import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.CacheFunnel import nextflow.util.CacheHelper diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRegistryOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRegistryOpts.groovy index 096677facf..da81afbb41 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRegistryOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRegistryOpts.groovy @@ -18,8 +18,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic import nextflow.SysEnv -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRetryConfig.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRetryConfig.groovy index 7930011292..3ae805868d 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRetryConfig.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzRetryConfig.groovy @@ -20,8 +20,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStartTaskOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStartTaskOpts.groovy index 346b730124..2086ea6090 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStartTaskOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStartTaskOpts.groovy @@ -16,8 +16,8 @@ package nextflow.cloud.azure.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description /** diff --git a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStorageOpts.groovy b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStorageOpts.groovy index 6bd2343902..e85e0b07ca 100644 --- a/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStorageOpts.groovy +++ b/plugins/nf-azure/src/main/nextflow/cloud/azure/config/AzStorageOpts.groovy @@ -20,9 +20,9 @@ import groovy.transform.CompileStatic import nextflow.SysEnv import nextflow.cloud.azure.batch.AzHelper import nextflow.cloud.azure.nio.AzFileSystemProvider -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.PlaceholderName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.PlaceholderName import nextflow.script.dsl.Description import nextflow.util.Duration /** diff --git a/plugins/nf-google/src/main/nextflow/cloud/google/GoogleOpts.groovy b/plugins/nf-google/src/main/nextflow/cloud/google/GoogleOpts.groovy index bb88932b00..ed36322567 100644 --- a/plugins/nf-google/src/main/nextflow/cloud/google/GoogleOpts.groovy +++ b/plugins/nf-google/src/main/nextflow/cloud/google/GoogleOpts.groovy @@ -27,9 +27,9 @@ import nextflow.Session import nextflow.SysEnv import nextflow.cloud.google.batch.client.BatchConfig import nextflow.cloud.google.config.GoogleStorageOpts -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.exception.AbortOperationException import nextflow.util.Duration diff --git a/plugins/nf-google/src/main/nextflow/cloud/google/batch/client/BatchConfig.groovy b/plugins/nf-google/src/main/nextflow/cloud/google/batch/client/BatchConfig.groovy index 984fa5930f..e25b9b905b 100644 --- a/plugins/nf-google/src/main/nextflow/cloud/google/batch/client/BatchConfig.groovy +++ b/plugins/nf-google/src/main/nextflow/cloud/google/batch/client/BatchConfig.groovy @@ -21,8 +21,8 @@ import groovy.transform.CompileStatic import groovy.util.logging.Slf4j import nextflow.Session import nextflow.cloud.google.GoogleOpts -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.MemoryUnit /** diff --git a/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleRetryOpts.groovy b/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleRetryOpts.groovy index b384940429..efbb767b4a 100644 --- a/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleRetryOpts.groovy +++ b/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleRetryOpts.groovy @@ -18,8 +18,8 @@ package nextflow.cloud.google.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleStorageOpts.groovy b/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleStorageOpts.groovy index f5f8316846..be4ad0461b 100644 --- a/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleStorageOpts.groovy +++ b/plugins/nf-google/src/main/nextflow/cloud/google/config/GoogleStorageOpts.groovy @@ -18,7 +18,7 @@ package nextflow.cloud.google.config import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigScope /** * * @author Paolo Di Tommaso diff --git a/plugins/nf-k8s/src/main/nextflow/k8s/K8sConfig.groovy b/plugins/nf-k8s/src/main/nextflow/k8s/K8sConfig.groovy index f53c489985..d5d6198235 100644 --- a/plugins/nf-k8s/src/main/nextflow/k8s/K8sConfig.groovy +++ b/plugins/nf-k8s/src/main/nextflow/k8s/K8sConfig.groovy @@ -25,9 +25,9 @@ import groovy.transform.Memoized import groovy.transform.PackageScope import groovy.util.logging.Slf4j import nextflow.BuildInfo -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.container.ContainerHelper import nextflow.script.dsl.Description import nextflow.exception.AbortOperationException diff --git a/plugins/nf-k8s/src/main/nextflow/k8s/client/K8sRetryConfig.groovy b/plugins/nf-k8s/src/main/nextflow/k8s/client/K8sRetryConfig.groovy index ac02251537..dfdd7a105b 100644 --- a/plugins/nf-k8s/src/main/nextflow/k8s/client/K8sRetryConfig.groovy +++ b/plugins/nf-k8s/src/main/nextflow/k8s/client/K8sRetryConfig.groovy @@ -20,8 +20,8 @@ package nextflow.k8s.client import groovy.transform.CompileStatic import groovy.transform.EqualsAndHashCode import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerConfig.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerConfig.groovy index a11dd0dcae..e754c0fb60 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerConfig.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerConfig.groovy @@ -18,9 +18,9 @@ package io.seqera.tower.plugin import groovy.transform.CompileStatic -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.platform.PlatformHelper diff --git a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerRetryPolicy.groovy b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerRetryPolicy.groovy index 9a45c3203a..076bf3df06 100644 --- a/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerRetryPolicy.groovy +++ b/plugins/nf-tower/src/main/io/seqera/tower/plugin/TowerRetryPolicy.groovy @@ -18,8 +18,8 @@ package io.seqera.tower.plugin import io.seqera.util.retry.Retryable -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration import nextflow.util.RetryConfig diff --git a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/HttpOpts.groovy b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/HttpOpts.groovy index 269b604be0..9fa7e9c4e9 100644 --- a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/HttpOpts.groovy +++ b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/HttpOpts.groovy @@ -19,8 +19,8 @@ package io.seqera.wave.plugin.config import groovy.transform.CompileStatic import groovy.transform.ToString -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration import nextflow.util.RateUnit diff --git a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/RetryOpts.groovy b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/RetryOpts.groovy index 9c1d0c8dac..2a47f58f1c 100644 --- a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/RetryOpts.groovy +++ b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/RetryOpts.groovy @@ -20,8 +20,8 @@ package io.seqera.wave.plugin.config import groovy.transform.CompileStatic import groovy.transform.ToString import io.seqera.util.retry.Retryable -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope import nextflow.script.dsl.Description import nextflow.util.Duration diff --git a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/WaveConfig.groovy b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/WaveConfig.groovy index ed38403f91..7e070fd2be 100644 --- a/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/WaveConfig.groovy +++ b/plugins/nf-wave/src/main/io/seqera/wave/plugin/config/WaveConfig.groovy @@ -24,9 +24,9 @@ import io.seqera.wave.api.BuildCompression import io.seqera.wave.api.ScanLevel import io.seqera.wave.api.ScanMode import io.seqera.wave.config.CondaOpts -import nextflow.config.schema.ConfigOption -import nextflow.config.schema.ConfigScope -import nextflow.config.schema.ScopeName +import nextflow.config.spec.ConfigOption +import nextflow.config.spec.ConfigScope +import nextflow.config.spec.ScopeName import nextflow.script.dsl.Description import nextflow.file.FileHelper import nextflow.util.Duration