Skip to content

how to load a Nextflow Plugin from a private git repo #4834

@stevekm

Description

@stevekm

in the Nextflow Plugin docs ( https://www.nextflow.io/docs/latest/plugins.html#using-plugins ) it describes config syntax like this to specify a version of a plugin

plugins {
    id 'nf-hello@0.1.0'
}

Further down, the "Testing" section describes how to use a custom registry for plugins ( https://www.nextflow.io/docs/latest/plugins.html#testing-plugins )

# custom registry at https://github.com/my-org/plugins
export NXF_PLUGINS_TEST_REPOSITORY="https://raw.githubusercontent.com/my-org/plugins/main/plugins.json"

# custom plugin release
export NXF_PLUGINS_TEST_REPOSITORY="https://github.com/nextflow-io/nf-hello/releases/download/0.3.0/nf-hello-0.3.0-meta.json"

nextflow run <pipeline> -plugins nf-hello

It seems that the "registry" here contains a list of all available Nextflow Plugins; https://github.com/nextflow-io/plugins/blob/main/plugins.json

Its not clear to me how we can combine these methods, such that we can still use the default Nextflow Plugins such as nf-prov from the official sources, and also include some custom modules that may be hosted internally on a private git repository.

Based on these docs, it sounds as if you would have to mirror the entire official registry JSON yourself, and add in the URL to your custom plugin. Its not clear how credentials for the custom plugin would be passed.

I think it would be a lot easier if something like the syntax from pip could be used, it looks like this;

(from conda environment.yml)

  - pip:
   - git+https://github.com/myorg/my-plugin-repo.git@1.2.3

something like this which lets you bundle both a git repo URL and a version label along with the plugin id might be helpful, is this possible? Are there other methods available to allow for providing the path directly to the plugin to use, such as maybe a S3 path to a .jar file in a bucket somewhere?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions