2.1 KiB
Publishing @garrytan/gstack
This installer is designed to be published to the @garrytan npm scope. That scope is owned by @garrytan, so merging this PR by itself does not put it on npm — Garry (or a maintainer with scope access) needs to run npm publish.
Steps for Garry / scope owner
cd installer
npm install
npm run build
npm publish --access public
Users can then run:
npx @garrytan/gstack
Testing before publish (non-scope-owners)
If you want to verify npx @garrytan/gstack end-to-end without waiting for a publish, you can temporarily publish under your own npm scope:
- Change
"name"ininstaller/package.jsonto your scope — e.g."@your-handle/gstack". npm loginnpm publish --access publicnpx @your-handle/gstack
Revert the name field before merging the PR. Do not commit a scope change — the upstream PR should land with @garrytan/gstack.
Version bumps
The installer has its own version independent of the main gstack VERSION file. Bump installer/package.json when:
- New command or flag added
- Existing command behavior changes
- A bug fix ships
Follow semver: 0.x.y while the API is still settling, 1.0.0 when the command surface is stable.
What the installer does at runtime
The installer is a thin wrapper — it clones https://github.com/garrytan/gstack.git into ~/.claude/skills/gstack and shells out to that repo's ./setup script. So publishing a new installer version does not ship a new gstack — users always get the latest main branch of the main repo at install time.
This means the installer rarely needs to change. The main reasons would be:
- Host registry expands (new agent supported by gstack)
./setuplearns a new flag the installer wants to surface- Bug in the installer itself
CI (future)
Not wired yet. A reasonable path:
installer/gets its own workflow at.github/workflows/installer-ci.yml- Runs
npm install,npm run build,npm packon PRs - On release tag
installer-v*, runsnpm publish