7.9 KiB
Changelog
Reader-facing changes to the articles, architecture decisions, diagrams, and practical examples, newest first. Entries are grouped by commit date and summarize the Git history; issue references are included where recorded in commit messages. File links open the current material, while commit links show the historical changes.
When adding or revising material, add a short entry under the relevant date with links to the affected files and any related issue or commit.
2026-10-11
Storage layout
- Added chapter 05: Storage Layout, covering system slots, persistent device data, shared-data compatibility, update and recovery state, storage capacity, and failure scenarios.
- Added ADR-016: Separate System Software and Persistent Device Data and ADR-017: Keep Recovery State Outside Replaceable Software.
- Updated the series overview and the continuation from chapter 04.
History: bf9871e, which records closing issue #2.
Diagrams and A/B simulation
- Added three diagrams for chapters 03–05, with editable PlantUML sources and SVG previews:
- Added diagram rendering instructions and links from the corresponding chapters.
- Added a C++17 A/B trial boot simulation with six scenarios: successful confirmation, failed health checks, exhausted attempts, restart during trial, interrupted preparation, and recovery failure. The example includes saved boot state, state and scenario checks, and CMake/CTest integration. It models logical transitions assuming valid completed writes; power-loss safety is outside its scope.
- Linked the practical material from the README and series overview.
2026-10-05
- Added chapter 04: Starting an Updated System or Service, explaining startup, trial boot, health checks, confirmation, service recovery, and remembering update outcomes.
- Added ADR-014: Trial Boot and Confirmation and ADR-015: Service Checks and Package Downgrade, and clarified component rollback in ADR-005.
- Added related ADR links to chapter 04 and updated the learning path.
- Removed status and date fields from the ADR template and existing decisions that contained them.
History: eb363ec references issue #1; af37c88, abe9873.
2026-09-21
- Added and simplified chapter 03: OTA System Architecture, describing server and device responsibilities and the update flow.
- Consolidated the update-check decision into ADR-011: Device-Initiated Update Checks. Added heading-only placeholders for ADR-012: Server-Initiated Updates and ADR-013: Update Notifications with Device-Initiated Checks.
- Reworked chapter 02: Choosing an OTA Update Strategy into a shorter comparison of update units and delivery mechanisms.
- Added decisions for independent application updates, binary delta delivery, versioned filesystem trees, and hybrid strategies.
History: 98edac4, 252a7e4, 572d1f7, 3c94145, 13a88b7, 931efea, 1ebebb8.
2026-08-03
- Added the first version of chapter 02: Choosing an OTA Update Strategy.
- Documented full-system image updates, package-based updates, and container-based updates as architecture decisions.
- Revised the strategy discussion to cover application-level updates through package-based updates at that stage of the series.
- Added the guide to architecture decision records.
History: 2b49cbe, 7a74d9f, 155cca5, be12197, 37583d8, 2da217c.
2026-07-29
- Started the repository with the series overview and chapter 01: What Is an OTA Update?.
- Established the repository name, MIT license, and educational reference-design scope in the first architecture decisions.
- Added the ADR template, organized decisions under
adr/, and expanded the README to explain the project.
History: initial commit, series overview, OTA introduction, README update.