[Libvir] PATCH: Cleanup generator & force build fail on missing APIs
veillard at redhat.com
Mon Jan 21 09:14:15 UTC 2008
On Sun, Jan 20, 2008 at 05:29:06PM +0000, Daniel P. Berrange wrote:
> The python generator will happily ignore functions it can't handle and
> pretend everything completed without error. This leads to the situation
> where we add new APis to C library and no one ever notices that they
> are missing from the python until months later. This requires that my
> previous patch be applied first to implement the missing APIs we already
> have :-)
> This patch causes the generator to return a non-zero exit status if there
> are any APIs marked as FAILED. It will also explicitly print out their
> names so its clear what is missing. In doing this I added a bunch more
> functions to the skip list - ones that we already manually wrote.
> It also removes the manually written virCloseConnect/virDomainFree/
> virNetworkFree C code, since the generated code is just fine.
> Finally, it makes all manually written C functions static for consistency
Okay, the default behaviour prints the number of functions which failed
(and the number skipped) but now that we have full coverage, yes this is
a good thing to do. Note however that you're likely to still see the problem
of late discovery of missing bindings because:
- people submitting patches are likely to just run 'make'
- people applying it will do the same.
- only on 'make rebuild' in docs or when preparing the release
will we hit the docs/libvirt-api.xml , leading to the subsequent
error on a missing part.
- and I'm afraid I will be the one hitting them ... at time of release
i.e. at the worse moment with a make exiting on an error.
So okay to fail, but only if 'make' leads to a failure after modifying the
API headers, which probably means changing docs/Makefile.am to systematically
rebuild when libvirt.h (or .h.in since libvirt.h is autogenerated ?). Or some
other mechanism which somehow force people changing the API to rebuild the
XML and the bindings.
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard at redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
More information about the libvir-list