nextflow-io / nextflow-io/nextflow
GNU command line interface
@bentsherman is already working on this.
Since May 1, 2023.
- #3600 by @bentsherman — closed without merging
- Dominant language
- Groovy
- Stars
- 3.5k
- Forks
- 811
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 61
Description
Nextflow currently uses single - prefix for command level options and -- prefix for the definition of user workflow parameters.
Users frequently do not realise the difference and use the -- prefix for nextflow options, which instead are interpreted workflow parameters and therefor ignored, causing confusion.
For example people tend to use --resume instead of -resume causing the pipeline to re-start from scratch.
The goal of this issue is to re-organise the nextflow command line interface using the GNU convention i.e. using a single - for short options (one char) and -- for long options (2 or more chars) since this is the most common convention.
To distinguish nextflow options from the user workflow parameters, the run command line needs to be interpreted in a positional manner ie. all options up from the run command to the project/script to be executed are interpreted as run options. Following the project/script name are interpreted as the user workflow parameters. For example:
nextflow run --revision v1.1 --resume <project name> --foo x --bar y
Whenever possible the new CLI should be backward compatible with the current CLI, automatically replacing any single - prefix to a -- prefix and showing a warning message to the user.
A library that's a good candidate on which base the new CLI is Picocli.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.