How to publish
SweetPad ships two artifacts, versioned and released independently:
- the VSCode extension —
v*tags → VS Marketplace / Open VSX - the
sweetpadCLI —cli-v*tags → Homebrew
VSCode extension
Links
- https://code.visualstudio.com/api/working-with-extensions/publishing-extension#publish-an-extension
- https://marketplace.visualstudio.com/manage/publishers/sweetpad/extensions/sweetpad/hub
- https://open-vsx.org/extension/sweetpad/sweetpad
Steps
-
Update & commit CHANGELOG.md
-
Update the version number and publish to Github (the extension lives in
sweetpad-vscode/):
npm run publish-patch -w sweetpad
- Check publishing status on github actions page:
- Verify the GitHub release page includes the VSIX asset and the changelog section for the tag:
The v* tag triggers .github/workflows/ci.yaml, which builds the VSIX (Developer ID-signing + notarizing the bundled .node addon) and publishes to the VS Marketplace, Open VSX, and a GitHub release.
CLI (Homebrew)
The sweetpad CLI is distributed through the Homebrew tap
sweetpad-dev/homebrew-tap
(brew install sweetpad-dev/tap/sweetpad). It is not bundled in the extension.
Steps
-
Bump the version in
sweetpad-lib/Cargo.toml(version = "X.Y.Z") and commit it. This is whatsweetpad --versionreports and must match the tag below — the formula'sbrew testassertssweetpad X.Y.Z, so a mismatch fails the formula. -
Tag and push (the tag is the release version):
git tag -a cli-vX.Y.Z -m "sweetpad CLI X.Y.Z"
git push origin cli-vX.Y.Z
-
The push triggers
.github/workflows/cli-release.yaml, which:- builds the universal CLI (including the bundled injection client),
- Developer ID-signs + notarizes it,
- publishes
sweetpad-cli-X.Y.Z-macos-universal.tar.gzto a GitHub releasecli-vX.Y.Z, and - regenerates
Formula/sweetpad.rbin the tap (from.github/homebrew/sweetpad.rb.tmpl) and pushes it via theHOMEBREW_TAP_DEPLOY_KEYdeploy key.
-
Verify:
- the release has the tarball — https://github.com/sweetpad-dev/sweetpad/releases
- the tap has the bumped formula — https://github.com/sweetpad-dev/homebrew-tap/blob/main/Formula/sweetpad.rb
brew update && brew install sweetpad-dev/tap/sweetpad && sweetpad --version
Dry run
To exercise build + sign + notarize without publishing (the release and tap-bump steps are gated on a tag), run the workflow manually — from the Actions tab or:
gh workflow run cli-release.yaml --ref main
Required secrets
Already configured on the repo; listed for reference:
MACOS_CERTIFICATE_P12,MACOS_CERTIFICATE_PASSWORD— Developer ID Application certificate (.p12, base64) and its export passwordMACOS_NOTARY_KEY_P8,MACOS_NOTARY_KEY_ID,MACOS_NOTARY_ISSUER_ID— App Store Connect API key fornotarytoolHOMEBREW_TAP_DEPLOY_KEY— private SSH key of theci-formula-bumpwrite deploy key on the tap