Tool version drift matters if a Mac mini is your build server

A team of more than 30 engineers is working across Windows, Linux, and a few macOS machines. The project uses C++, CMake, and Ninja, but small differences in versions keep causing strange problems. These problems often appear right before a release, when they are hardest to deal with.

Possible fixes include pinning exact tool versions on every machine, putting the build environment in , relying more on build servers, or mixing these approaches. None of these choices is perfect, because the change across Windows, Linux, and macOS.

Key points

  • The problem comes from a 30-plus-person C++ team spread across Windows, Linux, and macOS.
  • CMake and Ninja do not remove the need to manage versions.
  • Small differences can create hard-to-predict release problems.
  • The main options are fixed tool versions, , build servers, or a mix.
  • A build server is most useful when its environment is treated as a clear .
Read original