Release & Publishing Guide
This repository uses Changesets for versioning and publishing packages.
Prerequisites
- Ensure you have an npm account with 2FA (recommended).
- Login before publishing:
powershell
npm loginIf you need OTP during publish, you will be prompted.
Package Structure
Published packages:
@gati-framework/core– core types and base config (tsconfig.base.json)
Planned future packages:
@gati/cli– CLI entry point (create/dev/build)@gati/runtime– execution engine exports
Versioning Flow
- Make code changes.
- Add a changeset:
powershell
pnpm exec changeset addSelect bump type (patch/minor/major) and write summary.
- Apply version updates:
powershell
pnpm release:versionThis updates package versions and generates CHANGELOG.md files.
- Commit and push:
powershell
git add -A
git commit -m "chore(release): version packages"
git push origin mainPublishing
Build all packages then publish:
powershell
pnpm -r build
pnpm release:publishIf you see an E404 error like:
E404 Not Found - PUT https://registry.npmjs.org/@gati%2fcore - Not foundCommon causes:
- Not logged in (
npm loginrequired) - Scoped package requires public access flag (Changesets sets
access: publicalready) - Network or registry proxy issues
Retry after login:
powershell
npm login
pnpm release:publishManual Fallback
If automated publish keeps failing, try manual publish:
powershell
cd packages/core
npm publish --access publicAdding New Packages
- Create
packages/<name>/package.jsonwithname,version,main,types,files. - Add build script (e.g.,
tsc -p tsconfig.build.json). - Add an initial changeset with a minor bump.
- Run version + publish steps.
Troubleshooting
| Issue | Cause | Fix |
|---|---|---|
| 404 on publish | Not logged in | npm login then retry |
| 403 forbidden | Missing access rights | Ensure you own scope or org |
| OTP errors | 2FA required | Provide OTP at prompt |
| Missing types | Build not run | pnpm -r build before publish |
Scripts Summary
pnpm release:version– Apply pending changesetspnpm release:publish– Publish updated packagespnpm release– Build then publish helper
Next Steps
- Publish
@gati-framework/coreonce npm login succeeds. - Create
@gati/clipackage to remove example dependency on unreleased commands. - Migrate runtime code into publishable packages.
Maintained by Krishna Paul (@krishnapaul242)