galaxyproject / planemo

Command-line utilities to assist in developing Galaxy and Common Workflow Language artifacts - including tools, workflows, and training materials.
https://planemo.readthedocs.io/
MIT License
90 stars 85 forks source link

Workflow Linting Documentation #1211

Closed jmchilton closed 2 years ago

jmchilton commented 2 years ago

Write a section in the docs about workflow linting and mention the workflow best practices panel.

For each linting action either does - make sure there is a description of which linting source does what and create issues for missing linting actions in Planemo.

simonbray commented 2 years ago

Planemo workflow lint does some things right? Or is that just in gxformat2 and not yet integrated. I need to do some more research.

The workflow_lint subcommand doesn't deal with any of the creator, annotation or licence checks that are performed in the UI.

I can work on making sure that Planemo is checking the same things as the UI best practices panel. But it doesn't seem ideal to duplicate the checks which are being done in the Galaxy frontend (https://github.com/galaxyproject/galaxy/blob/dev/client/src/components/Workflow/Editor/Lint.vue) in Planemo, that will be annoying if the best practices are ever modified or extended.

Perhaps the checks could be made in the backend rather than in the client so they are also accessible for Planemo. But then Planemo needs to spin up a Galaxy server just to do linting... that also doesn't seem ideal.

(cont. from a GDoc thread)

mvdbeek commented 2 years ago

To the extent possible we should use schema-salad to do the linting (pretty sure we already do that for gxformat2), which can produce code to do that in multiple languages, among which python and typescript, so we have a common source of truth. I don't think that should block the manuscript though.

jmchilton commented 2 years ago

I really tried to make a schema salad description of the ga format and failed utterly at every step. My, perhaps unpopular, opinion is I think it is a tool for describing CWL-like languages and is not suitably general purpose for stuff like this.

mvdbeek commented 2 years ago

I thought we're sticking with gxformat2 ?