Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
139 changes: 8 additions & 131 deletions docs/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -250,149 +250,26 @@ $ nextflow drop nextflow-io/hello

See {ref}`cli-drop` for more information.

### Secret management

The `secrets` command manages secure pipeline secrets.

Use this to store credentials securely, reference them in pipelines without exposing values, and manage sensitive data centrally across your organization.

```console
$ nextflow secrets list
$ nextflow secrets set AWS_ACCESS_KEY_ID
$ nextflow secrets delete AWS_ACCESS_KEY_ID
```

See {ref}`cli-secrets` for more information.

## Module management

:::{versionadded} 26.04.0
:::

The `module` command enables working with reusable, registry-based modules. The Nextflow module system allows you to install, run, search, and publish standardized modules from registries, eliminating duplicate work and sharing improvements with the community.

Use these commands to discover modules in registries, install them into your project, run them directly without creating a workflow, and publish your own modules for others to use.

### Searching for modules

The `module search` command queries the module registry to discover available modules by keyword or name.

Use this to find modules for specific tasks, explore available tools, or discover community modules.

```console
$ nextflow module search alignment
$ nextflow module search "quality control" -limit 10
$ nextflow module search bwa -output json
```

Results include module names, versions, descriptions, and download statistics. Use `-limit` to control the number of results and `-output json` for JSON-formatted output.

See {ref}`cli-module-search` for more information.

### Installing modules

The `module install` command downloads modules from a registry and makes them available in your workflow. Modules are stored locally in the `modules/` directory. An additional `.module-info` file is created during to store installation information such as the module checksum at installation and the registry URL.

Use this to add reusable modules to your pipeline, manage module versions, or update modules to newer versions.

```console
$ nextflow module install nf-core/fastqc
$ nextflow module install nf-core/fastqc -version 1.0.0
```

The installed module will be available in `modules/nf-core/fastqc`.

Use the `-force` flag to reinstall a module even if local modifications exist.

See {ref}`cli-module-install` for more information.

### Listing modules

The `module list` command displays all modules currently installed in your project, showing their versions and integrity status.

Use this to review installed modules, check module versions, or detect local modifications.

```console
$ nextflow module list
$ nextflow module list -output json
```

The output shows each module's name, installed version, and whether it has been modified locally. Use `-o json` for JSON-formatted output.
The `module` command allows you to discover, install, and run modules through a centralized module registry. See {ref}`using-modules-page` and the {ref}`cli-module` command reference for more information.

See {ref}`cli-module-list` for more information.
## Secret management

### Viewing module information

The `module view` command displays detailed metadata and usage information for a specific module from the registry.

Use this to understand module requirements, view input/output specifications, see available tools, or generate usage templates before installing or running a module.

```console
$ nextflow module view nf-core/fastqc
$ nextflow module view nf-core/fastqc -version 1.0.0
$ nextflow module view nf-core/fastqc -output json
```

The output includes the module's version, description, authors, keywords, tools, input/output channels, and a generated usage template showing how to run the module. Use `-json` for machine-readable output suitable for programmatic access.

See {ref}`cli-module-view` for more information.

### Running modules directly

The `module run` command executes a module directly from the registry without requiring a wrapper workflow. This provides immediate access to module functionality for ad-hoc tasks or testing.

Use this to quickly run a module, test module functionality, or execute one-off data processing tasks.

```console
$ nextflow module run nf-core/fastqc --input 'data/*.fastq.gz'
$ nextflow module run nf-core/fastqc --input 'data/*.fastq.gz' -version 1.0.0
```

The command accepts all standard Nextflow execution options (`-profile`, `-resume`, etc.):

```console
$ nextflow module run nf-core/salmon \
--reads reads.fq \
--index salmon_index \
-profile docker \
-resume
```

Process inputs can be specified like params on the command line. For example, `--reads reads.fq` corresponds to the `reads` input in the `nf-core/salmon` module. Run `nextflow module view nf-core/salmon` to see the available params for the module.

See {ref}`cli-module-run` for more information.

### Removing modules

The `module remove` command deletes modules from your project, removing local files and configuration entries.

Use this to clean up unused modules, free disk space, or remove deprecated modules from your pipeline.

```console
$ nextflow module remove nf-core/fastqc
$ nextflow module remove nf-core/fastqc -keep-files
```

By default, both local files and configuration entries are removed. Use `-keep-files` to remove the configuration entry and `.module-info` while keeping local files.

See {ref}`cli-module-remove` for more information.

### Publishing modules

The `module publish` command uploads modules to a registry, making them available for others to install and use.
The `secrets` command manages secure pipeline secrets.

Use this to share your modules with the community, contribute to module libraries, or distribute modules within your organization.
Use this to store credentials securely, reference them in pipelines without exposing values, and manage sensitive data centrally across your organization.

```console
$ nextflow module publish myorg/my-module
$ nextflow module publish myorg/my-module -dry-run
$ nextflow secrets list
$ nextflow secrets set AWS_ACCESS_KEY_ID
$ nextflow secrets delete AWS_ACCESS_KEY_ID
```

Publishing requires authentication via the `NXF_REGISTRY_TOKEN` environment variable or the `registry.apiKey` config option. The module must include `main.nf`, `meta.yml`, and `README.md` files.

Use the {ref}`cli-module-spec` and {ref}`cli-module-validate` commands to prepare and validate a module before publishing.

See {ref}`cli-module-publish` for more information.
See {ref}`cli-secrets` for more information.

## Configuration and validation

Expand Down
3 changes: 2 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@
'flux.md': 'tutorials/flux.md',
'developer/plugins.md': 'plugins/developing-plugins.md',
'plugins.md': 'plugins/plugins.md',
'channel.md': 'workflow.md'
'channel.md': 'workflow.md',
'module.md': 'modules/modules.md'
}

# Add any paths that contain templates here, relative to this directory.
Expand Down
4 changes: 0 additions & 4 deletions docs/guides/gradle-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@ Nextflow provides a new `plugin create` command that simplifies the creation of

The [Nextflow Gradle plugin](https://github.com/nextflow-io/nextflow-plugin-gradle) configures default dependencies needed for Nextflow integration and defines Gradle tasks for building, testing, and publishing Nextflow plugins. The Gradle plugin is versioned and published to the [Gradle Plugin Portal](https://plugins.gradle.org/), allowing developers to manage it like any other dependency. As the plugin ecosystem evolves, the Gradle plugin will enable easier maintenance and adoption of improvements. This page introduces [Nextflow Gradle plugin](https://github.com/nextflow-io/nextflow-plugin-gradle) and how to use it.

:::{note}
The Nextflow Gradle plugin and plugin registry are currently available as a public preview. See the {ref}`Migrating to the Nextflow plugin registry <plugin-registry-page>` for more information.
:::

(gradle-plugin-create)=

## Creating a plugin
Expand Down
12 changes: 11 additions & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,23 @@ process
process-typed
workflow
workflow-typed
module
notifications
secrets
sharing
vscode
```

```{toctree}
:hidden:
:caption: Modules
:maxdepth: 1

modules/modules
modules/using-modules
modules/developing-modules
modules/module-registry
```
Comment thread
bentsherman marked this conversation as resolved.

```{toctree}
:hidden:
:caption: Software dependencies
Expand Down
2 changes: 1 addition & 1 deletion docs/migrations/24-10.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ The `task` variable in the process definition has two new properties, `task.prev

## Deprecations

- The use of `addParams` and `params` clauses in include declarations is deprecated. See {ref}`module-params` for details.
- The use of `addParams` and `params` clauses in include declarations is deprecated. See {ref}`strict-syntax-page` for details.

## Miscellaneous

Expand Down
2 changes: 1 addition & 1 deletion docs/migrations/26-04.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ include { BWA_MEM } from 'nf-core/bwa/mem'
All [nf-core modules](https://github.com/nf-core/modules) are automatically synced to the registry from GitHub. They are available as `nf-core/<name>` as shown above.
:::

See {ref}`module-registry` and the {ref}`cli-module` command reference for details.
See the {ref}`Modules overview <modules-page>` and {ref}`cli-module` command reference for details.

<h3>Record types</h3>

Expand Down
2 changes: 1 addition & 1 deletion docs/migrations/dsl1.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ Similarly, in DSL2, process outputs can be consumed by multiple consumers automa

In DSL1, the entire Nextflow pipeline must be defined in a single file. For example, `main.nf`. This restriction becomes cumbersome as a pipeline grows and hinders the sharing and reuse of pipeline components.

DSL2 introduces the concept of "module scripts" (or "modules" for short), which are Nextflow scripts that can be "included" by other scripts. While modules are not essential to migrating to DSL2, nor are they mandatory in DSL2, modules can help you organize a large pipeline into multiple smaller files and take advantage of modules created by others. See {ref}`module-page` to learn more about modules.
DSL2 introduces the concept of "module scripts" (or "modules" for short), which are Nextflow scripts that can be "included" by other scripts. While modules are not essential to migrating to DSL2, nor are they mandatory in DSL2, modules can help you organize a large pipeline into multiple smaller files and take advantage of modules created by others. See {ref}`modules-page` to learn more about modules.

:::{note}
DSL2 scripts cannot exceed 64 KB in size. Split large DSL1 scripts into modules to avoid this limit.
Expand Down
Loading
Loading