Bump inter-package peerDeps to ^0.8.0 + fix release.yml sync bug
Two bugs in one fix: 1. The 0.8.0 release commit only bumped .version, not the inter-package peerDependencies / devDependencies. So the published packages still declared peer constraints like "@pascal-app/viewer": "^0.7.0". Caret in semver 0.x doesn't allow 0.8.0 to satisfy ^0.7.0, so bun resolves workspace consumers (and apps/editor's deep import paths) to the stale npm-published 0.7.0 instead of the workspace 0.8.0 — meaning local edits never show up in apps/editor or any linked consumer. 2. The release.yml sync step was using $GITHUB_ENV to read back the new versions in the same step, which doesn't work — env-file writes only surface in subsequent steps. Switched to a bash associative array (NEW_VERSIONS) for in-step lookup, kept the $GITHUB_ENV write for the downstream publish/commit/tag steps. Also added a final "refs after sync" debug print so this is visible in the workflow log. After this lands and you bun install, packages/editor/node_modules/@pascal-app/viewer should symlink to the workspace packages/viewer/, not to .bun/@pascal-app+viewer@0.7.0. Future releases will sync peerDeps correctly on their own.
This commit is contained in:
@@ -67,12 +67,19 @@ jobs:
|
||||
echo "$MAJ.$MIN.$PAT"
|
||||
}
|
||||
|
||||
# Track new versions in shell-local vars.
|
||||
# NOTE: $GITHUB_ENV writes don't surface within the same step, so the
|
||||
# peerDeps sync below must use shell vars, not env indirection.
|
||||
declare -A NEW_VERSIONS
|
||||
|
||||
for pkg in core viewer editor mcp; do
|
||||
if [ "$TARGET" = "$pkg" ] || [ "$TARGET" = "all" ]; then
|
||||
CUR=$(jq -r '.version' packages/$pkg/package.json)
|
||||
NEW=$(bump_version "$CUR")
|
||||
jq --arg v "$NEW" '.version = $v' packages/$pkg/package.json > tmp.json && mv tmp.json packages/$pkg/package.json
|
||||
NEW_VERSIONS[$pkg]=$NEW
|
||||
UPPER=$(echo "$pkg" | tr '[:lower:]' '[:upper:]')
|
||||
# Also export for the publish/commit/tag steps that follow.
|
||||
echo "${UPPER}_VERSION=$NEW" >> $GITHUB_ENV
|
||||
echo "Bumped @pascal-app/$pkg: $CUR → $NEW"
|
||||
fi
|
||||
@@ -83,9 +90,7 @@ jobs:
|
||||
for pkg in core viewer editor mcp; do
|
||||
FILE=packages/$pkg/package.json
|
||||
for dep in core viewer editor mcp; do
|
||||
UPPER=$(echo "$dep" | tr '[:lower:]' '[:upper:]')
|
||||
VAR="${UPPER}_VERSION"
|
||||
VAL="${!VAR}"
|
||||
VAL="${NEW_VERSIONS[$dep]}"
|
||||
[ -z "$VAL" ] && continue
|
||||
jq --arg name "@pascal-app/$dep" --arg v "^$VAL" '
|
||||
if .peerDependencies[$name] then .peerDependencies[$name] = $v else . end
|
||||
@@ -94,6 +99,12 @@ jobs:
|
||||
done
|
||||
done
|
||||
|
||||
echo "=== @pascal-app/* refs after sync ==="
|
||||
for pkg in core viewer editor mcp; do
|
||||
echo "--- packages/$pkg/package.json ---"
|
||||
jq '{ peerDependencies: (.peerDependencies // {} | with_entries(select(.key | startswith("@pascal-app/")))), devDependencies: (.devDependencies // {} | with_entries(select(.key | startswith("@pascal-app/")))) }' packages/$pkg/package.json
|
||||
done
|
||||
|
||||
- name: Build & publish core
|
||||
if: inputs.package == 'core' || inputs.package == 'all'
|
||||
working-directory: packages/core
|
||||
|
||||
Reference in New Issue
Block a user