The exact checklist for every release. Follow this every time without shortcuts.
| 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)
Before changing any version number, verify:
- All Phase 1 items in
docs/ROADMAP.mdare complete for this milestone - No CRITICAL issues in
docs/KNOWN_ISSUES.mdare 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
Change version in ALL THREE files at the same time:
{
"version": "0.1.7"
}[package]
version = "0.1.7"{
"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.jsonAdd 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.
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
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
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.
-
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.
- 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
docs/FEATURE_STATUS.mdif feature status changed
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 docs/KNOWN_ISSUES.md ISSUE-011.
| 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 KNOWN_ISSUES.md |
| MSI is larger than expected | Check that src-tauri/target/ was not accidentally included |