Release Process
Checklist for shipping DevStackBox releases.
DevStackBox - Release Process
The exact checklist for every release. Follow this every time without shortcuts.
Current stable release: v0.1.8
Release Types
| Type | When | Example |
|---|---|---|
| Patch | Bug fix only, no new features | 0.1.8 → 0.1.9 |
| Minor | New working feature added | 0.1.8 → 0.2.0 |
| Major | Breaking changes or large milestone | 0.x.x → 1.0.0 |
Version format: X.Y.Z - always clean semver. No hyphens, no pre-release text.
Step 1 - Pre-Release Checks
Before changing any version number, verify:
- All Phase 1 items in
roadmapare complete for this milestone - No CRITICAL issues in
advanced/troubleshootingare newly introduced -
cargo buildcompletes with zero errors -
pnpm tauri buildcompletes with zero errors - App starts and services can be started on a clean Windows test machine
Step 2 - Version Bump
Change version in ALL THREE files at the same time:
package.json
{
"version": "0.1.9"
}src-tauri/Cargo.toml
[package]
version = "0.1.9"src-tauri/tauri.conf.json
{
"version": "0.1.9"
}Verify they match:
node -e "const p=require('./package.json'); console.log('package.json:', p.version)"
grep "^version" src-tauri/Cargo.toml
grep '"version"' src-tauri/tauri.conf.jsonStep 3 - Update CHANGELOG.md
Add an entry at the top:
## [0.1.9] - 2026-MM-DD
### Fixed
- Description of bug fix
### Added
- Description of new feature
### Changed
- Description of changeKeep the format consistent. Do not delete old entries.
Step 4 - Build Release
Set signing key (required for auto-update):
$env:TAURI_SIGNING_PRIVATE_KEY = "path-or-content-of-your-private-key"
pnpm tauri buildExpected output files:
src-tauri/target/release/bundle/nsis/DevStackBox_0.1.9_x64-setup.exesrc-tauri/target/release/bundle/nsis/DevStackBox_0.1.9_x64-setup.exe.sig
Create latest.json in the repo root (use the v0.1.8 file as a template). Paste the .sig file content into the signature field.
If the build fails:
- Check
src-tauri/target/release/build/for Rust errors - Check that all three version numbers match exactly
- Check that no new emoji were added to
.github/workflows/*.yml
Step 5 - Smoke Tests
Run this checklist on the NSIS installer (not dev mode) on a clean Windows 11 machine or VM:
Installation:
- NSIS installer installs without errors
- App opens from Start Menu
- App opens without antivirus immediately blocking it
MySQL:
- MySQL starts successfully
- phpMyAdmin opens in browser
- MySQL stops successfully
Apache:
- Apache starts successfully
-
http://localhostshows the www directory - Apache stops successfully
Config:
- Config editor opens
php.ini - Config change is saved
- Config backup is created
General:
- Dark mode and light mode both work
- Language switcher works (EN and HI)
- Sidebar navigation loads all pages without errors
Step 6 - Generate SHA-256 Hash (optional)
Get-FileHash "src-tauri\target\release\bundle\nsis\DevStackBox_0.1.9_x64-setup.exe" -Algorithm SHA256Include the hash in the GitHub Release description if you want transparency for users.
Step 7 - GitHub Release
-
Create a git tag:
git tag v0.1.9 git push origin v0.1.9 -
Go to GitHub Releases
-
Fill in:
- Tag:
v0.1.9 - Title:
v0.1.9 - Description: Copy from CHANGELOG.md
- Attach files:
DevStackBox_0.1.9_x64-setup.exeandlatest.json
- Tag:
-
Click Publish Release.
Step 8 - Post-Release
- Verify the download links in the GitHub Release page work
- Verify
releases/latest/download/latest.jsonshows the new version - Close GitHub Issues that were fixed in this release
- Update
feature-statusif feature status changed
Auto-Updater
The in-app updater is active as of v0.1.8. Every release must include:
- Signed NSIS build (
TAURI_SIGNING_PRIVATE_KEYset duringpnpm tauri build) latest.jsonin the repo root signature from the.sigfile, download URL matching the uploaded.exe- Upload
latest.jsonas a release asset named exactlylatest.json
Updater endpoint (configured in tauri.conf.json):
https://github.com/DevStackBox/DevStackBox/releases/latest/download/latest.json
After publishing, test About → Check for updates from an older install.
What Can Go Wrong
| Problem | Fix |
|---|---|
| Build fails with "version mismatch" | One of the three version files is different |
| Antivirus blocks installer | Publish SHA-256 hash - users can verify and allow |
| GitHub Actions build fails | Check for emoji in .yml files - see advanced/troubleshooting |
| Auto-update fails | Check latest.json signature matches .sig; URL matches .exe filename |
releases/latest wrong version | Ensure release is not marked pre-release; latest.json uploaded |