ci: release every @pascal-app package at the same version - #909
Conversation
The release workflow bumped each package from its own version, so a cli-only hotfix left cli at 1.0.2 while the other six stayed at 1.0.1. Every run now releases all seven packages at a single version computed once from the highest version in the tree; the per-package choice is gone, and with it the single-package dependency check. A `none` run republishes the current version and only creates the tags that do not exist yet, so a drifted or partial release can be recovered in place. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
I hit an error while handling your request (Model unavailable on AI Gateway free tier: Free tier users do not have access to this model. Upgrade to paid credits at https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%3Fmodal%3Dtop-up for unrestricted…). Please try again, rephrase, or reach out if it keeps failing. Error id: 1ae92c21-53be-4846-8a58-36c8678be315 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 2486ced. Configure here.
| PKGS="$PKGS @pascal-app/core@$CORE_VERSION" | ||
| TAGS="$TAGS @pascal-app/core@$CORE_VERSION" | ||
| fi | ||
| if [ -n "$VIEWER_VERSION" ]; then |
There was a problem hiding this comment.
Recovery overwrites published CLI runtime
High Severity
none recovery (and any re-run that skips CLI publish) still rebuilds the portable runtime and --clobbers the GitHub Release archive for the already-published CLI version. The npm package keeps the original digest in runtime-source.json, so later downloads fail verification and the editor cannot start.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 2486ced. Configure here.


What does this PR do?
Every
@pascal-apppackage now carries the same version.release.ymlused to bump each package from its own version, one package or all at a time, which is howclireached 1.0.2 while the other six stayed at 1.0.1. Now:packageinput is gone. Every run releases all seven packages in dependency order.@pascal-app/*range. From today's tree,patchproduces 1.0.3 across the board.nonerepublishes the current version: packages already on npm at it are skipped (existing recovery logic), and only tags that do not exist yet are created and pushed, so a drifted or partial release can be recovered in place.cli-smokeand the portable-runtime validation always run.package.jsonkeepsrelease,release:beta,release:minor,release:majorwithout the package flag; the per-package scripts are removed.How to test
bash -n.patch→ 1.0.3 for all,none→ 1.0.2 for all,beta→ 2.0.0-beta.1 for all;@pascal-app/editorpeers rewrite to the shared version and the external@pascal-app/lingorange is untouched.gh workflow run release.yml -f bump=patch -f dry-run=trueshould report every package at 1.0.3 without publishing.Screenshots / screen recording
N/A — CI workflow change.
Checklist
bun devbun checkto verify)mainbranchbun devis not applicable to a workflow file. The release runbook (wiki/monorepo/npm-release.md) is updated in private-editor alongside the next submodule bump.Note
Medium Risk
Changes how all npm packages are versioned and published in CI; mistakes could ship mismatched versions or skip recovery paths, but logic is confined to the release workflow and root scripts.
Overview
Unified monorepo releases: the
packageworkflow input is removed so every manual release always bumps, builds, and publishes all seven@pascal-apppackages together.Versioning now picks the highest version already in the tree, applies the chosen
bumponce (patch/minor/major/beta/none), and sets thatRELEASE_VERSIONon every manifest and internal@pascal-app/*dependency range. That prevents a package that ran ahead (e.g. a CLI-only hotfix) from being republished under an older number.Workflow behavior changes:
cli-smokeand portable-runtime validation always run; per-packageifgates on publish steps are gone. The old single-package “missing published dependency” guard is removed. On commit/tag, tags that already exist are kept; only new tags are created and pushed (supportsnonerecovery). The CLI runtime GitHub asset upload runs on every non–dry-run release, not only CLI/all runs.Root
package.jsondrops per-packagerelease:*scripts;release,release:beta,release:minor, andrelease:majorno longer pass-f package=….Reviewed by Cursor Bugbot for commit 2486ced. Bugbot is set up for automated code reviews on this repo. Configure here.