Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
fd27493
Add README files and disable generateSpec for all plugins
pditommaso Dec 13, 2025
86afc68
Update plugins/nf-amazon/README.md [ci skip]
pditommaso Dec 15, 2025
e5641c5
Update plugins/nf-azure/README.md [ci skip]
pditommaso Dec 15, 2025
32f9bda
Update plugins/nf-cloudcache/README.md [ci skip]
pditommaso Dec 15, 2025
357fdfb
Update plugins/nf-codecommit/README.md [ci skip]
pditommaso Dec 15, 2025
059eb0b
Update plugins/nf-console/README.md [ci skip]
pditommaso Dec 15, 2025
1e5ad23
Update plugins/nf-google/README.md [ci skip]
pditommaso Dec 15, 2025
fadb59f
Update plugins/nf-k8s/README.md [ci skip]
pditommaso Dec 15, 2025
2b0bb05
Update plugins/nf-tower/README.md [ci skip]
pditommaso Dec 15, 2025
73c0c0d
Update plugins/nf-wave/README.md [ci skip]
pditommaso Dec 15, 2025
305d850
Update plugins/gradle.properties [ci fast]
pditommaso Dec 16, 2025
ebfa0de
Fix failing tests [ci fast]
pditommaso Dec 16, 2025
8382c67
Update docs [ci skip]
pditommaso Dec 16, 2025
72aa88c
Merge branch 'master' into add-plugin-readmes
pditommaso Dec 16, 2025
d8f23e3
Update plugins/nf-amazon/README.md [ci skip]
pditommaso Dec 17, 2025
d22c382
Update plugins/nf-amazon/README.md [ci skip]
pditommaso Dec 17, 2025
be6419e
Update plugins/nf-amazon/README.md [ci skip]
pditommaso Dec 17, 2025
37f1f41
Update plugins/nf-amazon/README.md [ci skip]
pditommaso Dec 17, 2025
0bd8b3b
Update plugins/nf-tower/README.md [ci skip]
pditommaso Dec 17, 2025
8fa2595
Update plugins/nf-wave/README.md [ci skip]
pditommaso Dec 17, 2025
9c3b4c2
Update plugins/nf-wave/README.md [ci skip]
pditommaso Dec 17, 2025
2c98b22
Update plugins/nf-wave/README.md [ci skip]
pditommaso Dec 17, 2025
baa9f0b
Update plugins/nf-wave/README.md [ci skip]
pditommaso Dec 17, 2025
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
25 changes: 25 additions & 0 deletions docs/guides/gradle-plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,31 @@ End-to-end tests should be tailored to the needs of your plugin, but generally t

The Nextflow Gradle plugin allows you to publish plugins to the [Nextflow plugin registry](https://registry.nextflow.io/) from the command line.

(gradle-plugin-readme)=

### README.md requirement

When publishing to the registry, your project must include a `README.md` file in the plugin project root directory. This file will be used as the plugin description in the registry.

**Required sections:**

1. **Summary** - Explain what the plugin does
2. **Get Started** - Setup and configuration instructions
3. **Examples** - Code examples with code blocks
4. **License** - Specify the plugin's license (e.g., Apache 2.0, MIT, GPL)

**Optional sections:**

- **What's new** - Recent changes or new features
- **Breaking changes** - Incompatible changes users should be aware of

**Requirements:**

- Content must be meaningful (no placeholder text like TODO, TBD, Lorem ipsum)
- Content must be in English

### Publishing steps

To publish plugins to the [Nextflow plugin registry](https://registry.nextflow.io/):

1. {ref}`Claim your plugin <plugin-registry-claim>` in the registry.
Expand Down
2 changes: 2 additions & 0 deletions docs/plugins/plugin-registry.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ Nextflow 25.10 and later can use the plugin registry as a drop-in replacement fo
The Nextflow plugin registry is currently available as a public preview. Plugin developers can access the registry by contacting [[email protected]](mailto:[email protected]) to obtain access to the registry.
:::

See {ref}`gradle-plugin-publish` for instructions on how to publish plugins to the registry, including the {ref}`README.md requirement <gradle-plugin-readme>`.

(plugin-registry-claim)=

## Claiming a plugin
Expand Down
2 changes: 1 addition & 1 deletion plugins/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
## plugins settings
nextflowPluginVersion=1.0.0-beta.10
nextflowPluginVersion=1.0.0-beta.14
nextflowPluginProvider=nextflow-io
87 changes: 87 additions & 0 deletions plugins/nf-amazon/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Amazon Web Services plugin for Nextflow

The Amazon Web Services (AWS) plugin provides support for AWS, including AWS Batch as a compute executor, S3 as a file system, and Fusion file system for high-performance data operations.

## Get started

To use this plugin, add it to your `nextflow.config`:

```groovy
plugins {
id 'nf-amazon'
}
```

Configure your AWS credentials using environment variables, AWS CLI profiles, or IAM roles. Then set up the executor and work directory:

```groovy
process.executor = 'awsbatch'
process.queue = '<YOUR BATCH QUEUE>'
workDir = 's3://<YOUR BUCKET>/work'
aws {
region = 'us-east-1'
batch {
cliPath = '/home/ec2-user/miniconda/bin/aws'
}
}
```

## Examples

### Basic AWS Batch configuration

```groovy
plugins {
id 'nf-amazon'
}
process.executor = 'awsbatch'
process.queue = 'my-batch-queue'
workDir = 's3://my-bucket/work'
aws {
region = 'eu-west-1'
batch {
cliPath = '/home/ec2-user/miniconda/bin/aws'
jobRole = 'arn:aws:iam::123456789:role/MyBatchJobRole'
}
}
```

### Using Fusion file system

```groovy
fusion {
enabled = true
}
wave {
enabled = true
}
process.executor = 'awsbatch'
workDir = 's3://my-bucket/work'
```

### S3 storage options

```groovy
aws {
client {
maxConnections = 20
connectionTimeout = 10000
storageEncryption = 'AES256'
}
region = 'us-east-1'
}
```

## Resources

- [AWS Batch Executor Documentation](https://nextflow.io/docs/latest/aws.html)
- [Amazon S3 Storage Documentation](https://nextflow.io/docs/latest/aws.html#s3-storage)

## License

[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
1 change: 1 addition & 0 deletions plugins/nf-amazon/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ nextflowPlugin {
description = 'Provides comprehensive AWS cloud integration including Batch executor, S3 file system, and Fusion support for high-performance data operations'
className = 'nextflow.cloud.aws.AmazonPlugin'
useDefaultDependencies = false
generateSpec = false
extensionPoints = [
'nextflow.cloud.aws.batch.AwsBatchExecutor',
'nextflow.cloud.aws.config.AwsConfig',
Expand Down
113 changes: 63 additions & 50 deletions plugins/nf-azure/README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,83 @@
# Azure plugin for Nextflow
# Microsoft Azure plugin for Nextflow

This plugin implements the support for Azure Blob storage as file system
provider (via JSR203 interface) and Azure Batch executor for Nextflow.
The Microsoft Azure plugin provides support for Azure Blob Storage as a file system, and Azure Batch as a compute executor for Nextflow pipelines.

## Development
## Get Started
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Get Started
## Get started


Build Nextflow as usual:
To use this plugin, add it to your `nextflow.config`:

```bash
make compile
```groovy
plugins {
id 'nf-azure'
}
```

Use the following Nextflow configuration:
Configure your Azure credentials and services:

```groovy
azure {
storage {
accountName = '<YOUR STORAGE ACCOUNT NAME>'
accountKey = '<YOUR STORAGE ACCOUNT KEY>'
}
batch {
endpoint = 'https://<YOUR BATCH ACCOUNT NAME>.<REGION>.batch.azure.com'
accountName = '<YOUR BATCH ACCOUNT NAME>'
accountKey = '<YOUR BATCH ACCOUNT KEY>'
}
}
```

Set the executor and work directory:

```groovy
process.executor = 'azurebatch'
workDir = 'az://<YOUR CONTAINER>/work'
```

## Examples

### Basic Azure Batch Configuration
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Basic Azure Batch Configuration
### Basic Azure Batch configuration


```groovy
plugins {
id 'nf-azure'
id 'nf-azure'
}
azure {
storage {
accountKey = "<YOUR STORAGE ACCOUNT KEY>"
accountName = "<YOUR STORAGE ACCOUNT KEY>"
}
batch {
endpoint = 'https://<YOUR BATCH ACCOUNT NAME>.westeurope.batch.azure.com'
accountName = '<YOUR BATCH ACCOUNT NAME>'
accountKey = '<YOUR BATCH ACCOUNT KEY>'
}
storage {
accountName = 'mystorageaccount'
accountKey = System.getenv('AZURE_STORAGE_KEY')
}
batch {
endpoint = 'https://mybatchaccount.westeurope.batch.azure.com'
accountName = 'mybatchaccount'
accountKey = System.getenv('AZURE_BATCH_KEY')
autoPoolMode = true
deletePoolsOnCompletion = true
}
}
process.executor = 'azurebatch'
workDir = 'az://<YOUR DATA CONTAINER>/work'
workDir = 'az://mycontainer/work'
```

Then test the local build as usual:
### Using Managed Identity
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Using Managed Identity
### Using managed identity


```bash
./launch.sh run -c nextflow.config rnaseq-nf
```groovy
azure {
managedIdentity {
clientId = '<YOUR MANAGED IDENTITY CLIENT ID>'
}
}
```

## Todo

* Currently, the Blob storage service uses NettyHttpClient and Batch service
uses OkHttp client, duplicating the number of required libraries. In principle
the Blob service can use OkHttp, adding the following deps, however using that
Nextflow hangs during the shutdown, apparently because the connection pool used
by the blob service is not closed timely.

```groovy
compile('com.azure:azure-storage-blob:12.9.0') {
exclude group: 'org.slf4j', module: 'slf4j-api'
exclude group: 'com.azure', module: 'azure-core-http-netty'
}
compile('com.azure:azure-core-http-okhttp:1.3.3') {
exclude group: 'org.slf4j', module: 'slf4j-api'
}
```

* Remove invalid directory from .command.run PATH for project having `bin/` folder
* Add the configuration for the region
* Make the backend endpoint optional

### Additional Resources

* https://github.com/Azure/azure-sdk-for-java/wiki
* https://github.com/Azure/azure-sdk-for-java/tree/master/sdk/storage/azure-storage-blob-nio
* https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/storage/azure-storage-blob-nio/src/samples/java/com/azure/storage/blob/nio/ReadmeSamples.java
## Resources

- [Azure Batch Executor Documentation](https://nextflow.io/docs/latest/azure.html)

## License

[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
1 change: 1 addition & 0 deletions plugins/nf-azure/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ nextflowPlugin {
description = 'Enables Azure cloud execution through Batch service with native Blob storage access and comprehensive authentication options'
className = 'nextflow.cloud.azure.AzurePlugin'
useDefaultDependencies = false
generateSpec = false
extensionPoints = [
'nextflow.cloud.azure.batch.AzBatchExecutor',
'nextflow.cloud.azure.config.AzConfig',
Expand Down
84 changes: 84 additions & 0 deletions plugins/nf-cloudcache/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
# Cloud cache plugin for Nextflow

The Cloud cache plugin provides cloud-based caching support for Nextflow pipelines. It enables workflow resume capability when using cloud storage as the work directory.

## Get Started
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## Get Started
## Get started


To use this plugin, add it to your `nextflow.config`:

```groovy
plugins {
id 'nf-cloudcache'
}
```

The plugin is automatically activated when using cloud storage (S3, GS, Azure Blob) as the work directory with resume enabled.

```groovy
workDir = 's3://my-bucket/work'
```

Run your pipeline with the `-resume` flag:

```bash
nextflow run main.nf -resume
```

## Examples

### AWS S3 Cache
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### AWS S3 Cache
### AWS S3 cache


```groovy
plugins {
id 'nf-amazon'
id 'nf-cloudcache'
}
workDir = 's3://my-bucket/work'
aws {
region = 'us-east-1'
}
```

### Google Cloud Storage Cache
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Google Cloud Storage Cache
### Google Cloud Storage cache


```groovy
plugins {
id 'nf-google'
id 'nf-cloudcache'
}
workDir = 'gs://my-bucket/work'
google {
project = 'my-project'
location = 'us-central1'
}
```

### Azure Blob Storage Cache
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Azure Blob Storage Cache
### Azure Blob storage cache


```groovy
plugins {
id 'nf-azure'
id 'nf-cloudcache'
}
workDir = 'az://my-container/work'
azure {
storage {
accountName = 'mystorageaccount'
accountKey = System.getenv('AZURE_STORAGE_KEY')
}
}
```

## Resources

- [Nextflow Cache and Resume](https://nextflow.io/docs/latest/cache-and-resume.html)

## License

[Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0)
1 change: 1 addition & 0 deletions plugins/nf-cloudcache/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ nextflowPlugin {
description = 'Implements cloud-based caching system to optimize workflow performance by reducing redundant computations and data transfers'
className = 'nextflow.CloudCachePlugin'
useDefaultDependencies = false
generateSpec = false
extensionPoints = [
'nextflow.cache.CloudCacheFactory'
]
Expand Down
Loading
Loading