Q = Host qemu
L = Host libvirt
A = Guest qemu-agent
An initial Matrix might look like this:
Host: Q 2.11 L 4.0 (Bionic) - G 2.11 (Bionic)
Host: Q 4.0 L 5.4 (Eoan) - G 2.11 (Bionic)
Host: Q 4.2 L 6.0 (Focal) - G 2.11 (Bionic)
Host: Q 2.11 L 4.0 (Bionic) - G 4.0 (Eoan)
Host: Q 4.0 L 5.4 (Eoan) - G 4.0 (Eoan)
Host: Q 4.2 L 6.0 (Focal) - G 4.0 (Eoan)
Host: Q 2.11 L 4.0 (Bionic) - G 4.2 (Focal)
Host: Q 4.0 L 5.4 (Eoan) - G 4.2 (Focal)
Host: Q 4.2 L 6.0 (Focal) - G 4.2 (Focal)
That shouldn't be too hard with some container magic ...
From there we can then alternate libvirt/qemu independently to narrow it down to just one component.
Q = Host qemu
L = Host libvirt
A = Guest qemu-agent
An initial Matrix might look like this:
Host: Q 2.11 L 4.0 (Bionic) - G 2.11 (Bionic)
Host: Q 4.0 L 5.4 (Eoan) - G 2.11 (Bionic)
Host: Q 4.2 L 6.0 (Focal) - G 2.11 (Bionic)
Host: Q 2.11 L 4.0 (Bionic) - G 4.0 (Eoan)
Host: Q 4.0 L 5.4 (Eoan) - G 4.0 (Eoan)
Host: Q 4.2 L 6.0 (Focal) - G 4.0 (Eoan)
Host: Q 2.11 L 4.0 (Bionic) - G 4.2 (Focal)
Host: Q 4.0 L 5.4 (Eoan) - G 4.2 (Focal)
Host: Q 4.2 L 6.0 (Focal) - G 4.2 (Focal)
That shouldn't be too hard with some container magic ...
From there we can then alternate libvirt/qemu independently to narrow it down to just one component.