On Thu, May 05, 2022 at 02:13:15AM -0700, Andrea Bolognani wrote:
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.
Alternatively the classic approach to this problem taken by javadoc
and gtk-doc, is to require API comments to use '/**' and leave '/*'
for non-API comments. We've got a reasonably large amount of usage
of '/**' but I'm guessing it isn't complete.
With regards,
Daniel
--
|:
https://berrange.com -o-
https://www.flickr.com/photos/dberrange :|
|:
https://libvirt.org -o-
https://fstop138.berrange.com :|
|:
https://entangle-photo.org -o-
https://www.instagram.com/dberrange :|