Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-28 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy  writes:

> On 28.04.23 12:34, Markus Armbruster wrote:
>> Vladimir Sementsov-Ogievskiy  writes:
>> 
>>> On 27.04.23 12:53, Markus Armbruster wrote:
 Signed-off-by: Markus Armbruster 
 ---
docs/devel/qapi-code-gen.rst | 53 
1 file changed, 53 insertions(+)
 diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
 index d81aac7a19..14983b074c 100644
 --- a/docs/devel/qapi-code-gen.rst
 +++ b/docs/devel/qapi-code-gen.rst
 @@ -1059,6 +1059,59 @@ For example::
   'returns': ['BlockStats'] }
  +Markup pitfalls
 +~~~
 +
 +A blank line is required between list items and paragraphs.  Without
 +it, the list may not be recognized, resulting in garbled output.  Good
 +example::
 +
 + # An event's state is modified if:
 + #
 + # - its name matches the @name pattern, and
 + # - if @vcpu is given, the event has the "vcpu" property.
 +
 +Without the blank line this would be a single paragraph.
 +
 +Indentation matters.  Bad example::
 +
 + # @none: None (no memory side cache in this proximity domain,
 + #  or cache associativity unknown)
 +
 +The description is parsed as a definition list with term "None (no
 +memory side cache in this proximity domain," and definition "or cache
 +associativity unknown)".
>>>
>>> May be add good example of indentation as well
>>
>> Patches I'm about to post will fill up this pitfall.  They change the
>> text to:
>>
>>   # @none: None (no memory side cache in this proximity domain,
>>   #  or cache associativity unknown)
>>   # (since 5.0)
>>  The last line's de-indent is wrong.  The second and subsequent lines
>
> So you want to drop "The description is parsed as a definition list ..." ?

Yes, because that'll be factually wrong :)

Happy to explain further once the patches are on the list.

>>  need to line up with each other, like this::
>>
>>   # @none: None (no memory side cache in this proximity domain,
>>   # or cache associativity unknown)
>>   # (since 5.0)
>>
>> Good enough?
>
> Example of good indent is good)

Thanks!




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-28 Thread Vladimir Sementsov-Ogievskiy

On 28.04.23 12:34, Markus Armbruster wrote:

Vladimir Sementsov-Ogievskiy  writes:


On 27.04.23 12:53, Markus Armbruster wrote:

Signed-off-by: Markus Armbruster 
---
   docs/devel/qapi-code-gen.rst | 53 
   1 file changed, 53 insertions(+)
diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index d81aac7a19..14983b074c 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -1059,6 +1059,59 @@ For example::
  'returns': ['BlockStats'] }
 +Markup pitfalls
+~~~
+
+A blank line is required between list items and paragraphs.  Without
+it, the list may not be recognized, resulting in garbled output.  Good
+example::
+
+ # An event's state is modified if:
+ #
+ # - its name matches the @name pattern, and
+ # - if @vcpu is given, the event has the "vcpu" property.
+
+Without the blank line this would be a single paragraph.
+
+Indentation matters.  Bad example::
+
+ # @none: None (no memory side cache in this proximity domain,
+ #  or cache associativity unknown)
+
+The description is parsed as a definition list with term "None (no
+memory side cache in this proximity domain," and definition "or cache
+associativity unknown)".


May be add good example of indentation as well


Patches I'm about to post will fill up this pitfall.  They change the
text to:

  # @none: None (no memory side cache in this proximity domain,
  #  or cache associativity unknown)
  # (since 5.0)

 The last line's de-indent is wrong.  The second and subsequent lines


So you want to drop "The description is parsed as a definition list ..." ?


 need to line up with each other, like this::

  # @none: None (no memory side cache in this proximity domain,
  # or cache associativity unknown)
  # (since 5.0)

Good enough?


Example of good indent is good)

--
Best regards,
Vladimir




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-28 Thread Markus Armbruster
Vladimir Sementsov-Ogievskiy  writes:

> On 27.04.23 12:53, Markus Armbruster wrote:
>> Signed-off-by: Markus Armbruster 
>> ---
>>   docs/devel/qapi-code-gen.rst | 53 
>>   1 file changed, 53 insertions(+)
>> diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
>> index d81aac7a19..14983b074c 100644
>> --- a/docs/devel/qapi-code-gen.rst
>> +++ b/docs/devel/qapi-code-gen.rst
>> @@ -1059,6 +1059,59 @@ For example::
>>  'returns': ['BlockStats'] }
>> +Markup pitfalls
>> +~~~
>> +
>> +A blank line is required between list items and paragraphs.  Without
>> +it, the list may not be recognized, resulting in garbled output.  Good
>> +example::
>> +
>> + # An event's state is modified if:
>> + #
>> + # - its name matches the @name pattern, and
>> + # - if @vcpu is given, the event has the "vcpu" property.
>> +
>> +Without the blank line this would be a single paragraph.
>> +
>> +Indentation matters.  Bad example::
>> +
>> + # @none: None (no memory side cache in this proximity domain,
>> + #  or cache associativity unknown)
>> +
>> +The description is parsed as a definition list with term "None (no
>> +memory side cache in this proximity domain," and definition "or cache
>> +associativity unknown)".
>
> May be add good example of indentation as well

Patches I'm about to post will fill up this pitfall.  They change the
text to:

 # @none: None (no memory side cache in this proximity domain,
 #  or cache associativity unknown)
 # (since 5.0)

The last line's de-indent is wrong.  The second and subsequent lines
need to line up with each other, like this::

 # @none: None (no memory side cache in this proximity domain,
 # or cache associativity unknown)
 # (since 5.0)

Good enough?

[...]




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-27 Thread Vladimir Sementsov-Ogievskiy

On 27.04.23 15:41, Vladimir Sementsov-Ogievskiy wrote:

On 27.04.23 12:53, Markus Armbruster wrote:

Signed-off-by: Markus Armbruster 
---
  docs/devel/qapi-code-gen.rst | 53 
  1 file changed, 53 insertions(+)

diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index d81aac7a19..14983b074c 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -1059,6 +1059,59 @@ For example::
 'returns': ['BlockStats'] }
+Markup pitfalls
+~~~
+
+A blank line is required between list items and paragraphs.  Without
+it, the list may not be recognized, resulting in garbled output.  Good
+example::
+
+ # An event's state is modified if:
+ #
+ # - its name matches the @name pattern, and
+ # - if @vcpu is given, the event has the "vcpu" property.
+
+Without the blank line this would be a single paragraph.
+
+Indentation matters.  Bad example::
+
+ # @none: None (no memory side cache in this proximity domain,
+ #  or cache associativity unknown)
+
+The description is parsed as a definition list with term "None (no
+memory side cache in this proximity domain," and definition "or cache
+associativity unknown)".


May be add good example of indentation as well


anyway:
Reviewed-by: Vladimir Sementsov-Ogievskiy 




+
+Section tags are case-sensitive and end with a colon.  Good example::
+
+ # Since: 7.1
+
+Bad examples (all ordinary paragraphs)::
+
+ # since: 7.1
+
+ # Since 7.1
+
+ # Since : 7.1
+
+Likewise, member descriptions require a colon.  Good example::
+
+ # @interface-id: Interface ID
+
+Bad examples (all ordinary paragraphs)::
+
+ # @interface-id   Interface ID
+
+ # @interface-id : Interface ID
+
+Undocumented members are not flagged, yet.  Instead, the generated
+documentation describes them as "Not documented".  Think twice before
+adding more undocumented members.
+
+When you change documentation comments, please check the generated
+documentation comes out as intended!
+
+
  Client JSON Protocol introspection
  ==




--
Best regards,
Vladimir




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-27 Thread Vladimir Sementsov-Ogievskiy

On 27.04.23 12:53, Markus Armbruster wrote:

Signed-off-by: Markus Armbruster 
---
  docs/devel/qapi-code-gen.rst | 53 
  1 file changed, 53 insertions(+)

diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
index d81aac7a19..14983b074c 100644
--- a/docs/devel/qapi-code-gen.rst
+++ b/docs/devel/qapi-code-gen.rst
@@ -1059,6 +1059,59 @@ For example::
 'returns': ['BlockStats'] }
  
  
+Markup pitfalls

+~~~
+
+A blank line is required between list items and paragraphs.  Without
+it, the list may not be recognized, resulting in garbled output.  Good
+example::
+
+ # An event's state is modified if:
+ #
+ # - its name matches the @name pattern, and
+ # - if @vcpu is given, the event has the "vcpu" property.
+
+Without the blank line this would be a single paragraph.
+
+Indentation matters.  Bad example::
+
+ # @none: None (no memory side cache in this proximity domain,
+ #  or cache associativity unknown)
+
+The description is parsed as a definition list with term "None (no
+memory side cache in this proximity domain," and definition "or cache
+associativity unknown)".


May be add good example of indentation as well


+
+Section tags are case-sensitive and end with a colon.  Good example::
+
+ # Since: 7.1
+
+Bad examples (all ordinary paragraphs)::
+
+ # since: 7.1
+
+ # Since 7.1
+
+ # Since : 7.1
+
+Likewise, member descriptions require a colon.  Good example::
+
+ # @interface-id: Interface ID
+
+Bad examples (all ordinary paragraphs)::
+
+ # @interface-id   Interface ID
+
+ # @interface-id : Interface ID
+
+Undocumented members are not flagged, yet.  Instead, the generated
+documentation describes them as "Not documented".  Think twice before
+adding more undocumented members.
+
+When you change documentation comments, please check the generated
+documentation comes out as intended!
+
+
  Client JSON Protocol introspection
  ==
  


--
Best regards,
Vladimir




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-27 Thread Markus Armbruster
Juan Quintela  writes:

> Markus Armbruster  wrote:
>> Signed-off-by: Markus Armbruster 
>
> Reviewed-by: Juan Quintela 

Thanks!

>> ---
>>  docs/devel/qapi-code-gen.rst | 53 
>>  1 file changed, 53 insertions(+)
>>
>> diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
>> index d81aac7a19..14983b074c 100644
>> --- a/docs/devel/qapi-code-gen.rst
>> +++ b/docs/devel/qapi-code-gen.rst

[...]

>> +When you change documentation comments, please check the generated
>> +documentation comes out as intended!
>
> What is the easiest way to see the code generated for some subsystem,
> say migration.json and find the problems and undocumented stuff?
>
> I am expecting something in the lines of:
> - you run this command
> - and look at this file

Make sure building documentation is enabled, run "make", and look at
bld-clang/docs/manual/interop/qemu-qmp-ref.html.  Documentation for
qapi/migration.json is in section "Migration" (because
qapi/migration.json starts with a "# = Migration" heading).

Sphinx can produce a number of formats.  Our build system only does HTML
and manual pages.  I like to also produce plain text for easy diffing.
I grab the sphinx-build invocation from "make V=1" and replace "-b html"
by "-b text".




Re: [PATCH 17/16] docs/devel/qapi-code-gen: Describe some doc markup pitfalls

2023-04-27 Thread Juan Quintela
Markus Armbruster  wrote:
> Signed-off-by: Markus Armbruster 

Reviewed-by: Juan Quintela 

> ---
>  docs/devel/qapi-code-gen.rst | 53 
>  1 file changed, 53 insertions(+)
>
> diff --git a/docs/devel/qapi-code-gen.rst b/docs/devel/qapi-code-gen.rst
> index d81aac7a19..14983b074c 100644
> --- a/docs/devel/qapi-code-gen.rst
> +++ b/docs/devel/qapi-code-gen.rst
> @@ -1059,6 +1059,59 @@ For example::
> 'returns': ['BlockStats'] }
>  
>  
> +Markup pitfalls
> +~~~
> +
> +A blank line is required between list items and paragraphs.  Without
> +it, the list may not be recognized, resulting in garbled output.  Good
> +example::
> +
> + # An event's state is modified if:
> + #
> + # - its name matches the @name pattern, and
> + # - if @vcpu is given, the event has the "vcpu" property.
> +
> +Without the blank line this would be a single paragraph.
> +
> +Indentation matters.  Bad example::
> +
> + # @none: None (no memory side cache in this proximity domain,
> + #  or cache associativity unknown)
> +
> +The description is parsed as a definition list with term "None (no
> +memory side cache in this proximity domain," and definition "or cache
> +associativity unknown)".
> +
> +Section tags are case-sensitive and end with a colon.  Good example::
> +
> + # Since: 7.1
> +
> +Bad examples (all ordinary paragraphs)::
> +
> + # since: 7.1
> +
> + # Since 7.1
> +
> + # Since : 7.1
> +
> +Likewise, member descriptions require a colon.  Good example::
> +
> + # @interface-id: Interface ID
> +
> +Bad examples (all ordinary paragraphs)::
> +
> + # @interface-id   Interface ID
> +
> + # @interface-id : Interface ID
> +
> +Undocumented members are not flagged, yet.  Instead, the generated
> +documentation describes them as "Not documented".  Think twice before
> +adding more undocumented members.
> +
> +When you change documentation comments, please check the generated
> +documentation comes out as intended!

What is the easiest way to see the code generated for some subsystem,
say migration.json and find the problems and undocumented stuff?

I am expecting something in the lines of:
- you run this command
- and look at this file

Thanks, Juan.