NEW FUNCTIONALITY
* `Functionality`: Allow specifying argument groups. Example:
yaml
functionality:
...
argument_groups:
- name: First group
arguments: [foo, bar]
description: Description
* Addition of the `viash_nxf_schema` component for converting a Viash config (for a workflow) into a nextflow schema file.
* `NextflowVdsl3Platform`: Use `--param_list` to initialise a Nextflow channel with multiple parameter sets.
Possible formats are csv, json, yaml, or simply a yaml_blob.
A csv should have column names which correspond to the different arguments of this pipeline.
A json or a yaml file should be a list of maps, each of which has keys corresponding to the arguments of the pipeline.
A yaml blob can also be passed directly as a parameter.
Inside the Nextflow pipeline code, params.params_list can also be used to directly a list of parameter sets.
When passing a csv, json or yaml, relative path names are relativized to the location of the parameter file.
Examples:
sh
nextflow run "target/foo/bar/main.nf" --param_list '[{"id": "foo", "input": "/path/to/bar"}]'
nextflow run "target/foo/bar/main.nf" --param_list "params.csv" --reference "/path/to/ref"
MAJOR CHANGES
* `NextflowVdsl3Platform`: The functionality is now slurped from a json instead of manually
taking care of the formatting in Groovy.
* `NextflowVdsl3Platform`: The `--help` is auto-generated from the config.
MINOR CHANGES
* `NextflowVdsl3Platform`: Allow both `--publish_dir` and `--publishDir` when `auto.publish = true`.
* `NextflowVdsl3Platform`: Allow passing parameters with multiplicity > 1 from Nextflow CLI.
* `Main`: Added `viash --cli_export` which outputs the internal cli construction information
to console. This is to be used to automate populating the documentation website.
* `viash ns`: Display success and failure summary statistics, printed to stderr.
* `DataObject`: `.alternatives` is now a `OneOrMore[String]` instead of `List[String]`, meaning
you can now specify `{ type: string, name: "--foo", alternatives: "-f" }` instead of
`{ type: string, name: "--foo", alternatives: [ "-f" ] }`
* `BashWrapper`: Added metadata field `meta_executable`, which is a shorthand notation for
`meta_executable="$meta_resources_dir/$meta_functionality_name"`
INTERNAL CHANGES
* `Arguments`: Internal naming of functionality.arguments is changed from DataObject to Arguments. Change is also applied to child classes, e.g. StringObject -> StringArgument.
* `Script`: Allow more control over where injected code ends up.
* Restructure type system to allow type-specific arguments.
BUG FIXES
* `DockerPlatform`: Change `org.opencontainers.image.version` annotation to `functionality.version` when set.
Additionally fixed retrieving the git tag possibly returning `fatal: No names found, cannot describe anything.` or similar.
* `viash config inject`: Fix config inject when `.functionality.inputs` or `.functionality.outputs` is used.
* `BashWrapper`: Don't add `bc` as dependency. Only perform integer/float min/max checks when bc is available, otherwise ignore.
* `DockerPlatform`: Fix inputs & outputs arguments being present twice.
* `viash ns test`: Silently skip Nextflow platforms as these don't support tests and will always fail.
* `Testbenches`: Better capture expected error messages while running testbenches. Having these show on the console could be confusing.
* `NextflowVdsl3Platform`: Fix issue when running multiple VDSL3 modules concurrently on the same channel.