Advisory (detect-only) IUC best-practice checks for Galaxy tool XML — tier 3.5 of the galaxy-tool-source ecosystem.
Project description
galaxy-tool-lint
The advisory check tier (tier 3.5) of the Galaxy tool refactoring framework: read-only IUC best-practice checks that report but never mutate.
Where the codemod (tier 2) and fmt (tier 3) tiers fix a tool (their detect
phases report what their fix would change), this tier covers the
IUC tool_xml best-practices that are not safely auto-fixable — they
need a content or semantic decision (add tests, declare requirements, write
help). Each check is a RuleMeta-coded, detect_only=True rule that yields the
shared tier-0.5 Violation. The findings are advisory: the
galaxy-tool-refactor check command shows them but, by default, does not fail on
them (use --strict to gate on them too).
Scope
Depends only on tier 1 (galaxy-tool-source, the parsed ToolDocument and
profile helpers) and tier 0.5 (galaxy-tool-refactor-rules, RuleMeta /
Violation). It does not depend on the mutating tiers — the app
(galaxy-tool-refactor-cli) composes this alongside them.
from galaxy_tool_source.binding import load_tool
from galaxy_tool_lint.detect import detect_violations
for violation in detect_violations(load_tool("my_tool.xml")):
print(violation.code, violation.message)
Checks
See galaxy_tool_lint.checks and the IUC coverage map at
../docs/iuc_best_practices.md. GTR020.2 (single-quote Cheetah $var) is
implemented — it reads <command> text through the read-only command_text.py
lexer (quote/directive-aware, across newlines; the lexer lives in tier 1,
galaxy_tool_source.command_text, so the GTR020.1 codemod shares it) and reports one
advisory per fully-unquoted shell-line $var. Its provable subset is now
auto-fixed by the GTR020.1 codemod (docs/decisions.md D8). GTR089.2
(HelpRstResidual) is the advisory half of the GTR089 partition: it reports the
invalid <help> reStructuredText the GTR089.1 repair codemod can't safely fix,
through the same tier-1 predicate (galaxy_tool_source.rst; docs/decisions.md
D31). GTR032 (&&-vs-lone-&) is a real detector since docs/decisions.md
D34 (the data-backed D3 deferral ended when the CT3 lexer landed): the
lone_amp.py classifier flags only genuine command-joining lone &s.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file galaxy_tool_lint-0.2.0.tar.gz.
File metadata
- Download URL: galaxy_tool_lint-0.2.0.tar.gz
- Upload date:
- Size: 70.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6783ecf94a22fda9fe4b43b283e7f3bc05da11547b360079cec95d01b55a503
|
|
| MD5 |
081d91346c064e141b4c088adacddbd9
|
|
| BLAKE2b-256 |
bff20d0f1954ed24796094511d2405a5044a537cc005ebb3459f284e77d25fad
|
Provenance
The following attestation bundles were made for galaxy_tool_lint-0.2.0.tar.gz:
Publisher:
release.yml on richard-burhans/galaxy-tool-refactor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galaxy_tool_lint-0.2.0.tar.gz -
Subject digest:
d6783ecf94a22fda9fe4b43b283e7f3bc05da11547b360079cec95d01b55a503 - Sigstore transparency entry: 1792673598
- Sigstore integration time:
-
Permalink:
richard-burhans/galaxy-tool-refactor@524c6b6ee8dba405f5d3b1d192d120d996140a65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/richard-burhans
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@524c6b6ee8dba405f5d3b1d192d120d996140a65 -
Trigger Event:
workflow_dispatch
-
Statement type:
File details
Details for the file galaxy_tool_lint-0.2.0-py3-none-any.whl.
File metadata
- Download URL: galaxy_tool_lint-0.2.0-py3-none-any.whl
- Upload date:
- Size: 41.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed4526cfb1058b6a2fd6de4bc66564c7d9a775a92d12060ae11dc565f5e4303d
|
|
| MD5 |
1e5181b7bc8ece0ca580556d4d650f09
|
|
| BLAKE2b-256 |
65d8c141e76417218752fb5ea53225720f1b41215b58e8cb57427e8559a66fd6
|
Provenance
The following attestation bundles were made for galaxy_tool_lint-0.2.0-py3-none-any.whl:
Publisher:
release.yml on richard-burhans/galaxy-tool-refactor
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
galaxy_tool_lint-0.2.0-py3-none-any.whl -
Subject digest:
ed4526cfb1058b6a2fd6de4bc66564c7d9a775a92d12060ae11dc565f5e4303d - Sigstore transparency entry: 1792673784
- Sigstore integration time:
-
Permalink:
richard-burhans/galaxy-tool-refactor@524c6b6ee8dba405f5d3b1d192d120d996140a65 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/richard-burhans
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@524c6b6ee8dba405f5d3b1d192d120d996140a65 -
Trigger Event:
workflow_dispatch
-
Statement type: