Paolo Bonzini <pbonz...@redhat.com> writes:

> On 02/05/2018 11:38, Markus Armbruster wrote:
>>>>> It probably is not unless someone adds properties in realize() callback,
>>>> Now work that into the doc comment, please :)
>>> Are there any examples?
>> There must be examples where instances of the same type have different
>> properties, or else our design decision to create properties dynamically
>> was inane.
>
> Buses for example create properties at runtime to link a parent to its
> children.  These properties are created when a child device appears;
> this is different from creating properties in or the realize() callback,
> or upon setting other properties.
>
> The purpose of this command is to tell people/tools what they can pass
> to -device/-object/device_add/object_add, so the real question is
> whether there are cases where it falls short of that purpose.
>
> If not,

Do we have to be certain?  Or would "we don't think so" be enough?

>         maybe the wording for the .json file could be something like:
>
>   Objects can create properties at runtime, for example to describe
>   links between different devices and/or objects.  These properties
>   are not included in the output of this command.

Not bad.

In theory, objects can also create properties in response to non-default
configuration, and these would also not be included.  Objects could even
create a property with the same name, but different type or description.
Arguably capital-letter Bad Ideas, but nothing prevents such misuse.

Since I'm in a generous mood, I'd rate the thing at Rusty API level 4
"Follow common convention and you'll get it right."

https://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html
https://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html

If dynamic properties are really just for internal use, as you seem to
suggest in Message-ID:
<c1d40d88-1c80-2bbd-c28c-613b7fe8d...@redhat.com>, then we should've had
the common sense to unambiguously separate them from the user-facing
properties.  Can we still do that?

Reply via email to