This document describes how to create a new release of Auto-Codex.
This project is a Codex-based fork derived from https://github.com/AndyMik90/Auto-Claude.
We provide an automated script that handles version bumping, git commits, and tagging to ensure version consistency.
- Clean git working directory (no uncommitted changes)
- You're on the branch you want to release from (usually
main)
-
Run the version bump script:
# Bump patch version (2.5.5 -> 2.5.6) node scripts/bump-version.js patch # Bump minor version (2.5.5 -> 2.6.0) node scripts/bump-version.js minor # Bump major version (2.5.5 -> 3.0.0) node scripts/bump-version.js major # Set specific version node scripts/bump-version.js 2.6.0
This script will:
- ✅ Update
auto-codex-ui/package.jsonwith the new version - ✅ Create a git commit with the version change
- ✅ Create a git tag (e.g.,
v2.5.6) ⚠️ NOT push to remote (you control when to push)
- ✅ Update
-
Review the changes:
git log -1 # View the commit git show HEAD # Review the version bump commit
-
Push to GitHub:
# Push the commit git push origin main -
Create GitHub Release (recommended tag source):
- Go to GitHub Releases
- Click "Draft a new release"
- Create/select the tag (e.g.,
v2.5.6) from the target commit - Add release notes (describe what changed)
- Click "Publish release"
-
Automated builds will trigger on release publish:
- ✅ Version validation workflow will verify version consistency
- ✅ Tests will run (
test-on-release.yml) - ✅ Native module prebuilds will be created (
build-prebuilds.yml) - ✅ Discord notification will be sent (
discord-release.yml)
If you need to create a release manually, follow these steps carefully to avoid version mismatches:
-
Update
auto-codex-ui/package.json:{ "version": "2.5.6" } -
Commit the change:
git add auto-codex-ui/package.json git commit -m "chore: bump version to 2.5.6" -
Create GitHub Release (creates tag)
- Go to GitHub Releases
- Click "Draft a new release"
- Create/select the tag (e.g.,
v2.5.6) from the target commit - Publish the release (this triggers validation/tests/builds)
A GitHub Action automatically validates that the version in package.json matches the git tag on release publish.
If there's a mismatch, the workflow will fail with a clear error message:
❌ ERROR: Version mismatch detected!
The version in package.json (2.5.0) does not match
the git tag version (2.5.5).
To fix this:
1. Delete this tag: git tag -d v2.5.5
2. Update package.json version to 2.5.5
3. Commit the change
4. Recreate the tag (via GitHub Release or locally) and republish
This validation ensures we never ship a release where the updater shows the wrong version.
If you see a version mismatch error in GitHub Actions:
-
Delete the incorrect tag:
git tag -d v2.5.6 # Delete locally git push origin :refs/tags/v2.5.6 # Delete remotely
-
Use the automated script:
node scripts/bump-version.js 2.5.6 git push origin main
If the version bump script fails with "Git working directory is not clean":
# Commit or stash your changes first
git status
git add .
git commit -m "your changes"
# Then run the version bump script
node scripts/bump-version.js patchUse this checklist when creating a new release:
- All tests passing on main branch
- Run
./scripts/healthcheck.sh(preflight readiness) - Lock files updated (run
./scripts/lock-deps.shif deps changed) - CHANGELOG updated (if applicable)
- Run
node scripts/bump-version.js <type> - Review commit
- Push commit to GitHub
- Create GitHub Release with release notes (creates tag)
- Upload
SHA256SUMSasset for source updates (required by updater) - Verify version validation passed
- Verify builds completed successfully
- Test the updater shows correct version
- (macOS) Notarization + signing configured (if distributing externally)
- (Windows) Code signing configured (if distributing externally)
Auto-Codex source updates verify a SHA256SUMS release asset before applying updates.
Example flow:
TAG=v2.5.6
curl -L "https://api.github.com/repos/tytsxai/Auto-Codex/tarball/refs/tags/${TAG}" -o auto-codex-update.tar.gz
shasum -a 256 auto-codex-update.tar.gz > SHA256SUMS
gh release upload "${TAG}" SHA256SUMSIf you need to bypass verification for development, set AUTO_CODEX_ALLOW_UNSIGNED_UPDATES=true.
When you create a release, the following are built and published:
- Native module prebuilds - Windows node-pty binaries
- Electron app packages - Desktop installers (triggered manually or via electron-builder)
- Discord notification - Sent to the Auto-Codex community
We follow Semantic Versioning (SemVer):
- MAJOR version (X.0.0) - Breaking changes
- MINOR version (0.X.0) - New features (backward compatible)
- PATCH version (0.0.X) - Bug fixes (backward compatible)
Examples:
2.5.5 -> 2.5.6- Bug fix2.5.6 -> 2.6.0- New feature2.6.0 -> 3.0.0- Breaking change