Stephen Hemminger <[email protected]> writes: > Add a new section to the contributing guide describing the > analyze-patch.py script which uses AI providers to review patches > against DPDK coding standards before submission to the mailing list. > > The new section covers basic usage, provider selection, patch series > handling, LTS release review, and output format options. A note > clarifies that AI review supplements but does not replace human > review. > > Also add a reference to the script in the new driver guide's > test tools checklist. > > Signed-off-by: Stephen Hemminger <[email protected]> > ---
Acked-by: Aaron Conole <[email protected]> > doc/guides/contributing/new_driver.rst | 2 + > doc/guides/contributing/patches.rst | 59 ++++++++++++++++++++++++++ > 2 files changed, 61 insertions(+) > > diff --git a/doc/guides/contributing/new_driver.rst > b/doc/guides/contributing/new_driver.rst > index 555e875329..6c0d356cfd 100644 > --- a/doc/guides/contributing/new_driver.rst > +++ b/doc/guides/contributing/new_driver.rst > @@ -210,3 +210,5 @@ Be sure to run the following test tools per patch in a > patch series: > * `check-doc-vs-code.sh` > * `check-spdx-tag.sh` > * Build documentation and validate how output looks > +* Optionally run ``analyze-patch.py`` for AI-assisted review > + (see :ref:`ai_assisted_review` in the Contributing Guide) > diff --git a/doc/guides/contributing/patches.rst > b/doc/guides/contributing/patches.rst > index 5f554d47e6..1e50799c19 100644 > --- a/doc/guides/contributing/patches.rst > +++ b/doc/guides/contributing/patches.rst > @@ -183,6 +183,10 @@ Make your planned changes in the cloned ``dpdk`` repo. > Here are some guidelines > > * Code and related documentation must be updated atomically in the same > patch. > > +* Consider running the :ref:`AI-assisted review <ai_assisted_review>` tool > + before submitting to catch common issues early. > + This is encouraged but not required. > + > Once the changes have been made you should commit them to your local repo. > > For small changes, that do not require specific explanations, it is better > to keep things together in the > @@ -503,6 +507,61 @@ Additionally, when contributing to the DTS tool, patches > should also be checked > the ``dts-check-format.sh`` script in the ``devtools`` directory of the DPDK > repo. > To run the script, extra :ref:`Python dependencies <dts_deps>` are needed. > > + > +.. _ai_assisted_review: > + > +AI-Assisted Patch Review > +------------------------ > + > +Contributors may optionally use the ``devtools/analyze-patch.py`` script > +to get an AI-assisted review of patches before submitting them to the > mailing list. > +The script checks patches against the DPDK coding standards and contribution > +guidelines documented in ``AGENTS.md``. > + > +The script supports multiple AI providers (Anthropic Claude, OpenAI ChatGPT, > +xAI Grok, Google Gemini). An API key for the chosen provider must be set > +in the corresponding environment variable (see ``--list-providers``). > + > +Basic usage:: > + > + # Review a single patch (default provider: Anthropic Claude) > + devtools/analyze-patch.py my-patch.patch > + > + # Use a different provider > + devtools/analyze-patch.py -p openai my-patch.patch > + > + # Review for an LTS branch (enables stricter rules) > + devtools/analyze-patch.py -r 24.11 my-patch.patch > + > + # List available providers and their API key variables > + devtools/analyze-patch.py --list-providers > + > +For a patch series in an mbox file, the ``--split-patches`` option reviews > +each patch individually:: > + > + devtools/analyze-patch.py --split-patches series.mbox > + > + # Review only a range of patches > + devtools/analyze-patch.py --split-patches --patch-range 1-5 series.mbox > + > +When reviewing for a Long Term Stable (LTS) release, use the ``-r`` option > +with the target version. Any DPDK release with minor version ``.11`` > +(e.g., 23.11, 24.11) is automatically recognized as LTS, > +and the script will enforce stricter rules: bug fixes only, no new features > or APIs. > + > +Output can be formatted as plain text (default), Markdown, HTML, or JSON:: > + > + devtools/analyze-patch.py -f markdown -o review.md my-patch.patch > + > +The review guidelines in ``AGENTS.md`` focus on correctness bug detection > +and other DPDK-specific requirements. Commit message formatting and > +SPDX/copyright compliance are checked by ``checkpatches.sh`` and are > +not duplicated in the AI review. > + > +.. note:: > + > + Always verify AI suggestions before acting on them. > + > .. _contrib_check_compilation: > > Checking Compilation

