Writing

Firmware Has a Version; Configuration Needs One Too

A device can receive new firmware while keeping old configuration. If new code reads that stored data with a different meaning, behavior can change after the update. Two devices on the same firmware may then behave differently because their stored history differs.

A device can receive new firmware while keeping old configuration. If new code reads that stored data with a different meaning, behavior can change after the update. Two devices on the same firmware may then behave differently because their stored history differs.

Imagine a setting that used to be a number and later becomes an enum. Flashing new firmware does not automatically transform the old value into the new structure. A configuration schema version and migration rules let the software know what it is actually reading.

Migration failure also needs a defined outcome. If half the data is rewritten while the rest stays in the old format, the next boot can enter an ambiguous state. Preparing the new state first and then committing it is one useful pattern, although the exact strategy depends on storage and product constraints.

Debug reports should therefore include configuration version as well as build identity. A release is a relationship between code and data. Keeping code history while losing the history of what stored data means makes behavior difficult to reproduce.

Source: official reference.

Quick navigationEsc