On Fri,  5 Jul 2024 17:35:33 +0200
Robin Jarry <rja...@redhat.com> wrote:

> When using checkpatches.sh locally, verify that there is an In-Reply-To
> header when the patch is a respin (i.e. v2, v3, etc.). This is currently
> only enforced by the upstream CI but cannot be verified locally.
> 
> This cannot be verified when checking commit ids since --in-reply-to is
> a git-format-patch option which is not specified by checkpatches.sh when
> generating temporary files.
> 
> Here is an example:
> 
>  $ git format-patch -v6 -1 --stdout | devtools/checkpatches.sh
>  warning: [PATCH v6] graph: expose node context as pointers
>  warning: respins must be --in-reply-to=<v1.pa...@message.id>.
>  0/1 valid patch
> 
>  $ git format-patch -v6 -1 --stdout --in-reply-to=foo | \
>                      devtools/checkpatches.sh
>  1/1 valid patch
> 
> Link: https://git.dpdk.org/tools/dpdk-ci/commit/?id=070b31649e48460b3
> Signed-off-by: Robin Jarry <rja...@redhat.com>
> ---
>  devtools/checkpatches.sh | 13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> diff --git a/devtools/checkpatches.sh b/devtools/checkpatches.sh
> index bfacd77f398a..cb1c9972a71f 100755
> --- a/devtools/checkpatches.sh
> +++ b/devtools/checkpatches.sh
> @@ -405,11 +405,13 @@ status=0
>  check () { # <patch-file> <commit>
>       local ret=0
>       local subject=''
> +     local check_in_reply_to=false
>       headline_printed=false
>  
>       total=$(($total + 1))
>       if [ -n "$1" ] ; then
>               tmpinput=$1
> +             check_in_reply_to=true
>       else
>               tmpinput=$(mktemp -t dpdk.checkpatches.XXXXXX)
>               trap "rm -f '$tmpinput'" INT
> @@ -419,6 +421,7 @@ check () { # <patch-file> <commit>
>                       --no-stat --stdout -1 $commit > "$tmpinput"
>               else
>                       cat > "$tmpinput"
> +                     check_in_reply_to=true
>               fi
>       fi
>  
> @@ -426,6 +429,16 @@ check () { # <patch-file> <commit>
>       subject=$(sed '/^Subject: */!d;s///;N;s,\n[[:space:]]\+, ,;s,\n.*,,;q' 
> "$tmpinput")
>       ! $verbose || print_headline "$subject"
>  
> +     # check In-Reply-To for version > 1
> +     if [ "$check_in_reply_to" = true ] \
> +             && echo "$subject" | grep -qi 'v[2-9].*\]' \

Your regex won't work for v10 etc.

Reply via email to