Skip to content

feat: publish recovery with draft GitHub releases#84

Merged
theoephraim merged 3 commits into
mainfrom
feat/publish-recovery
May 27, 2026
Merged

feat: publish recovery with draft GitHub releases#84
theoephraim merged 3 commits into
mainfrom
feat/publish-recovery

Conversation

@theoephraim
Copy link
Copy Markdown
Member

Summary

  • None-only bump files no longer block publish retriesci release and ci plan now fall through to publish mode when bump files produce no actual releases
  • Draft GitHub releases track publish state — created before publishing with "Published to" section showing per-target status (✅/❌/⏭️) and registry links
  • Retry-safe — on retry, existing drafts are detected, already-succeeded targets skipped, and the release body is updated with new results
  • Smart tag handling — tags move to HEAD when no targets have published yet (safe for fix commits); stay put once any target succeeds
  • Superseded version cleanup — old draft releases are finalized with "skipped" status when a new version is created
  • Removed aggregate release mode — simplifies the release system; individual per-package releases only

Test plan

  • Trigger a normal publish and verify the GitHub release has the "Published to" section with ✅ and npm link
  • Intentionally break publish (e.g., bad auth), verify draft release created with ❌ status
  • Fix the issue, re-run CI, verify it detects the draft and retries successfully
  • Create a none-only bump file, merge, verify ci release still publishes unpublished packages
  • Test supersede flow: fail a publish, create a new version PR, verify old draft gets finalized with ⏭️

- ci release/plan now falls through to publish mode when bump files
  produce no releases (none-only files no longer block retries)
- Draft GitHub releases are created before publishing and used as
  source of truth for publish state tracking
- Release body includes "Published to" section with per-target status
  and links (npm, jsr) plus hidden metadata in HTML comment
- On retry: existing drafts are detected, succeeded targets skipped
- Tags move to HEAD when no targets have published yet (safe for fix
  commits); stay put once any target succeeds
- Superseded drafts (old versions) are finalized with skipped status
- Removed aggregate release mode (simplifies the release system)
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 26, 2026

bumpy-frog

The changes in this PR will be included in the next version bump.

minor Minor releases

  • @varlock/bumpy 1.9.2 → 1.10.0

Bump files in this PR

Click here if you want to add another bump file to this PR


This comment is maintained by bumpy.

@theoephraim theoephraim merged commit aa325c6 into main May 27, 2026
2 checks passed
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