Each package under apps/ is released on its own. One script serves them all: it reads the
name and version from the package's package.json, so nothing is hardcoded per package.
npm publish needs 2FA.
-
Bump
versioninapps/<package>/package.jsonand add the entry to itsCHANGELOG.md. -
Check what ships:
mise run publish-dry-run apps/<package>
-
Publish from a clean
main. The task checks the npm login first (pnpm whoami; if it fails, it runspnpm loginand checks again), so an expired login stops it in seconds, not after the test suite. Then it runsmise run check,pnpm publish, and tags<name>@<version>:mise run publish apps/<package> git push origin <name>@<version>
-
Create the GitHub release from the tag.
-
For
am-i-hacked, bumpAIH_VERSIONin.github/workflows/gate.ymlto the new version so the security gate keeps running the latest stable release.
scripts/release.sh refuses a private package, a version already on npm, and any
package.json with lifecycle scripts (prepare, prepack, postinstall and the like) that
would run during pack, publish or install.
| Package | Folder | Commands |
|---|---|---|
am-i-hacked |
apps/am-i-hacked |
am-i-hacked, aih, am-i-compromised, aic, security-gate, scanner, safe-pull |
am-i-being-recorded |
apps/am-i-being-recorded |
am-i-being-recorded, aibr |
secure-semgrep |
apps/secure-semgrep |
secure-semgrep |
am-i-hacked was published as am-i-compromised up to 1.x. After a 2.x release, point users
at the new name:
pnpm deprecate am-i-compromised "Renamed to am-i-hacked. Run: npx am-i-hacked"