Skip to content

Fold the v0.5.0 release lessons into the release skill#342

Merged
dannon merged 1 commit into
mainfrom
chore/release-skill-lessons
Jun 19, 2026
Merged

Fold the v0.5.0 release lessons into the release skill#342
dannon merged 1 commit into
mainfrom
chore/release-skill-lessons

Conversation

@dannon

@dannon dannon commented Jun 19, 2026

Copy link
Copy Markdown
Member

Folds the lessons from the v0.5.0 cut back into the /release skill.

The headline addition is a Phase 2.5 root-only prepublish dry-run. publish-npm installs root deps only, then runs prepublishOnly (typecheck && test && smoke:pack). A root test that transitively imports app-only code (this time electron via app/src/main/files-handler.ts) fails to even resolve at transform time -- but a normal local npm test passes because app deps are usually installed too. That false confidence has now broken three releases (0.4.0 dompurify/marked, 0.5.0 electron). The new phase reproduces publish-npm faithfully (root-only npm ci + the gate) before tagging.

Other fixes from the same cut:

  • Phase 0 canonical-remote detection: awk -> grep (BSD/macOS awk chokes on the /[:/]/ char class, and the $-anchor never matched the (push) suffix anyway).
  • Phase 1 PR set: use the commit range ($LAST_TAG..HEAD --merges) as the source of truth and add gh pr list --limit 200 -- the date search over-includes same-day-but-pre-tag PRs when two tags share a day, and gh pr list silently truncates at 30.
  • Phase 3 recovery: gh run rerun --failed for a flaky leg (e.g. macOS hdiutil detach) instead of re-cutting; and reuse-the-tag-only-if-npm view-shows-it-never-published (vs bump if it did).
  • Phase 4: --notes-file instead of inline printf --notes; note to add a one-liner when an artifact shifts late (e.g. Windows dropping to a portable .zip).
  • Smaller notes: clean-tree can trip on smoke/package artifacts; a brand-new installer platform's make never runs until a real release; editorial bullet count scales with release size.

The v0.5.0 cut surfaced a handful of gaps the skill should have caught. Adds a
Phase 2.5 root-only prepublish dry-run -- the publish-npm job installs root deps
only, and a root test that imports app/electron code passes a normal local
`npm test` but breaks the gate (third time this has bitten a release). Fixes
the canonical-remote detection to use grep instead of awk (BSD awk chokes on the
char class), makes the PR set come from the commit range with `gh pr list
--limit` (the date search over-includes same-day pre-tag PRs and gh silently
truncates at 30), and documents recovery: `gh run rerun --failed` for a flaky
leg, and reuse-the-tag-only-if-npm-never-published. Also: clean-tree can trip on
smoke/package artifacts, new installer platforms never run their make until a
real release, and notes-file beats inline printf for the body.
@dannon dannon merged commit d6c83b3 into main Jun 19, 2026
3 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