Andrea Bolognani <abolo...@redhat.com> writes: > On Wed, May 18, 2022 at 02:30:11PM +0200, Markus Armbruster wrote: >> Victor Toso <victort...@redhat.com> writes: >> > IMHO, at this moment, qapi-go is targeting communicating with >> > QEMU and handling multiple QEMU versions seems reasonable to me. >> >> It's targeting communicating in *QMP*. QMP is designed to support >> communicating with a range of QEMU versions. Full compatibility is >> promised for a narrow range. Outside that range, graceful degradation. >> >> *If* you want to widen the full compatibility range, do it in *QMP*. Or >> do it on top of QEMU, e.g. in libvirt. >> >> > Perhaps libvirt can use qapi-go in the future or other generated >> > interface. That would be cool. >> >> "Would be cool" and a dollar buys you a cup of bad coffee. >> >> Is it a good use of our limited resources? >> >> How much will it delay delivery of Go bindings compared to less >> ambitious version? > > Yeah, this thread has basically branched to cover three topics: > > 1. what an MVP Go interface for QMP should look like; > 2. how to make sure said interface uses pretty names; > 3. how to make it work across multiple QEMU versions. > > All of these are important in the long run, but as far as I'm > concerned only 1. is an actual blocker to making progress. > > If we get to the point where we can generate a reasonably complete > and well-typed Go interface that can be used to communicate with a > single version of QEMU, we should just plaster EXPERIMENTAL all over > it and get it merged. > > Basically get the MVP done and then iterate over it in-tree rather > than trying to get everything perfect from the start. > > Sounds reasonable?
Yes, with an undogmatic interpretation of "minimally viable". Doing more should be okay when it doesn't complicate things outside the Go-generating backend. Exploring how to generate Go bindings that make good use of static typing will be interesting enough. Aiming for wide compatibility in addition risks delay and/or failure. Exploding heads, too.