nextflow-io / nextflow-io/nextflow

Evolution of Nextflow command line interface

Open
#3,595 14 comments 0 reactions 1 assignee View on GitHub

@bentsherman is already working on this.

Since Feb 1, 2023.

Dominant language
Groovy
Stars
3.5k
Forks
811
Avg merge
2d 11h
Merged PRs (30d)
61

Description

Nextflow CLI is quite flexible, however, there are some legacy problems hard to solve without re-engineering it.

Common problems are:

  1. the lack of support list values
  2. the mix of nextflow options pipeline parameters with
  3. the use of the non-standard convention of options prefix i.e. -long-option instead of more --common --long-option
  4. implicit type conversion can have nasty side-effects
  5. double-notation (ie. --fooBar and --foo-bar) for pipeline params can create ambiguity and unexpected errors

The goal of this issue is to introduce a nextflow command line tool, named nf to address the above issue and keep backward compatibility with the existing command line whenever possible.

The following features should be supported

  • use the GNU syntax conventions for command line options. Therefore - is only used for single char options and the prefix -- is used for options for two or more characters.
  • Support list of values when an option is repeated more than once
  • Implicit conversion only for basic types i.e. integer numbers and boolean values (true/false)
  • Separate nextflow options from pipeline options using -- separate e.g. nextflow run <pipeline> --resume -- --foo --bar
  • avoid double notation for pipeline parameters

See also https://github.com/nextflow-io/nextflow/issues/556

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.