Skip to content

fix(ci): point the version-bump workflow at src/, and bump both version fields - #146

Open
pofallon wants to merge 1 commit into
mainfrom
fix/version-bump-workflow-paths
Open

pofallon wants to merge 1 commit into
mainfrom
fix/version-bump-workflow-paths

Conversation

@pofallon

Copy link
Copy Markdown
Contributor

Independent of the #418 contract stack (#142#145) — found while working through it.

The bug

version-bump.yml has never been able to run. It looks for packages/<name>/package.json, but apps live in src/<name>/, so the Verify package exists step fails for every input, on every app in the catalog. Nothing caught it because the trigger is workflow_dispatch only.

Why the path fix alone isn't enough

Each app carries its version in two places that have to agree:

  • bin/build-catalog.sh publishes the OCI tag from package.json;
  • the Hola server displays the one in manifest.json.

Bumping only package.json — which is all the workflow ever tried to do — ships a bundle advertising a version it wasn't published under. Both are now updated in lockstep.

A package whose two versions already disagree is refused rather than reconciled: guessing which one is authoritative would silently pick a winner and let them drift further. The error says which is which and asks for a manual fix.

Also

Drops the setup-node step. Its comment said it was needed "for the jq command" — jq doesn't need Node, it's preinstalled on ubuntu-latest, and nothing else in the job runs Node.

Testing

workflow_dispatch-only workflows can't be exercised from a PR, so I ran the logic directly: the YAML parses, a minor bump moves both files 2.0.0 → 2.1.0, and the mismatch guard fires on a deliberately desynced pair.

🤖 Generated with Claude Code

…on fields

The workflow has never been able to run. It looks for
`packages/<name>/package.json`, but apps live in `src/<name>/` — so the
"Verify package exists" step fails for every input, on every app in the
catalog. Nothing caught it because the trigger is workflow_dispatch only.

Fixing the path alone would leave it half-right. Each app carries its version
in two places that must agree: build-catalog.sh publishes the OCI tag from
package.json, while the Hola server shows the one in manifest.json. Bumping
only package.json ships a bundle advertising a version it wasn't published
under. Both are now updated in lockstep, and a package whose two versions
already disagree is refused rather than reconciled by guesswork — picking a
winner silently is how they'd drift further.

Also drops the setup-node step: it was there "for the jq command", which jq
doesn't need — jq is preinstalled on ubuntu-latest, and nothing else in the
job runs Node.

Verified: the YAML parses, a minor bump moves both files 2.0.0 -> 2.1.0, and
the mismatch guard fires on a desynced pair.

Co-authored-by: Claude Opus 5 <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