Release Process
Checklist for shipping DevStackBox releases.
DevStackBox - Release Process
The exact checklist for every release. Follow this every time without shortcuts.
Release Types
| Type | When | Example |
|---|---|---|
| Patch | Bug fix only, no new features | 0.1.6 → 0.1.7 |
| Minor | New working feature added | 0.1.6 → 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. (MSI requirement)
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.7"
}src-tauri/Cargo.toml
[package]
version = "0.1.7"src-tauri/tauri.conf.json
{
"version": "0.1.7"
}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:
## v0.1.7 - 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
pnpm tauri buildExpected output files:
src-tauri/target/release/bundle/msi/DevStackBox_0.1.7_x64_en-US.msisrc-tauri/target/release/bundle/nsis/DevStackBox_0.1.7_x64-setup.exe
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 MSI installer (not dev mode) on a clean Windows 11 machine or VM:
Installation:
- MSI 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 Hashes
Generate hashes for both installers (required for security transparency):
Get-FileHash "src-tauri\target\release\bundle\msi\DevStackBox_0.1.7_x64_en-US.msi" -Algorithm SHA256
Get-FileHash "src-tauri\target\release\bundle\nsis\DevStackBox_0.1.7_x64-setup.exe" -Algorithm SHA256Include these in the GitHub Release description.
Step 7 - GitHub Release
-
Create a git tag:
git tag v0.1.7 git push origin v0.1.7 -
Go to GitHub Releases
-
Fill in:
- Tag:
v0.1.7 - Title:
DevStackBox v0.1.7 - Description: Copy from CHANGELOG.md + paste SHA-256 hashes
- Attach files: Both MSI and NSIS installers
- Tag:
-
Click Publish Release.
Step 8 - Post-Release
- Verify the download links in the GitHub Release page work
- Update
README.mdversion badge if necessary - Close GitHub Issues that were fixed in this release
- Update
feature-statusif feature status changed
Auto-Updater (Phase 4 - Not Yet Active)
When the auto-updater is configured, an additional step will be needed:
- Generate
latest.jsonwith new version info, download URLs, and signatures - Upload to the updater endpoint URL
- Test that an older installation picks up the update
The updater flow is not active yet. See advanced/troubleshooting ISSUE-011.
What Can Go Wrong
| Problem | Fix |
|---|---|
| MSI refuses to install | Version has hyphens or letters - use clean semver only |
| 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 |
| MSI is larger than expected | Check that src-tauri/target/ was not accidentally included |