Skip to content

Lint for incorrect .mix(XXX.out.versions.first()) subworklow calls #3713

@jfy133

Description

@jfy133

Description of feature

It would be nice to have a linting check that every subworkflow and module called within a given script has their versions mixed into the ch_versions channel and sent downstream.

This would help developers to ensure they do not forget version reporting for all steps of the pipeline - something which is very important for nf-core pipelines in terms of reprdocubility etc.

I could envision this as picking up all the names in all the include calls (typically at the top of a workflow script), the nsearching for each name with a .out.versions suffix through that given script.

If e.g. FOO.out.versions then you get a lint warning to ensure versions are reported for that module/subworkflow.

Furthermore, an additional check could be made so that for subworkflows that the string does not include .first() at the end as we do for modules - subworkflows should have N > 1 modules, thus you don't want to pick just the first entry of all of those modules.

(EDIT I didn't realise there was a lint check for the first suggestion, I guess because I never forget to mix my versions 😎)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions