meta_yml

SubworkflowLint.meta_yml(subworkflow, allow_missing: bool = False)

Lint a meta.yml file

The lint test checks that the subworkflow has a meta.yml file and that it follows the JSON schema defined in the subworkflows/yaml-schema.json file in the nf-core/modules repository.

In addition it checks that the subworkflow name and subworkflow input is consistent between the meta.yml and the main.nf.

Checks that all input and output channels are specified in meta.yml. Checks that all included components in main.nf are specified in meta.yml.

The following checks are performed:

  • meta_yml_exists: The meta.yml file must exist.
  • meta_yml_valid: The meta.yml must be valid according to the JSON schema defined at https://raw.githubusercontent.com/nf-core/subworkflows/master/modules/environment-schema.json.
  • meta_input: All input channels declared in main.nf must be listed under the input: key in meta.yml.
  • meta_output: All output channels declared in main.nf must be listed under the output: key in meta.yml.
  • meta_name: The name field in meta.yml must match the workflow name declared in main.nf.
  • meta_include: All modules and subworkflows included in main.nf must be listed under the components: key in meta.yml.
  • meta_modules_deprecated: The deprecated modules: section must not be present in meta.yml; use components: instead.