Check for API/ABI breaks in the GI
Context
We're working on ensuring we never break the C/C++ ABI.
However, #358 (closed) showed it is very easy to make a trivial mistake leading to breaking the API for languages using GObject Introspection.
Basically: many projects automatically enable/disable some build features based on the dependency checking. If a dependency is missing, no big deal, just silently disable this part. Ideally this just wouldn't happen, enabling/disabling build features would be explicitly requested by the caller, and missing dependencies would lead to build failures even for optional parts. We do not live in this ideal world unfortunately.
Description
One thing we could do is reuse the ABI checker script: it already has 2 trees checked out, so it could compare the typelibs/girs?
The question is how to "compare" them?
Even simply ensuring we're not removing any typelib/gir could already go a long way: it would have entirely prevented #358 (closed).
Acceptance Criteria
We do not break apps and runtimes using our GI stuff again.