Why do Baserock use VMs instead of cross-compiling?

13:46 < Phlogistique> Is there a "Why baserock" design document besides
                      http://wiki.baserock.org/developer-experience/ ? In particular
                      from reading the docs it looks like Baserock does not embrace 
                      cross-development and instead prefers developers to work inside 
                      a VM; is there a rationale for that?
13:52 <+richard_maw> Phlogistique: by cross-development do you mean cross-compiling to
                     build your system to target another CPU architecture to that 
                     you build from, or cross-platform where the tooling is expected to
                     be run from a variety of platforms?
13:53 < Phlogistique> richard_maw: the former
13:53 < Phlogistique> cross-compiling
13:56 <+richard_maw> Phlogistique: ah, then the rationale for that is that there's many
                     projects that dont cross-compile successfully without 
                     patching, and the patches may not be acceptable by upstream, since
                     they don't habitually cross-compile. We instead prefer native 
                     builds so that it's easier to update those components to new versions,
                     since we don't need to keep rebasing the 
                     cross-compilation support patches.
13:58 <+richard_maw> Phlogistique: as for why we prefer to work in VMs (or chroots), it's 
                     because while we take great efforts to improve 
                     reproducibility and reliability with sandboxed builds, for the early
                     bootstrap steps it depends on what you have available in 
                     your host system, so we prefer you run the Baserock tools from a known
                     working system