galaxyproject / galaxyproject/planemo
Expect lint ERROR when conda requirement unavailable
- Dominant language
- Python
- Stars
- 110
- Forks
- 102
- Avg merge
- 4d 21h
- Merged PRs (30d)
- 13
Description
e.g. Using https://github.com/peterjc/pico_galaxy/blob/4d0f1d7e001778889e997776df9972df1a1914e3/tools/coverage_stats/coverage_stats.xml
```
$ planemo --version
planemo, version 0.41.0.dev0
$ planemo lint --fail_level error --conda_requirements tools/coverage_stats/
Linting tool /mnt/shared/users/xxx/repositories/pico_galaxy/tools/coverage_stats/coverage_stats.xml
Applying linter tests... CHECK
.. CHECK: 3 test(s) found.
Applying linter output... CHECK
.. INFO: 1 outputs found.
Applying linter inputs... CHECK
.. INFO: Found 2 input parameters.
Applying linter help... CHECK
.. CHECK: Tool contains help section.
.. CHECK: Help contains valid reStructuredText.
Applying linter general... CHECK
.. CHECK: Tool defines a version [0.0.5].
.. CHECK: Tool defines a name [BAM coverage statistics].
.. CHECK: Tool defines an id [coverage_stats].
.. CHECK: Tool targets 16.01 Galaxy profile.
Applying linter command... CHECK
.. INFO: Command uses deprecated 'interpreter' attribute.
.. INFO: Tool contains a command with interpreter of type [python].
Applying linter citations... CHECK
.. CHECK: Found 1 likely valid citations.
Applying linter tool_xsd... CHECK
.. INFO: File validates against XML schema.
Applying linter requirements_in_conda... WARNING
.. WARNING: Requirement [samtools@1.2.2] doesn't exactly match available version [1.4.1] in best practice Conda channel [bioconda].
```
I think the fact that samtools 1.2.2 is not (currently) available in Conda ought to be an ERROR not just a WARNING.
Contributor guide
Research direction
Start by reproducing the report with `planemo lint --fail_level error --conda_requirements tools/coverage_stats/` against `tools/coverage_stats/coverage_stats.xml`, focusing on the `requirements_in_conda` linter output. Done means an unavailable exact requirement such as `samtools@1.2.2` is reported as an ERROR rather than a WARNING and is handled by `--fail_level error`.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100