mirror of https://github.com/garrytan/gstack.git
58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# Publishing `@garrytan/gstack`
|
|
|
|
This installer is designed to be published to the `@garrytan` npm scope. That scope is owned by [@garrytan](https://github.com/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
|
|
|
|
```bash
|
|
cd installer
|
|
npm install
|
|
npm run build
|
|
npm publish --access public
|
|
```
|
|
|
|
Users can then run:
|
|
|
|
```bash
|
|
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:
|
|
|
|
1. Change `"name"` in `installer/package.json` to your scope — e.g. `"@your-handle/gstack"`.
|
|
2. `npm login`
|
|
3. `npm publish --access public`
|
|
4. `npx @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)
|
|
- `./setup` learns 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 pack` on PRs
|
|
- On release tag `installer-v*`, runs `npm publish`
|