with one click
release
// Prepare and publish a ccxray release — bump version, update CHANGELOG, commit, tag, push, and npm publish.
// Prepare and publish a ccxray release — bump version, update CHANGELOG, commit, tag, push, and npm publish.
| name | release |
| description | Prepare and publish a ccxray release — bump version, update CHANGELOG, commit, tag, push, and npm publish. |
| license | MIT |
| metadata | {"author":"ccxray","version":"1.0"} |
Publish a new version of ccxray to npm.
Input: Optionally specify a version bump: patch, minor (default), major, or an exact version like 1.6.0.
Read current version from package.json. Apply the requested bump (default: minor):
node -e "const v=require('./package.json').version; const [a,b,c]=v.split('.').map(Number); console.log(a+'.'+( b+1)+'.0');"
Semver guide:
git describe --tags --abbrev=0
git log <last-tag>..HEAD --oneline --no-merges
Keep only user-visible changes (feat:, fix:). Exclude chore:, ci:, docs:, test:, and version bump commits.
Format (match existing style in CHANGELOG.md):
## X.Y.Z
### Added
- **Feature name**: one-line description
### Fixed
- **Bug name**: one-line description
⚠ STOP HERE. Show the proposed version and CHANGELOG draft to the user. Wait for confirmation before making any changes.
After user confirms:
CHANGELOG.md — insert new section at the top (after # Changelog):
## X.Y.Z
...
package.json — update version field.
npm test
Stop and report if any tests fail.
git add CHANGELOG.md package.json
git commit -m "X.Y.Z"
git tag vX.Y.Z
git push origin main
git push origin vX.Y.Z
⚠ STOP HERE. Confirm with user before publishing — npm publish is irreversible.
npm publish
Verify output contains + ccxray@X.Y.Z.
## Released: ccxray@X.Y.Z
✓ CHANGELOG.md updated
✓ package.json bumped to X.Y.Z
✓ Tests passed (N pass)
✓ Committed and tagged vX.Y.Z
✓ Pushed to origin
✓ Published to npm