/publish
Publish seiro and create-seiro packages to npm. Both packages MUST have the same version number.
Pre-flight Checks
Before starting, verify ALL of the following. Do NOT proceed if any check fails.
- •
Tests pass (from repo root):
bashbun run test # runs create-seiro tests bun run test:example # runs example tests (requires postgres via docker)
If tests fail, STOP. Do not publish.
- •
No uncommitted changes:
git statusshows clean working tree - •
On main branch:
git branch --show-currentreturnsmain - •
CHANGELOG.md is up to date:
packages/seiro/CHANGELOG.mdhas an entry for the new version with all changes documented
Process
Execute these steps IN ORDER. Do not skip steps. Wait for npm to confirm each publish before proceeding.
Step 1: Determine next version
npm view seiro version npm view create-seiro version
Both should match. Bump to next patch version (e.g., 0.1.5 → 0.1.6).
Step 2: Update CHANGELOG.md
# Edit packages/seiro/CHANGELOG.md # - Change "[X.Y.Z] - Unreleased" to "[X.Y.Z] - YYYY-MM-DD" (today's date) # - Add new "[X.Y.Z+1] - Unreleased" section at top for future changes
Step 3: Publish seiro
# Edit packages/seiro/package.json - set new version # Then: git add packages/seiro/package.json packages/seiro/CHANGELOG.md git commit -m "Bump seiro@X.Y.Z" git tag seiro@X.Y.Z git push origin main --tags
Step 4: WAIT for seiro to publish
# Poll until version appears (may take 30+ seconds) npm view seiro version
Do NOT proceed until the new version is confirmed on npm.
Step 5: Update template dependency
# Edit template/package.json - set "seiro": "^X.Y.Z"
Step 6: Sync template
rm -rf packages/create-seiro/template cp -r template packages/create-seiro/template
Step 7: Publish create-seiro
# Edit packages/create-seiro/package.json - set same version as seiro # Then: git add -A git commit -m "Bump create-seiro@X.Y.Z with seiro@^X.Y.Z dependency" git tag create-seiro@X.Y.Z git push origin main --tags
Step 8: WAIT for create-seiro to publish
npm view create-seiro version
Step 9: Clear cache and verify
bun pm cache rm # Test the published package rm -rf /tmp/test-publish bunx create-seiro@X.Y.Z /tmp/test-publish grep '"seiro"' /tmp/test-publish/package.json # Should show: "seiro": "^X.Y.Z"
Critical Rules
- •NEVER publish create-seiro before seiro
- •NEVER proceed without confirming npm has the new version
- •ALWAYS use the same version number for both packages
- •ALWAYS sync template before publishing create-seiro
- •ALWAYS update the seiro dependency in template to match the new version
- •ALWAYS update CHANGELOG.md with the release date before publishing