Skip to content

[proposal] Expose ScriptParser as an extension point #4869

@bentsherman

Description

@bentsherman

The ScriptParser class defines how a Nextflow script is executed. It essentially takes a Nextflow script and produces a Groovy class (i.e. BaseScript) which, when executed, builds the workflow DAG.

Exposing this interface as an extension point would serve a number of purposes:

  • allow Nextflow to support multiple parser implementations / DSL versions in a modular way (could also be done with a regular interface)

  • allow me to develop the formal grammar (Script parser #4613) in a plugin, where I can iterate much faster because the build time is so much lower (few seconds vs 30-60 seconds)

  • allow community developers to experiment with Nextflow syntax and propose changes in a way that can be easily tested

  • in the long term, allow developers from other domains to develop their own DSLs atop the Nextflow runtime (see BEAM and JS runtimes, which can be targeted by many different languages from different domains)

Lots of potential use cases from having this extension point. But for now I mostly just want to have faster build times 😄

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions