Releasing
#Goals
- Ship npm packages (core first, then CLI).
- Tag + GitHub release.
- Submit the matching extension package to the Chrome Web Store unless the release is daemon-only.
- Verify the Homebrew/core formula so
brew install summarizematches the latest tag.
#Checklist
scripts/release.sh all(gates → build all assets → pack verify → publish → smoke → tag → GitHub release/assets).- Verify the GitHub release notes and uploaded Bun/extension assets.
- Submit the Chrome extension update:
- Skip this step only when every shipped change is daemon-side and the packaged extension and its companion contract are unchanged.
- Using the existing authenticated Chrome profile, open the Chrome Web Store Developer Dashboard and select item
cejgnmmhbbpdmjnfppjdfkocebngehfg. - Upload
dist-chrome/summarize-chrome-extension-v<version>.zip. - Add source-backed Privacy-tab justifications for any newly declared permissions, then save the draft.
- Submit for review with automatic publishing enabled. Verify the dashboard shows the exact draft version as
Pending revieworPublished; the public listing can remain on the prior version until review completes.
- After Homebrew/core autobump catches up, verify the formula reflects the new version:
scripts/release.sh homebrewbrew install summarizesummarize --versionmatches tag.- Run a feature added in the release (for example
summarize daemon install).
- If anything fails, fix and re-cut the release (no partials).
#Common failure
- NPM/GitHub release updated, but Homebrew/core still serves the old version.
- GitHub Release contains the extension ZIP, but the Chrome Web Store still serves an old version.
Fix: always do step 4 before announcing.
Fix: submit the matching ZIP in step 3 and verify the draft/review state before closeout.