Skip to content

fix(release): report publish PipelineError partial output in --json - #760

Merged
goosewobbler merged 3 commits into
mainfrom
fix/700-release-pipeline-error-envelope
Oct 24, 2026
Merged

goosewobbler merged 3 commits into
mainfrom
fix/700-release-pipeline-error-envelope

Conversation

@goosewobbler

@goosewobbler goosewobbler commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Description

release --json and standing-pr publish --json dropped a failed publish's partial output. Their error envelope had data: null, changed: false, and a message that didn't name the failed stage. publish --json already reported all three, so the commands disagreed on the same failure, and a retry or an agent reading the release envelope couldn't see what had already been published.

  • One helper: pipelineErrorEnvelope in @releasekit/publish builds the envelope for a PipelineError. publish uses it, and so does emitError in @releasekit/release, which the release, standing-pr and gate commands share. The envelope can't drift between commands.
  • Docs: docs/cli.md says release and standing-pr publish report a failed publish stage the same way, and that data then holds the publish output rather than their usual payload.

Related Issue(s)

Closes #700.

Type of Change

  • feat — New feature
  • fix — Bug fix
  • docs — Documentation change
  • refactor — Code refactoring
  • test — Adding or updating tests
  • chore — Maintenance, dependencies, tooling
  • Breaking change — Requires major version bump

Scope

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release
  • @releasekit/config
  • @releasekit/core
  • CI / workflows
  • Root / monorepo

Checklist

  • Lint passes (pnpm lint)
  • Tests pass (pnpm test)
  • Typecheck passes (pnpm typecheck)
  • Documentation updated (if applicable)
  • Breaking changes noted in description: none; data and changed only gain values on this failure

Testing Notes

  • Command-level tests for release --json and standing-pr publish --json: a PipelineError from the publish stage yields data set to the partial output, changed: true, and a message naming the stage. Both fail against main's emitResult.ts.
  • release.ts and standing-pr.ts rethrow the original PipelineError after posting the failure report, so the real commands reach the same envelope as the tests.
  • @releasekit/publish (334) and @releasekit/release (857) typecheck and tests pass, and pnpm lint passes.

Made with Cursor

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge.

Summary

Shares publish failure reporting through pipelineErrorEnvelope.

  • Failed publish commands keep partial results in JSON.

Reviews (1) · Last reviewed commit: "fix(release): report publish PipelineErr..." · Reviewed by Greptile

Co-authored-by: Cursor <cursoragent@cursor.com>
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Standing release PR: #730 · v0.42.1 queued (4 packages) · open 6h 32m · ✅ ready to merge

Release Preview — v0.42.0 → v0.42.1

Note: Labels on this PR are advisory in standing-pr mode. Bumps come from conventional commits in the standing PR; override by editing labels on the standing PR itself. Add release:immediate to bypass the standing PR and release this PR directly.

These changes will be added to the release PR (#730) when merged:

Changelog

monorepo 0.42.0 → 0.42.1

Changed

  • release and standing-pr publish keep a failed publish's output (cli)
  • cover jsonOutput when disabled; fix inverted guard test (version) (PR #754 · closes #725)
  • drop versionCalculator tests that mocked a missing helper (version) (PR #755 · closes #726)
  • link standing-pr.yml comments to published ci-setup URLs (templates) (PR #756 · closes #728)
  • cover standing-pr publish's PipelineError envelope (release)

Fixed

  • resolve relative --project-dir before loading config (version) (PR #757 · closes #698)
  • untagged-package warning matches resolved changelog range (version) (PR #749 · closes #727)
  • commit the standing PR's release branch with the PR title (release) (PR #729)
  • keep root changelog history when several packages release (notes) (PR #775 · closes #736)
  • report publish PipelineError partial output in --json (release)

All packages → 0.42.1 (sync versioning)

  • @releasekit/version
  • @releasekit/notes
  • @releasekit/publish
  • @releasekit/release

After merge — predicted release

No version escalation — this PR's changes will be included in the queued release without affecting the projected versions.

Package Standing PR This PR After merge
monorepo 0.42.1 0.42.1 0.42.1

Updated automatically by ReleaseKit

@goosewobbler

Copy link
Copy Markdown
Owner Author

@greptile review

github-actions Bot and others added 2 commits October 23, 2026 22:40
The issue asked for both `release` and `standing-pr publish` to report a
failed publish's partial output; only `release` had a test. The helper's
doc comment said it matched `publish --json`, which now calls it, so it
says why the message names the stage instead.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…tput

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@goosewobbler
goosewobbler merged commit d6664d6 into main Oct 24, 2026
32 checks passed
@goosewobbler
goosewobbler deleted the fix/700-release-pipeline-error-envelope branch October 24, 2026 01:03
goosewobbler pushed a commit that referenced this pull request Oct 24, 2026
Resolves the export conflict in packages/publish/src/index.ts by keeping
both pipelineErrorEnvelope (from #760) and VersionPackageChangelogSchema.
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.

release --json drops a publish failure's partial output and failed stage that publish --json reports

1 participant