Pin gxwf to the workspace install + bump @galaxy-tool-util/cli to 1.10.0#340
Merged
Conversation
build-iwc.sh invoked `npx -p @galaxy-tool-util/cli` with no version, so the IWC format2 corpus tracked whatever gxwf npx resolved at build time (an old gxwf leaked non-canonical `unique_tools` + unquoted yaml-1.1 scalars into all 120 fixtures). Switch to `pnpm exec gxwf` so fixture-gen tracks the package.json pin, and bump @galaxy-tool-util/cli 1.8.1 -> 1.10.0. package.json + pnpm-lock.yaml are now the single source of truth for the gxwf version; regen picks it up via pnpm install, no script edit. Regen with 1.10.0 drops unique_tools (120/120 -> 0) and makes draft-extract an idempotent round-trip on the corpus. Co-Authored-By: Claude Opus 4.8 (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.
Why
workflow-fixtures/scripts/build-iwc.shinvokednpx -p '@galaxy-tool-util/cli' gxwfwith no version, so the generated IWC format2 corpus tracked whatever gxwfnpxhappened to resolve at build time — not the version pinned inpackage.json. An old gxwf leaked non-canonical output into all 120 fixtures:unique_tools:block (an in-memory-only derived field — not part of on-disk gxformat2; current gxwf strips it on serialize), anduse_guide: no, which PyYAML decodes to booleanFalseinstead of the string"no").Current gxwf (1.8.2+) no longer emits either, so any re-serialization "changed" untouched regions — which shows up as spurious byte-stability churn for the update-in-place pipeline whose whole value prop is byte-stable untouched regions.
What
build-iwc.sh:npx -p @galaxy-tool-util/cli gxwf→pnpm exec gxwf. Fixture-gen now runs the workspace-installed gxwf, so it tracks thepackage.json+pnpm-lock.yamlpin. Future bumps are edit-the-pin +pnpm install; no script edit.package.json:@galaxy-tool-util/cli^1.8.1→^1.10.0(latest); lockfile updated.package.jsonis now the single source of truth for the gxwf version.Verification
npm run test— 145/145 pass on the bump.iwc-format2with 1.10.0:unique_toolspresent in 120/120 → 0/120;use_guidecanonically quoted.draft-extracton a regenerated fixture is now a byte-identical round-trip (was droppingunique_tools/ re-quoting before, purely because the on-disk fixture was stale).Follow-ups (not in this PR)
content/cli/gxwf/index.mdandcontent/cli/galaxy-tool-cache/index.mdstill pin@1.8.1in theirinvoke_fallback+ prose (one line now falsely says it "tracks the^1.8.1devDependency"). These feed the runtime fallback baked into cast bundles — reconciling them means editing the notes → bump → recast the affected molds.~/projects/repositories/workflow-fixtures) is still on the old corpus; only local worktree fixtures were regenerated.🤖 Generated with Claude Code