OpenAstroTech / OpenAstroTracker-Firmware

Official firmware for the OpenAstroTracker.
https://wiki.openastrotech.com
MIT License
91 stars 65 forks source link

Introduce configuration versioning #203

Open andre-stefanov opened 1 year ago

andre-stefanov commented 1 year ago

we should add a version value to each generated local config, e.g:

#define LOCAL_CONFIG_VERSION 1

the firmware code could then have following definition & check:

#define MIN_LOCAL_CONFIG_VERSION 1
#if MIN_LOCAL_CONFIG_VERSION > LOCAL_CONFIG_VERSION
  #error You have to update your local config to be able to use this version of firmware
#endif

This would allow us making changes to the config api (e.g. renaming or restructuring the config definitions) which would not lead to compile errors otherwise. The user would also have an easier to understand error message instead of some generic "XYZ not defined" If we introduce some breaking changes, we simply bump the min required config version in the firmware ... then adapt the config server and bump the version there as well.