Version management
This project uses centralized version management with the app package.json as the single source of truth.
Current Version System
- Source of Truth:
/app/package.jsonversion field - Web App: Synced to
/app/src/utils/version.ts - Firmware: Synced to
#define FIRMWARE_VERSIONin/firmware/src/main.cpp
How to Create a Release (Recommended)
π Automated Release Process
./veetr release 0.0.1 # Creates branch, commits, tags, and pushesWhat this does automatically:
- β Validates the version format (semver)
- β Checks git working directory is clean
- β Updates all version references
- β
Commits directly to main with message
"Bump to version 0.0.1" - β
Creates and pushes git tag
0.0.1 - β Pushes changes to main branch
GitHub Actions will then:
- π Validate version consistency across all files
- ποΈ Build web app and firmware to ensure no errors
- π Create GitHub release with binaries automatically
Complete Release Workflow
Using Automated Release (Recommended)
# 1. Create release (does everything automatically)./veetr release 1.2.3
# 2. GitHub Actions automatically validates, builds, and creates release# 3. Done! Check the releases page for your new releaseGitHub Actions Automation
On Tag Creation:
- Validates: All files have consistent versions
- Builds: Web app and firmware
- Creates: GitHub release with firmware binaries
- Reports: Success/failure with detailed information
Troubleshooting
Release Command Fails
- Ensure git working directory is clean:
git status - Check youβre on the main branch:
git branch - Verify version format: use semver like
1.2.3
Version Inconsistency
- The veetr CLI now includes built-in version synchronization
- Check the validation output in GitHub Actions
GitHub Actions Fails
- Check the workflow logs for specific errors
- Ensure all files build successfully locally