Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[proposal] Expose ScriptParser as an extension point #4869

Open
bentsherman opened this issue Mar 31, 2024 · 2 comments
Open

[proposal] Expose ScriptParser as an extension point #4869

bentsherman opened this issue Mar 31, 2024 · 2 comments

Comments

@bentsherman
Copy link
Member

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 😄

@stevekm
Copy link
Contributor

stevekm commented Apr 23, 2024

would this enable the development of methods to use CWL to define Nextflow tasks? just wondering, there's a bunch of old issues related to that
https://github.com/nextflow-io/nextflow/issues?q=cwl
in particular this one #545

@bentsherman
Copy link
Member Author

That is a potential use case, supporting other workflow languages like CWL and WDL. Though I would push for something that simply translates them to Nextflow rather than run them directly, so that the user has a chance to make manual refinements and it's clear what is being executed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants