Fold the v0.5.0 release lessons into the release skill#342
Merged
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Folds the lessons from the v0.5.0 cut back into the
/releaseskill.The headline addition is a Phase 2.5 root-only prepublish dry-run.
publish-npminstalls root deps only, then runsprepublishOnly(typecheck && test && smoke:pack). A root test that transitively imports app-only code (this timeelectronviaapp/src/main/files-handler.ts) fails to even resolve at transform time -- but a normal localnpm testpasses 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-onlynpm ci+ the gate) before tagging.Other fixes from the same cut:
awk->grep(BSD/macOS awk chokes on the/[:/]/char class, and the$-anchor never matched the(push)suffix anyway).$LAST_TAG..HEAD --merges) as the source of truth and addgh pr list --limit 200-- the date search over-includes same-day-but-pre-tag PRs when two tags share a day, andgh pr listsilently truncates at 30.gh run rerun --failedfor a flaky leg (e.g. macOShdiutil detach) instead of re-cutting; and reuse-the-tag-only-if-npm view-shows-it-never-published (vs bump if it did).--notes-fileinstead of inlineprintf --notes; note to add a one-liner when an artifact shifts late (e.g. Windows dropping to a portable.zip).makenever runs until a real release; editorial bullet count scales with release size.