Skip to content

ci: release every @pascal-app package at the same version - #909

Merged
Aymericr merged 1 commit into
mainfrom
chore/lockstep-release
Sep 22, 2026
Merged

Aymericr merged 1 commit into
mainfrom
chore/lockstep-release

Conversation

@Aymericr

@Aymericr Aymericr commented Sep 22, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Every @pascal-app package now carries the same version. release.yml used to bump each package from its own version, one package or all at a time, which is how cli reached 1.0.2 while the other six stayed at 1.0.1. Now:

  • The package input is gone. Every run releases all seven packages in dependency order.
  • One version is computed from the highest version currently in the tree plus the bump, and applied to every package and every internal @pascal-app/* range. From today's tree, patch produces 1.0.3 across the board.
  • none republishes 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.
  • The single-package "missing published dependency" check is removed as dead code; cli-smoke and the portable-runtime validation always run.
  • Root package.json keeps release, release:beta, release:minor, release:major without the package flag; the per-package scripts are removed.

How to test

  1. YAML parses and both extracted scripts pass bash -n.
  2. The bump logic was run locally against copies of the seven manifests: patch → 1.0.3 for all, none → 1.0.2 for all, beta → 2.0.0-beta.1 for all; @pascal-app/editor peers rewrite to the shared version and the external @pascal-app/lingo range is untouched.
  3. After merge, gh workflow run release.yml -f bump=patch -f dry-run=true should report every package at 1.0.3 without publishing.

Screenshots / screen recording

N/A — CI workflow change.

Checklist

  • I've tested this locally with bun dev
  • My code follows the existing code style (run bun check to verify)
  • I've updated relevant documentation (if applicable)
  • This PR targets the main branch

bun dev is 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 package workflow input is removed so every manual release always bumps, builds, and publishes all seven @pascal-app packages together.

Versioning now picks the highest version already in the tree, applies the chosen bump once (patch / minor / major / beta / none), and sets that RELEASE_VERSION on 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-smoke and portable-runtime validation always run; per-package if gates 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 (supports none recovery). The CLI runtime GitHub asset upload runs on every non–dry-run release, not only CLI/all runs.

Root package.json drops per-package release:* scripts; release, release:beta, release:minor, and release:major no longer pass -f package=….

Reviewed by Cursor Bugbot for commit 2486ced. Bugbot is set up for automated code reviews on this repo. Configure here.

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>
@pascal

pascal Bot commented Sep 22, 2026

Copy link
Copy Markdown

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

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ 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

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 2486ced. Configure here.

@Aymericr
Aymericr merged commit 9d108a1 into main Sep 22, 2026
4 of 5 checks passed
@Aymericr
Aymericr deleted the chore/lockstep-release branch September 22, 2026 19:42
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