[PATCH v2 01/31] include: move include/qapi/qmp/ to include/qobject/

Daniel P. Berrangé posted 31 patches 1 year, 3 months ago
There is a newer version of this series
[PATCH v2 01/31] include: move include/qapi/qmp/ to include/qobject/
Posted by Daniel P. Berrangé 1 year, 3 months ago
The general expectation is that header files should follow the same
file/path naming scheme as the corresponding source file. There are
various historical exceptions to this practice in QEMU, with one of
the most notable being the include/qapi/qmp/ directory. Most of the
headers there correspond to source files in qobject/.

This patch corrects that inconsistency by creating include/qobject/.
The only outlier is include/qapi/qmp/dispatch.h which gets renamed
to include/qapi/qmp-registry.h.

To allow the code to continue to build, symlinks are temporarily
added in $QEMU/qapi/qmp/ to point to the new location. They will
be removed in a later commit.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
 MAINTAINERS                                     | 5 +----
 include/qapi/{qmp/dispatch.h => qmp-registry.h} | 0
 include/{qapi/qmp => qobject}/json-parser.h     | 0
 include/{qapi/qmp => qobject}/json-writer.h     | 0
 include/{qapi/qmp => qobject}/qbool.h           | 0
 include/{qapi/qmp => qobject}/qdict.h           | 0
 include/{qapi/qmp => qobject}/qjson.h           | 0
 include/{qapi/qmp => qobject}/qlist.h           | 0
 include/{qapi/qmp => qobject}/qlit.h            | 0
 include/{qapi/qmp => qobject}/qnull.h           | 0
 include/{qapi/qmp => qobject}/qnum.h            | 0
 include/{qapi/qmp => qobject}/qobject.h         | 0
 include/{qapi/qmp => qobject}/qstring.h         | 0
 qapi/qmp/dispatch.h                             | 1 +
 qapi/qmp/json-parser.h                          | 1 +
 qapi/qmp/json-writer.h                          | 1 +
 qapi/qmp/qbool.h                                | 1 +
 qapi/qmp/qdict.h                                | 1 +
 qapi/qmp/qjson.h                                | 1 +
 qapi/qmp/qlist.h                                | 1 +
 qapi/qmp/qlit.h                                 | 1 +
 qapi/qmp/qnull.h                                | 1 +
 qapi/qmp/qnum.h                                 | 1 +
 qapi/qmp/qobject.h                              | 1 +
 qapi/qmp/qstring.h                              | 1 +
 25 files changed, 13 insertions(+), 4 deletions(-)
 rename include/qapi/{qmp/dispatch.h => qmp-registry.h} (100%)
 rename include/{qapi/qmp => qobject}/json-parser.h (100%)
 rename include/{qapi/qmp => qobject}/json-writer.h (100%)
 rename include/{qapi/qmp => qobject}/qbool.h (100%)
 rename include/{qapi/qmp => qobject}/qdict.h (100%)
 rename include/{qapi/qmp => qobject}/qjson.h (100%)
 rename include/{qapi/qmp => qobject}/qlist.h (100%)
 rename include/{qapi/qmp => qobject}/qlit.h (100%)
 rename include/{qapi/qmp => qobject}/qnull.h (100%)
 rename include/{qapi/qmp => qobject}/qnum.h (100%)
 rename include/{qapi/qmp => qobject}/qobject.h (100%)
 rename include/{qapi/qmp => qobject}/qstring.h (100%)
 create mode 120000 qapi/qmp/dispatch.h
 create mode 120000 qapi/qmp/json-parser.h
 create mode 120000 qapi/qmp/json-writer.h
 create mode 120000 qapi/qmp/qbool.h
 create mode 120000 qapi/qmp/qdict.h
 create mode 120000 qapi/qmp/qjson.h
 create mode 120000 qapi/qmp/qlist.h
 create mode 120000 qapi/qmp/qlit.h
 create mode 120000 qapi/qmp/qnull.h
 create mode 120000 qapi/qmp/qnum.h
 create mode 120000 qapi/qmp/qobject.h
 create mode 120000 qapi/qmp/qstring.h

diff --git a/MAINTAINERS b/MAINTAINERS
index c21d6a2f9e..656482b2a4 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3153,8 +3153,6 @@ S: Supported
 F: qapi/
 X: qapi/*.json
 F: include/qapi/
-X: include/qapi/qmp/
-F: include/qapi/qmp/dispatch.h
 F: tests/qapi-schema/
 F: tests/unit/test-*-visitor.c
 F: tests/unit/test-qapi-*.c
@@ -3178,8 +3176,7 @@ QObject
 M: Markus Armbruster <armbru@redhat.com>
 S: Supported
 F: qobject/
-F: include/qapi/qmp/
-X: include/qapi/qmp/dispatch.h
+F: include/qobject/
 F: scripts/coccinelle/qobject.cocci
 F: tests/unit/check-qdict.c
 F: tests/unit/check-qjson.c
diff --git a/include/qapi/qmp/dispatch.h b/include/qapi/qmp-registry.h
similarity index 100%
rename from include/qapi/qmp/dispatch.h
rename to include/qapi/qmp-registry.h
diff --git a/include/qapi/qmp/json-parser.h b/include/qobject/json-parser.h
similarity index 100%
rename from include/qapi/qmp/json-parser.h
rename to include/qobject/json-parser.h
diff --git a/include/qapi/qmp/json-writer.h b/include/qobject/json-writer.h
similarity index 100%
rename from include/qapi/qmp/json-writer.h
rename to include/qobject/json-writer.h
diff --git a/include/qapi/qmp/qbool.h b/include/qobject/qbool.h
similarity index 100%
rename from include/qapi/qmp/qbool.h
rename to include/qobject/qbool.h
diff --git a/include/qapi/qmp/qdict.h b/include/qobject/qdict.h
similarity index 100%
rename from include/qapi/qmp/qdict.h
rename to include/qobject/qdict.h
diff --git a/include/qapi/qmp/qjson.h b/include/qobject/qjson.h
similarity index 100%
rename from include/qapi/qmp/qjson.h
rename to include/qobject/qjson.h
diff --git a/include/qapi/qmp/qlist.h b/include/qobject/qlist.h
similarity index 100%
rename from include/qapi/qmp/qlist.h
rename to include/qobject/qlist.h
diff --git a/include/qapi/qmp/qlit.h b/include/qobject/qlit.h
similarity index 100%
rename from include/qapi/qmp/qlit.h
rename to include/qobject/qlit.h
diff --git a/include/qapi/qmp/qnull.h b/include/qobject/qnull.h
similarity index 100%
rename from include/qapi/qmp/qnull.h
rename to include/qobject/qnull.h
diff --git a/include/qapi/qmp/qnum.h b/include/qobject/qnum.h
similarity index 100%
rename from include/qapi/qmp/qnum.h
rename to include/qobject/qnum.h
diff --git a/include/qapi/qmp/qobject.h b/include/qobject/qobject.h
similarity index 100%
rename from include/qapi/qmp/qobject.h
rename to include/qobject/qobject.h
diff --git a/include/qapi/qmp/qstring.h b/include/qobject/qstring.h
similarity index 100%
rename from include/qapi/qmp/qstring.h
rename to include/qobject/qstring.h
diff --git a/qapi/qmp/dispatch.h b/qapi/qmp/dispatch.h
new file mode 120000
index 0000000000..ffedc3971d
--- /dev/null
+++ b/qapi/qmp/dispatch.h
@@ -0,0 +1 @@
+../../include/qapi/qmp-registry.h
\ No newline at end of file
diff --git a/qapi/qmp/json-parser.h b/qapi/qmp/json-parser.h
new file mode 120000
index 0000000000..059cb73fa8
--- /dev/null
+++ b/qapi/qmp/json-parser.h
@@ -0,0 +1 @@
+../../include/qobject/json-parser.h
\ No newline at end of file
diff --git a/qapi/qmp/json-writer.h b/qapi/qmp/json-writer.h
new file mode 120000
index 0000000000..3e952f4c97
--- /dev/null
+++ b/qapi/qmp/json-writer.h
@@ -0,0 +1 @@
+../../include/qobject/json-writer.h
\ No newline at end of file
diff --git a/qapi/qmp/qbool.h b/qapi/qmp/qbool.h
new file mode 120000
index 0000000000..443c881cf8
--- /dev/null
+++ b/qapi/qmp/qbool.h
@@ -0,0 +1 @@
+../../include/qobject/qbool.h
\ No newline at end of file
diff --git a/qapi/qmp/qdict.h b/qapi/qmp/qdict.h
new file mode 120000
index 0000000000..8183614eae
--- /dev/null
+++ b/qapi/qmp/qdict.h
@@ -0,0 +1 @@
+../../include/qobject/qdict.h
\ No newline at end of file
diff --git a/qapi/qmp/qjson.h b/qapi/qmp/qjson.h
new file mode 120000
index 0000000000..85b48c5bfd
--- /dev/null
+++ b/qapi/qmp/qjson.h
@@ -0,0 +1 @@
+../../include/qobject/qjson.h
\ No newline at end of file
diff --git a/qapi/qmp/qlist.h b/qapi/qmp/qlist.h
new file mode 120000
index 0000000000..d40db0a12b
--- /dev/null
+++ b/qapi/qmp/qlist.h
@@ -0,0 +1 @@
+../../include/qobject/qlist.h
\ No newline at end of file
diff --git a/qapi/qmp/qlit.h b/qapi/qmp/qlit.h
new file mode 120000
index 0000000000..5dd5ac8ccb
--- /dev/null
+++ b/qapi/qmp/qlit.h
@@ -0,0 +1 @@
+../../include/qobject/qlit.h
\ No newline at end of file
diff --git a/qapi/qmp/qnull.h b/qapi/qmp/qnull.h
new file mode 120000
index 0000000000..944769d44b
--- /dev/null
+++ b/qapi/qmp/qnull.h
@@ -0,0 +1 @@
+../../include/qobject/qnull.h
\ No newline at end of file
diff --git a/qapi/qmp/qnum.h b/qapi/qmp/qnum.h
new file mode 120000
index 0000000000..8038e2f4d6
--- /dev/null
+++ b/qapi/qmp/qnum.h
@@ -0,0 +1 @@
+../../include/qobject/qnum.h
\ No newline at end of file
diff --git a/qapi/qmp/qobject.h b/qapi/qmp/qobject.h
new file mode 120000
index 0000000000..89d9118cfd
--- /dev/null
+++ b/qapi/qmp/qobject.h
@@ -0,0 +1 @@
+../../include/qobject/qobject.h
\ No newline at end of file
diff --git a/qapi/qmp/qstring.h b/qapi/qmp/qstring.h
new file mode 120000
index 0000000000..24f48de18a
--- /dev/null
+++ b/qapi/qmp/qstring.h
@@ -0,0 +1 @@
+../../include/qobject/qstring.h
\ No newline at end of file
-- 
2.46.0


Re: [PATCH v2 01/31] include: move include/qapi/qmp/ to include/qobject/
Posted by Markus Armbruster 1 year, 2 months ago
Daniel P. Berrangé <berrange@redhat.com> writes:

> The general expectation is that header files should follow the same
> file/path naming scheme as the corresponding source file. There are
> various historical exceptions to this practice in QEMU, with one of
> the most notable being the include/qapi/qmp/ directory. Most of the
> headers there correspond to source files in qobject/.
>
> This patch corrects that inconsistency by creating include/qobject/.
> The only outlier is include/qapi/qmp/dispatch.h which gets renamed
> to include/qapi/qmp-registry.h.
>
> To allow the code to continue to build, symlinks are temporarily
> added in $QEMU/qapi/qmp/ to point to the new location. They will
> be removed in a later commit.
>
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>

[...]

> diff --git a/MAINTAINERS b/MAINTAINERS
> index c21d6a2f9e..656482b2a4 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3153,8 +3153,6 @@ S: Supported
>  F: qapi/
>  X: qapi/*.json
>  F: include/qapi/
> -X: include/qapi/qmp/
> -F: include/qapi/qmp/dispatch.h

This tried to have add just include/qapi/qmp/dispatch.h from this
subdirectory.  It didn't work:

    $ scripts/get_maintainer.pl -f include/qapi/qmp/dispatch.h 
    get_maintainer.pl: No maintainers found, printing recent contributors.
    get_maintainer.pl: Do not blindly cc: them on patches!  Use common sense.

    qemu-devel@nongnu.org (open list:All patches CC here)

The patch moved and renames the header to include/qapi/qmp-registry.h,
which also fixes attribution:

    $ scripts/get_maintainer.pl -f include/qapi/qmp-registry.h 
    Markus Armbruster <armbru@redhat.com> (supporter:QAPI)
    Michael Roth <michael.roth@amd.com> (supporter:QAPI)
    qemu-devel@nongnu.org (open list:All patches CC here)

Mentioning this in the commit message wouldn't hurt.  Not worth a
respin.

>  F: tests/qapi-schema/
>  F: tests/unit/test-*-visitor.c
>  F: tests/unit/test-qapi-*.c
> @@ -3178,8 +3176,7 @@ QObject
>  M: Markus Armbruster <armbru@redhat.com>
>  S: Supported
>  F: qobject/
> -F: include/qapi/qmp/
> -X: include/qapi/qmp/dispatch.h
> +F: include/qobject/
>  F: scripts/coccinelle/qobject.cocci
>  F: tests/unit/check-qdict.c
>  F: tests/unit/check-qjson.c

[...]
Re: [PATCH v2 01/31] include: move include/qapi/qmp/ to include/qobject/
Posted by Daniel P. Berrangé 1 year, 2 months ago
On Thu, Nov 14, 2024 at 03:30:47PM +0100, Markus Armbruster wrote:
> Daniel P. Berrangé <berrange@redhat.com> writes:
> 
> > The general expectation is that header files should follow the same
> > file/path naming scheme as the corresponding source file. There are
> > various historical exceptions to this practice in QEMU, with one of
> > the most notable being the include/qapi/qmp/ directory. Most of the
> > headers there correspond to source files in qobject/.
> >
> > This patch corrects that inconsistency by creating include/qobject/.
> > The only outlier is include/qapi/qmp/dispatch.h which gets renamed
> > to include/qapi/qmp-registry.h.
> >
> > To allow the code to continue to build, symlinks are temporarily
> > added in $QEMU/qapi/qmp/ to point to the new location. They will
> > be removed in a later commit.
> >
> > Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> [...]
> 
> > diff --git a/MAINTAINERS b/MAINTAINERS
> > index c21d6a2f9e..656482b2a4 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -3153,8 +3153,6 @@ S: Supported
> >  F: qapi/
> >  X: qapi/*.json
> >  F: include/qapi/
> > -X: include/qapi/qmp/
> > -F: include/qapi/qmp/dispatch.h
> 
> This tried to have add just include/qapi/qmp/dispatch.h from this
> subdirectory.  It didn't work:
> 
>     $ scripts/get_maintainer.pl -f include/qapi/qmp/dispatch.h 
>     get_maintainer.pl: No maintainers found, printing recent contributors.
>     get_maintainer.pl: Do not blindly cc: them on patches!  Use common sense.
> 
>     qemu-devel@nongnu.org (open list:All patches CC here)
> 
> The patch moved and renames the header to include/qapi/qmp-registry.h,
> which also fixes attribution:
> 
>     $ scripts/get_maintainer.pl -f include/qapi/qmp-registry.h 
>     Markus Armbruster <armbru@redhat.com> (supporter:QAPI)
>     Michael Roth <michael.roth@amd.com> (supporter:QAPI)
>     qemu-devel@nongnu.org (open list:All patches CC here)
> 
> Mentioning this in the commit message wouldn't hurt.  Not worth a
> respin.

I didn't even realize I had fixed such a bug :-) Feel free to add
to the commit message if you choose to queue this series.

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 :|


Re: [PATCH v2 01/31] include: move include/qapi/qmp/ to include/qobject/
Posted by Zhao Liu 1 year, 3 months ago
On Thu, Oct 17, 2024 at 12:33:13PM +0100, Daniel P. Berrangé wrote:
> Date: Thu, 17 Oct 2024 12:33:13 +0100
> From: "Daniel P. Berrangé" <berrange@redhat.com>
> Subject: [PATCH v2 01/31] include: move include/qapi/qmp/ to
>  include/qobject/
> 
> The general expectation is that header files should follow the same
> file/path naming scheme as the corresponding source file. There are
> various historical exceptions to this practice in QEMU, with one of
> the most notable being the include/qapi/qmp/ directory. Most of the
> headers there correspond to source files in qobject/.
> 
> This patch corrects that inconsistency by creating include/qobject/.
> The only outlier is include/qapi/qmp/dispatch.h which gets renamed
> to include/qapi/qmp-registry.h.
> 
> To allow the code to continue to build, symlinks are temporarily
> added in $QEMU/qapi/qmp/ to point to the new location. They will
> be removed in a later commit.
> 
> Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
> ---
>  MAINTAINERS                                     | 5 +----
>  include/qapi/{qmp/dispatch.h => qmp-registry.h} | 0
>  include/{qapi/qmp => qobject}/json-parser.h     | 0
>  include/{qapi/qmp => qobject}/json-writer.h     | 0
>  include/{qapi/qmp => qobject}/qbool.h           | 0
>  include/{qapi/qmp => qobject}/qdict.h           | 0
>  include/{qapi/qmp => qobject}/qjson.h           | 0
>  include/{qapi/qmp => qobject}/qlist.h           | 0
>  include/{qapi/qmp => qobject}/qlit.h            | 0
>  include/{qapi/qmp => qobject}/qnull.h           | 0
>  include/{qapi/qmp => qobject}/qnum.h            | 0
>  include/{qapi/qmp => qobject}/qobject.h         | 0
>  include/{qapi/qmp => qobject}/qstring.h         | 0
>  qapi/qmp/dispatch.h                             | 1 +
>  qapi/qmp/json-parser.h                          | 1 +
>  qapi/qmp/json-writer.h                          | 1 +
>  qapi/qmp/qbool.h                                | 1 +
>  qapi/qmp/qdict.h                                | 1 +
>  qapi/qmp/qjson.h                                | 1 +
>  qapi/qmp/qlist.h                                | 1 +
>  qapi/qmp/qlit.h                                 | 1 +
>  qapi/qmp/qnull.h                                | 1 +
>  qapi/qmp/qnum.h                                 | 1 +
>  qapi/qmp/qobject.h                              | 1 +
>  qapi/qmp/qstring.h                              | 1 +
>  25 files changed, 13 insertions(+), 4 deletions(-)
>  rename include/qapi/{qmp/dispatch.h => qmp-registry.h} (100%)
>  rename include/{qapi/qmp => qobject}/json-parser.h (100%)
>  rename include/{qapi/qmp => qobject}/json-writer.h (100%)
>  rename include/{qapi/qmp => qobject}/qbool.h (100%)
>  rename include/{qapi/qmp => qobject}/qdict.h (100%)
>  rename include/{qapi/qmp => qobject}/qjson.h (100%)
>  rename include/{qapi/qmp => qobject}/qlist.h (100%)
>  rename include/{qapi/qmp => qobject}/qlit.h (100%)
>  rename include/{qapi/qmp => qobject}/qnull.h (100%)
>  rename include/{qapi/qmp => qobject}/qnum.h (100%)
>  rename include/{qapi/qmp => qobject}/qobject.h (100%)
>  rename include/{qapi/qmp => qobject}/qstring.h (100%)
>  create mode 120000 qapi/qmp/dispatch.h
>  create mode 120000 qapi/qmp/json-parser.h
>  create mode 120000 qapi/qmp/json-writer.h
>  create mode 120000 qapi/qmp/qbool.h
>  create mode 120000 qapi/qmp/qdict.h
>  create mode 120000 qapi/qmp/qjson.h
>  create mode 120000 qapi/qmp/qlist.h
>  create mode 120000 qapi/qmp/qlit.h
>  create mode 120000 qapi/qmp/qnull.h
>  create mode 120000 qapi/qmp/qnum.h
>  create mode 120000 qapi/qmp/qobject.h
>  create mode 120000 qapi/qmp/qstring.h
> 

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>