From: Bruce Richardson <bruce.richardson@intel.com>
To: Thomas Monjalon <thomas@monjalon.net>
Cc: Marat Khalili <marat.khalili@huawei.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in
Date: Tue, 30 Jun 2026 17:45:02 +0100 [thread overview]
Message-ID: <akPyjgQwQxLw1KQV@bricha3-mobl1.ger.corp.intel.com> (raw)
In-Reply-To: <cesJxiasRY6aqEM1iZ_leA@monjalon.net>
On Tue, Jun 30, 2026 at 06:10:59PM +0200, Thomas Monjalon wrote:
> Hello,
>
> 30/06/2026 11:03, Marat Khalili:
> > I noticed that a few header files contain docstring-like comments but are not
> > present in doc/api/doxy-api-index.md and/or (fewer) in doc/api/doxy-api.conf.in
> > There seem to be no checks anywhere in the process that would make sure these
> > index files are updated. Do we even care, or is it unsupported legacy? If we do
> > care, would a check or an automatic generation fix be more promising?
>
> Some internal files have doxygen comments, not sure why,
> probably to run Doxygen manually on these files.
>
> In the scope of our public documentation,
> the goal was to document all and only public API.
>
> If you see some public API not referenced, it is a bug.
> And yes a script to check this may be useful.
>
Something like this could work as a quick check that all public headers are
getting indexed. Doesn't help with verifying that all contents within the
files have comments, but maybe its an easy start point:
diff --git a/drivers/meson.build b/drivers/meson.build
index 4d95604ecd..5a9ba68d54 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -278,6 +278,23 @@ foreach subpath:subdirs
dpdk_headers += headers
dpdk_drivers_headers += driver_sdk_headers
+ # On Linux, best-effort check that public headers are named correctly
+ # and that the driver directory is referenced in the Doxygen config so
+ # that its API gets indexed.
+ if is_linux and meson.version().version_compare('>= 0.59.0') and headers.length() > 0
+ foreach h:headers
+ hname = fs.name(h)
+ if not hname.startswith('rte_')
+ warning('drivers/@0@: public header "@1@" does not start with "rte_"'.format(drv_path, hname))
+ endif
+ endforeach
+ if run_command('grep', '-qF', '@TOPDIR@/drivers/' + drv_path,
+ dpdk_source_root / 'doc' / 'api' / 'doxy-api.conf.in',
+ check: false).returncode() != 0
+ warning('drivers/@0@: has public headers but not listed in doxy-api.conf.in'.format(drv_path))
+ endif
+ endif
+
if headers.length() > 0
dpdk_includes += include_directories(drv_path)
endif
diff --git a/lib/meson.build b/lib/meson.build
index af5c160cb8..d897b2c73a 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -209,6 +209,23 @@ foreach l:libraries
dpdk_indirect_headers += indirect_headers
dpdk_drivers_headers += driver_sdk_headers
+ # On Linux, best-effort check that public headers are named correctly
+ # and that the library directory is referenced in the Doxygen config so
+ # that its API gets indexed.
+ if is_linux and meson.version().version_compare('>= 0.59.0') and headers.length() > 0
+ foreach h:headers
+ hname = fs.name(h)
+ if not (hname.startswith('rte_') or hname.startswith('cmdline'))
+ warning('lib/@0@: public header "@1@" does not start with "rte_" or "cmdline"'.format(l, hname))
+ endif
+ endforeach
+ if run_command('grep', '-qF', '@TOPDIR@/lib/' + l,
+ dpdk_source_root / 'doc' / 'api' / 'doxy-api.conf.in',
+ check: false).returncode() != 0
+ warning('lib/@0@: has public headers but not listed in doxy-api.conf.in'.format(l))
+ endif
+ endif
+
libname = 'rte_' + name
includes += include_directories(l)
dpdk_includes += include_directories(l)
next prev parent reply other threads:[~2026-06-30 16:45 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 9:03 [RFC] doc: updating doxy-api-index.md and doxy-api.conf.in Marat Khalili
2026-06-30 16:10 ` Thomas Monjalon
2026-06-30 16:45 ` Bruce Richardson [this message]
2026-07-02 20:00 ` [PATCH 0/7] doc: build for all public headers Marat Khalili
2026-07-02 20:00 ` [PATCH 1/7] doc: detect ignored " Marat Khalili
2026-07-02 20:00 ` [PATCH 2/7] doc: document rte_os.h Marat Khalili
2026-07-02 20:00 ` [PATCH 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili
2026-07-02 20:00 ` [PATCH 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili
2026-07-02 20:00 ` [PATCH 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili
2026-07-02 20:00 ` [PATCH 6/7] doc: add missing drivers " Marat Khalili
2026-07-02 20:00 ` [PATCH 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili
2026-07-06 10:52 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili
2026-07-06 10:52 ` [PATCH v2 1/7] doc: detect ignored " Marat Khalili
2026-07-06 10:52 ` [PATCH v2 2/7] doc: document rte_os.h Marat Khalili
2026-07-06 10:52 ` [PATCH v2 3/7] doc: fix typos in rte_bus_pci.h Marat Khalili
2026-07-06 10:52 ` [PATCH v2 4/7] doc: fix typos in rte_bus_vmbus.h Marat Khalili
2026-07-06 10:52 ` [PATCH v2 5/7] doc: add missing globs to doxy-api.conf.in Marat Khalili
2026-07-06 10:52 ` [PATCH v2 6/7] doc: add missing drivers " Marat Khalili
2026-07-06 10:52 ` [PATCH v2 7/7] doc: add missing headers to doxy-api-index.md Marat Khalili
2026-07-06 13:14 ` [PATCH v2 0/7] doc: build for all public headers Marat Khalili
2026-07-07 8:50 ` [PATCH v3 0/8] " Marat Khalili
2026-07-07 8:50 ` [PATCH v3 1/8] doc: detect ignored " Marat Khalili
2026-07-07 8:50 ` [PATCH v3 2/8] doc: document rte_os.h Marat Khalili
2026-07-07 8:50 ` [PATCH v3 3/8] doc: fix typos in rte_avp_common.h Marat Khalili
2026-07-07 8:50 ` [PATCH v3 4/8] doc: fix typos in rte_bus_pci.h Marat Khalili
2026-07-07 8:50 ` [PATCH v3 5/8] doc: fix typos in rte_bus_vmbus.h Marat Khalili
2026-07-07 8:50 ` [PATCH v3 6/8] doc: add missing globs to doxy-api.conf.in Marat Khalili
2026-07-07 8:50 ` [PATCH v3 7/8] doc: add missing drivers " Marat Khalili
2026-07-07 8:50 ` [PATCH v3 8/8] doc: add missing headers to doxy-api-index.md Marat Khalili
2026-07-07 11:23 ` [PATCH v3 0/8] doc: build for all public headers Marat Khalili
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=akPyjgQwQxLw1KQV@bricha3-mobl1.ger.corp.intel.com \
--to=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=marat.khalili@huawei.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.