smeisner / smart-thermostat

Open-source ESP32-based thermostat that has some useful intelligence
GNU General Public License v3.0
37 stars 10 forks source link

Versioning of software & hardware #49

Open DSpeichert opened 2 months ago

DSpeichert commented 2 months ago

It seems that hardware has versions like v0.5.2 and v0.6.0 (latest), while software/firmware has gotten up to v0.7.3.

At the same time, the tagged v0.7.3 will have PCB/kicad designs of prior versions.

This seems unnecessarily confusing. It does make sense to version firmware & hardware separately (along with breaking changes/incompatibilities between them), is there a better way to do that?

smeisner commented 2 months ago

Yes...the rate of change between the PCB and the firmware is completely different. HW and FW will always have different version numbers.

The issue with the PCB CAD files is related to the long development & test time for each PCB. While working in KiCad, I do not know if the mods I am making will be worthy of a new rev number until I place an order, wait for manufacturing, shipping and then populating the board and finally testing it. That could easily be 2 - 3 months of time.

The version numbering of the KiCad files will align with current releases once I get passed the beta phase. I would like to set the FW and PCB @ V1.0.0 upon "public" release.

smeisner commented 2 months ago

Actually, the more I think about this, the more I realize I want to have a versioning scheme that will make it obvious what FW versions will work on what PCB versions. For ex, if there is something new in version 2.0 of the PCB, then only FW versions that start with V2.x.x will work on that HW. Conversely, FW V2.x.x will work on any V2.x version of the PCB. If there is a breaking change, major version numbers must change as well.

Does that work?