On Thu, May 05, 2022 at 08:57:04AM +0100, Daniel P. Berrangé wrote:
On Thu, May 05, 2022 at 09:48:54AM +0200, Victor Toso wrote:
> On Wed, May 04, 2022 at 07:02:48PM +0100, Daniel P. Berrangé wrote:
> > I don't really like the idea of adding stuff to the public API
> > to workaround brokenness in apibuild.py.
>
> While apibuild.py needs to be fixed to error/warn in this
> scenarios, I'd argue that the patch moves towards consistency
> with comments blocks and improves the documentation of already
> exposed API.
>
> > It seems like we only need apibuild.py to not merge together
> > distinct comment blocks.
>
> What is not trivial is to (1) define which comment block belongs
> to which element/type. We need to define what is acceptable and
> what is not and (2) enforce that to stay consistent.
If we have multiple opened+clsoed comment blocks immediately after
each other such as this scenario:
/* 1 << 0 is reserved for virDomainModificationImpact */
/* 1 << 1 is reserved for virDomainModificationImpact */
/* Older servers lacked the ability to handle string typed
* parameters. Attempts to set a string parameter with an older
* server will fail at the client, but attempts to retrieve
* parameters must not return strings from a new server to an
* older client, so this flag exists to identify newer clients to
* newer servers. This flag is automatically set when needed, so
* the user does not have to worry about it; however, manually
* setting the flag can be used to reject servers that cannot
* return typed strings, even if no strings would be returned.
*
* Since: v0.9.8
*/
VIR_TYPED_PARAM_STRING_OKAY = 1 << 2,
IMHO it is pretty straightforward for apibuild.py to have a policy
that the comment block closest to the declaration is the API docs
and the preceeding ones are irrelevant to hte API docs.
I very much doubt we hav a case where we have multiple open+closed
comment blocks which all should be part of the API docs for a given
declaration, and if we did, then we should merge them into a single
open+closed comment block.
This makes sense, at least in theory. I have no idea how difficult it
would be to actually convince apibuild.py to behave this way though.
I can give it a shot, but I'm concerned about falling into a real
rabbit hole with this one. If I don't manage to bend the script to my
will quickly enough, I'll just give up on the idea and leave things
as they are.
--
Andrea Bolognani / Red Hat / Virtualization