You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(release): self-heal the release-please "untagged, merged" abort
Root cause traced as far as possible: release-please's own createReleases()
(the step that actually tags a merged Release PR) sometimes finds nothing
to tag, and createPullRequests() then aborts every subsequent run without
ever completing the tag -- confirmed live across two separate
linked-versions release cycles this session (#7127, #7133), both requiring
a manual dispatch of each publish-*.yml workflow plus manually flipping
the merged PR's autorelease:pending label. Matches multiple long-open,
unresolved upstream issues (googleapis/release-please#1946/#1444/#1406),
so it isn't something fixable from this repo's config alone.
Adds a reconcile-stale-releases job that runs after every release-please
attempt, independent of its outputs: compares each package's committed
package.json version against what's actually live on npm, dispatches
that package's publish workflow whenever they disagree (the same
documented human-override path, automated), and flips any merged PR's
autorelease label once every package is confirmed live -- unsticking
release-please's own tracking for the next run. Also cleaned up one
ancient, silently-stuck instance of the exact same bug (engine v1.0.0,
autorelease:pending since long before this session).
if needs_publish packages/loopover-mcp @loopover/mcp; then
282
+
dispatch_and_wait publish-mcp.yml || echo "::warning::publish-mcp.yml did not succeed -- left for manual follow-up."
283
+
fi
284
+
if needs_publish packages/loopover-miner @loopover/miner; then
285
+
dispatch_and_wait publish-miner.yml || echo "::warning::publish-miner.yml did not succeed -- left for manual follow-up."
286
+
fi
287
+
else
288
+
echo "::warning::Skipping mcp/miner reconciliation -- publish-engine.yml did not succeed, and they depend on it."
289
+
fi
290
+
291
+
if needs_publish packages/loopover-ui-kit @loopover/ui-kit; then
292
+
dispatch_and_wait publish-ui-kit.yml || echo "::warning::publish-ui-kit.yml did not succeed -- left for manual follow-up."
293
+
fi
294
+
295
+
# Once every committed version is confirmed live on npm (the loop above didn't need to run, or
296
+
# completed successfully for everything it dispatched), any merged Release PR still carrying
297
+
# release-please's own `autorelease: pending` label is exactly the stuck state this job exists
298
+
# to fix -- flip it so release-please's NEXT run stops aborting on it.
299
+
- name: Un-stick release-please's own tracking on any merged-but-still-pending release PR
300
+
env:
301
+
GH_TOKEN: ${{ secrets.RELEASE_PLEASE_TOKEN }}
302
+
run: |
303
+
set -euo pipefail
304
+
for dir_pkg in "packages/loopover-engine:@loopover/engine" "packages/loopover-mcp:@loopover/mcp" "packages/loopover-miner:@loopover/miner" "packages/loopover-ui-kit:@loopover/ui-kit"; do
0 commit comments