Skip to content

Close out #322 residue: renderInstallCommand pin handling + planemo 0.75.45#359

Merged
jmchilton merged 2 commits into
mainfrom
close-322-residue-installcmd-and-planemo-rev
Jul 20, 2026
Merged

Close out #322 residue: renderInstallCommand pin handling + planemo 0.75.45#359
jmchilton merged 2 commits into
mainfrom
close-322-residue-installcmd-and-planemo-rev

Conversation

@jmchilton

Copy link
Copy Markdown
Member

Posted by Claude (AI assistant) on behalf of @jmchilton — not authored by them personally.

Closes the remaining residue from #322. Investigating it turned up that the issue's blocking premise was wrong, so items 1–3 were already resolved and only item 4 needed work.

The premise correction

#322 said the fork pin couldn't move to base planemo until a release carried galaxyproject/planemo#1636 (cli_metadata, output_schema). That PR merged 2026-05-14 and first shipped in 0.75.42 — two releases before the 0.75.44 the repo was already pinned to. Verified:

$ uvx --from planemo==0.75.45 planemo --help
  cli_metadata     Export structured metadata for Planemo CLI...
  output_schema    Export JSON Schemas for Planemo...

Items 1–3 (stale convert-nfcore cast, fork planemo.md in its bundle, fork SHA across vendored artifacts) were already done in earlier work; there are now zero references to the fork SHA or jmchilton/planemo anywhere in the tree. The pin note is corrected to say 0.75.42 rather than implying 0.75.44 was the first release to carry it.

Item 4 — renderInstallCommand (ef20f36)

renderInstallCommand unconditionally emitted <pkg>==<package_version>, which mangles any non-bare pin into invalid syntax. Base-planemo dodged it; the next VCS or range pin would not have.

Split out renderPackageSpec(pkg, version, origin), which classifies the pin first:

package_version pypi npm
1.2.3 pkg==1.2.3 pkg@1.2.3
>=1.2 pkg>=1.2 pkg@>=1.2
git+https://… pkg @ git+https://… (PEP 508) pkg@git+https://…

Specs are shell-quoted when needed, so a range pin isn't read as a redirect.

build-cli had no test harness at all — added vitest matching planemo-cli-meta's setup (tsc --noEmit && vitest run), with 9 tests covering the matrix above. The test earned its keep immediately: the first shell-safe charset omitted =, so bare pins came out quoted, which would have churned every existing cast bundle. Caught red, fixed, green.

Planemo rev to 0.75.45 (c3ad839)

Bumped content/cli/planemo/index.md and content/schemas/planemo-test-report.md (the latter's upstream: URL and Pin prose are live pins), regenerated vendored artifacts and the six CLI manual pages, recast the three planemo-pinned Molds, reassembled the pipeline harnesses, regenerated Dashboard.md.

Real deltas in 0.75.45: planemo test --failed gains an --lf alias and reads a new --failed_json; adds --shed_tool_data_table_config, --shed_data_manager_config, --shed_data_dir. The test-report JSON schema is byte-identical to 0.75.44.

Verification

make check exits 0 (validate 0 errors, 150/150 tests, generated + pipeline-assembly drift gates clean). packages-test, packages-lint, packages-format all clean.

Follow-ups (not in this PR)

  • foundry-build cast --check creates its destination directory despite being read-only — a repo-wide drift scan leaves empty dirs behind and breaks tests/plugin-packaging.test.ts. Filed separately.
  • The planemo pin is hardcoded in three sync scripts whose own comments name content/cli/planemo/index.md as the source of truth, and they stamp PIN.release into provenance rather than the version actually invoked — so a sync run against a mismatched PATH planemo produces artifacts that misreport their own provenance. Hit this during the rev. Worth fixing next.

🤖 Generated with Claude Code

jmchilton and others added 2 commits July 20, 2026 14:47
renderInstallCommand always emitted <pkg>==<package_version>, turning a
git+https:// or >=x pin into invalid install syntax. Split out
renderPackageSpec, which classifies the pin first: bare version gets ==,
a PEP 440 operator is concatenated as-is, a VCS/URL becomes a PEP 508
direct reference. Shell-quote specs that need it so a range pin isn't
read as a redirect.

build-cli had no test harness; add vitest to match planemo-cli-meta.

Refs #322.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Bump content/cli/planemo/index.md and content/schemas/planemo-test-report.md,
regenerate vendored artifacts and the six CLI manual pages, recast the three
planemo-pinned Molds, reassemble the pipeline harnesses.

0.75.45 reworks `planemo test --failed` (adds --lf alias, reads the new
--failed_json) and adds --shed_tool_data_table_config, --shed_data_manager_config,
--shed_data_dir. The test-report JSON schema is unchanged from 0.75.44.

Also corrects the pin note: #1636 first shipped in 0.75.42, not 0.75.44, so
cli_metadata/output_schema were in base planemo before the pin that claimed
to be waiting on them.

Refs #322.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant