9.2 KiB
Changelog
Reader-facing changes to the articles, architecture decisions, diagrams, and practical examples, newest first. New work is listed by change date; older entries summarize the Git history by commit date. 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-20
- Added chapter 06: Atomic Updates, covering preparation before activation, durable state, gaps between records, restart decisions, and the limits of package recovery.
- Added ADR-018: Prepare and Verify Before Activation and ADR-019: Recover Interrupted Updates From Durable State.
- Added PlantUML sources for the installation sequence and restart decisions. No new image previews are included.
- Added a C++17 interrupted installation model, with reset points, three supplied boot-record write outcomes, recovery checks, and CMake/CTest support. It models completed durable operations in memory, not real power-loss-safe storage.
- Applied the root .clang-format to the new model and the existing A/B trial boot example. Existing C++ changes are formatting only.
- Updated the README, series overview, chapter 05 continuation, and diagram index.
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 PNG 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.