v2.0.0 - Unified Device Response Protocol & v1/v2 Branching Strategy (2025-12-29)¶
What Changed?¶
v2.0.0 marks the official launch of the main branch as v2 development, establishing a clear branching strategy for long-term maintenance. This major release establishes v2 as the default with unified device response protocol, while v1 enters maintenance mode on the v1 branch. Build configuration and development workflows are reorganized to reflect this new structure.
What's New¶
Breaking Change: v2 as Default Build Configuration¶
v2 is now the primary development target on the main branch. The base PlatformIO configuration defaults to v2 flags (unified device response protocol, JSONL output, full feature set).
What it means:
- New developers check out main branch and build v2 by default
- v1 branch is dedicated to v1.x maintenance only
- Clear separation of concerns: v0 (archived), v1 (maintenance), v2 (next-gen)
How to build:
# Main branch (v2 development)
git switch main
task v2:build
# v1 branch (maintenance)
git switch v1
task v1:build
Platform Configuration Reorganization¶
PlatformIO configuration clarified with explicit per-profile feature matrices.
What changed:
- Base
[env]section now inherits v2 defaults - v0/v1 profiles explicitly override only necessary differences
- Deprecation notices added to v0/v1 profiles
- Local override template updated for v2 development
Installation¶
Quick Start (v2 on main branch)¶
# Update to v2.0.0 release
git fetch origin
git checkout v2.0.0
# Build v2 firmware
task v2:build
# Upload to ESP32
task v2:upload
# Monitor output
task monitor
For v1 Maintenance (v1 branch)¶
# Switch to v1 maintenance branch
git switch v1
git pull origin v1
# Build v1 firmware
task v1:build
# Upload to ESP32
task v1:upload
# Monitor output
task monitor
What's Different from the Last Version?¶
✅ Added¶
- Explicit v1/v2 branching strategy with dedicated maintenance branches
- Deprecation notices for v0 and v1 build profiles
- Reorganized PlatformIO configuration with clear per-profile feature matrices
- Updated platformio.override.ini template for v2 development
- Release documentation for v2.0.0 milestone
Changed¶
- Base
[env]configuration now defaults to v2 flags (ENABLE_DEVICE_RESPONSE=1,STREAM_FORMAT=3) - v0/v1 profiles now inherit from base and only override differences
platformio.override.iniswitched fromesp32dev-v1toesp32dev-v2as default- Build profile documentation clarified with section headers and feature lists
Deprecated¶
- v0 (esp32dev-v0) - Archived prototype, will be removed in near future
- v1 (esp32dev-v1) - Maintenance mode on v1 branch, will be removed in near future
Is It Safe to Upgrade?¶
Backward Compatible: No - This is a major breaking change
Migration Path:
- v1.x users on main branch: Upgrade to v2.0.0 to stay on main branch with latest features
- v1.x users on v1 branch: Switch to
git switch v1for maintenance-only releases - v0 users: Migrate to v1 for production or v2 for new development
What will break:
- Any custom build configurations assuming legacy v1 defaults may need updating
- v0/v1 build profiles marked as deprecated and will be removed in future releases
Tests Passed¶
- Build verification: v2 profile compiles without errors
- Configuration consistency: All three profiles (v0/v1/v2) validated
- Documentation: Release notes and build configuration updated
- Version management: Semantic versioning and changelog automation verified
Release Details¶
- Date: 2025-12-29
- Version: v2.0.0
- Files Changed: 5 (platformio.ini, platformio.override.ini, CHANGELOG.md, pyproject.toml, include/config.h)
- Commits: 5 (configuration reorganization + version bump)
Next Steps¶
- Ensure v1 branch is up-to-date with latest v1.x maintenance
- Monitor v2 development and user feedback on unified protocol
- Plan v2.1.0 release with next set of features
- Consider removing v0 profile in v2.5.0 or v3.0.0