Harden Planemo support (pin + test-report schema + CLI pages + convert Mold)#241
Merged
Conversation
jmchilton
force-pushed
the
module_farm
branch
3 times, most recently
from
May 11, 2026 18:16
3ce4fd4 to
da1aea8
Compare
… convert Mold Closes #238 stages 1-3 (stage 4 lazy per issue). - pin planemo to jmchilton/planemo@a9b8b8bc (PR #1636 merge); galaxyproject doesn't carry the SHA yet, unpin once #1636 merges + releases - new @galaxy-foundry/planemo-test-report-schema: AJV-2020-12 validator + validate-planemo-test-report bin + sync-from-planemo (envelope unwrap) + sync (TS regen) - new @galaxy-foundry/planemo-cli-meta: minimal vendored cli_metadata list so the validator's cli-command allowlist sees planemo (parallels @galaxy-tool-util/cli/meta) - new schema note content/schemas/planemo-test-report.md - new scripts/sync-planemo-cli.ts: shells out to planemo cli_metadata, emits content/cli/planemo/planemo-<name>.md with AUTO_BEGIN/END markers preserving hand-edited Output/Examples/Gotchas - seed CLI pages: planemo-{lint,test,workflow_test_init,workflow_test_on_invocation,cli_metadata,output_schema} - rewrote convert-nfcore-module-to-galaxy-tool §10: convergence loop now uses planemo test --test_output_json + AJV gate; classification fields per upstream PlanemoTestReport - cross-linked new CLI pages from planemo-asserts-idioms, planemo-workflow-test-architecture, implement-galaxy-workflow-test - AGENTS.md note: planemo only required when regenerating vendored artifacts - Makefile sync-planemo* targets; .github/workflows/planemo-drift.yml --check job Deviations from issue text: - filenames are planemo-<name>.md (prefixed), not bare <name>.md — slug-collision protection (the validator's wiki-link resolver has no tool-scoped lookup); underscore preservation honored on the suffix - packages/planemo-cli-meta/ added alongside the page generator (issue lists them as "or"); needed because validate.ts hardcodes CLI_METADATA_KEYS - two .mjs sync scripts per package; mirrors tests-format-schema precedent (issue said "All sync logic TS") Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #238 stages 1-3 (stage 4 explicitly lazy per the issue).
Summary
jmchilton/planemo@a9b8b8bc7ab3b12035d53bdb5383fe450413d9f3(PR Allow structured reasoning of Planemo command-line interface and certain outputs planemo#1636 merge commit). Galaxyproject doesn't carry the SHA yet — unpin once #1636 merges + releases.@galaxy-foundry/planemo-test-report-schema: vendored JSON Schema forplanemo test --test_output_json, AJV-2020-12 validator,validate-planemo-test-reportCLI, two-step sync (planemo → JSON → TS) so contributor laptops never need planemo.@galaxy-foundry/planemo-cli-meta: minimal vendored cli_metadata so the Foundry validator'scli-commandallowlist treats planemo as a known source (parallels@galaxy-tool-util/cli/metafor gxwf).scripts/sync-planemo-cli.ts: shells out toplanemo cli_metadata --command <name>, generatescontent/cli/planemo/planemo-<name>.mdwith AUTO_BEGIN/END markers that preserve hand-edited## Output/## Examples/## Gotchas.planemo-{lint,test,workflow_test_init,workflow_test_on_invocation,cli_metadata,output_schema}.content/schemas/planemo-test-report.md.planemo test --test_output_json, AJV-validates the report, classifies failures fromtests[].data.status/data.problem_log/data.jobinstead of free-text. Deleted the deferred-manpages caveat.planemo-asserts-idioms,planemo-workflow-test-architecture,implement-galaxy-workflow-test.AGENTS.md"Vendored planemo artifacts" section: planemo only required when regenerating.make sync-planemo*/check-planemo-clitargets;.github/workflows/planemo-drift.ymlCI gate.Deviations from issue text
planemo-<name>.md(prefixed) instead of bare<name>.md. The wiki-link resolver has no tool-scoped lookup; baretest.mdwould slug totestand[[planemo-test]]wouldn't resolve. Underscore preservation honored on the suffix (workflow_test_init).scripts/sync-planemo-cli.tsANDpackages/planemo-cli-meta/were built (issue listed them as "or"). The validator hardcodesCLI_METADATA_KEYSfrom npm-imported metadata sources, so a workspace-imported planemo source is needed in parallel..mjs(issue said "All sync logic TS"). Mirrors thetests-format-schema/scripts/sync-schema.mjsprecedent; the top-level page generator IS TypeScript.Open follow-ups
package_versionto a PyPI version pin and strengthenavailability_checktoplanemo cli_metadata --help.revised: 2026-05-11/revision: 1in regenerated frontmatter — needs a follow-up to preserve / bump those across regen.pip install, AGENTS.md tells humansuvx --from git+...— slight asymmetry.--rawflag on planemo upstream for cleaner pipe-to-file ergonomics (open question in the issue).Verification
npm run validate— 0 errors, 132 warnings (all pre-existing).npm run packages-typecheck/packages-lint/packages-format— clean.pnpm --filter @galaxy-foundry/planemo-test-report-schema test— 5/5 passing.pnpm --filter @galaxy-foundry/planemo-cli-meta test— 3/3 passing.npm run check:planemo-cli(with pinned planemo) — no drift.Pre-existing failures unrelated to this PR:
packages/summarize-nextflowSarek/rnaseq integration tests (commits 86197b5 / 11ec258) andtests/cli-registry.test.ts(needsnpm --prefix site installfirst).Test plan
--checkon CLI pages, runssync:from-planemo+ diff gate on both packages).content/cli/planemo/andcontent/schemas/planemo-test-report.mdpages.🤖 Generated with Claude Code