Internal Release Process
Use Conventional Commits and never release broken builds.
Firmware Releases
Firmware releases must include:
- Version
- Target hardware
- Binary
- SHA-256 checksum
- GitHub release assets
- D1 metadata update
Release flow:
- Update
include/FirmwareVersion.h. - Run the local PlatformIO build.
- Run the local PlatformIO test compile.
- Push
main. - Create and push
firmware-v<version>. - Watch the
Release firmware OTAworkflow. - Verify
/api/v1/ota/latestand the authenticated firmware download route.
Rollback
Rollback is a D1 metadata change. Do not overwrite released firmware objects.
Set the bad version to is_latest = 0 and restore the previous good version to is_latest = 1 for the same target hardware.
Versioning Policy
- Firmware uses semantic versions.
- Cloud and web should note firmware compatibility when their release affects OTA behavior.
- Do not introduce multi-vendor abstractions in version 1.