Versioning Scheme

Terms

hw Hardware The physical components of Holoseat which are encumbered with version related compatibility concerns
sw Software The user application and the REST API
fw Firmware The code running on the controller itself interacting with the sensors and the game

Goals

  1. Ensure only compatible versions of hw/sw/fw are connected to one another so users do not experience issues stemming from compatibility mismatch
  2. It should be easy to identify a compatible set of hw/sw/fw from version their numbers
  3. Bring consistency and rigor to versioning process moving forward

Assumptions

  1. hw rarely changes
  2. hw changes only occur as part of production runs
  3. hw includes all electro-mechanical elements of the system (so sensor and tone ring are hw, but bike pedals are generally not since they are interchangeable)
  4. fw is coupled to hw (hw must support the fw access to sensors, etc) and to sw (sw uses the HSP in the fw to implement REST API and to interact with the hw)
  5. Looking for a scheme where parallel version numbers across hw/sw/fw indicate compatibility

Defining Levels of Versioning

Versioning Matrix

Product Major Minor Patch
hw Determined by USB VID/PID Identified in hardware by version resistor Not Used Identified by physical markings
sw Identified by string constant Identified by string constant of form Major.Minor.Patch
fw Identified by string constant Identified by string constant of form Major.Minor.Patch

Compatibility Rules

Compatibility verification

Examples

Other Notes