Computer systems typically include a number of installed components, such as software applications, operating systems, hardware and firmware.  As the size of a computer system grows, for example a network-based distributed computer system, or a hyper-converged appliance, the number of installed components also usually grows.  Furthermore, as the number of installed components grows, the version interdependencies among these components will become increasingly complex.  In order to ensure that an installation of components operates properly, it is important to ensure that any issues regarding the interoperability of the installed components are considered and addressed.