> Sent: Tuesday, June 15, 2021 at 6:21 PM > From: "Thiago Macieira" <thiago.macie...@intel.com> > To: "interestqt-project.org" <interest@qt-project.org> > Cc: "Jason H" <jh...@gmx.com> > Subject: Re: [Interest] Beginner DBUS Question: how to enforce the XML? > > On Tuesday, 15 June 2021 13:24:12 PDT Jason H wrote: > > So I think the Qt docs and support on DBUS are quite good. But I keep coming > > back to a non-Q- non-G DBUS question: When interfacing with C/CPP code > > using libdbus or sdbus, which manually pack parameters to messages, how is > > "proper" DBUS messaging enforced? > > There is no XML when messages are being exchanged. So there's nothing to be > enforced. > > > Example: > > I have a XML Definition for a service I publish, I use tools to generate the > > wrappers for it. Someone using libdbus/sdbus consumes that service. I > > update the XML (say add or remove a parameter), do my workflow, and now > > their client is expecting the wrong parameters. > > > > Reverse example: > > I consume a DBUS service and they update their libdbus/sdbus code, they > > don't have an XML, how do I identify it before it gets deployed? > > > > I'm interested in some kind of build-time compilation process check. I'm > > thinking: > > 1. Force them to publish a XML. > > 2. Generate a header from it > > 3. Force them to have an implementation that consumes the header > > 4. Rely on the compiler to error when the header doesn't match the > > implementation. > > Ok, that makes sense.
Glad to hear it :-) > > However there are two bug flaws with this: > > 1. I'm forcing them to adhere to the development protocol (maybe a makefile > > is sufficiently forceful?) > > 2. I can't guarantee the functions are actually the ones used (a bigger > > issue I know) > > If they aren't used, why do you care? It's the same as requiring everyone to > use blue pens: if it's not part of something you see, why do you care? Well it's more about not trusting the competence of the other side. Or, alternatively, them not trusting a n00b (me). Perhaps I waxed too philosophical. Yeah, it would be possible to use an alternative function, which should be caught in code review, but I'm looking for something brain-dead simple and preferably enforceable by the CI system. It seems that I've got to invent some kind of Qt and C (no ++, libdbus/sdbus legacy codebase) workflow that everyone can agree on. I was hoping that this workflow already existed in the world. _______________________________________________ Interest mailing list Interest@qt-project.org https://lists.qt-project.org/listinfo/interest