[Intel-gfx] [DIM PATCH 2/3] dim: add checkpatch profiles to allow different checkpatch options

Daniel Vetter daniel at ffwll.ch
Wed Mar 14 06:29:33 UTC 2018


On Tue, Mar 13, 2018 at 4:07 PM, Jani Nikula <jani.nikula at intel.com> wrote:
> On Tue, 13 Mar 2018, Daniel Vetter <daniel at ffwll.ch> wrote:
>> On Tue, Mar 13, 2018 at 01:30:09PM +0200, Jani Nikula wrote:
>>> To reduce noise on CI checkpatch reports, we want to silence some
>>> checkpatch warnings. Different branches may end up having different
>>> rules, and users may want to get unfiltered results, so introduce
>>> checkpatch profiles. Add some placeholder profiles to be filled later
>>> on.
>>>
>>> The idea is that CI would run 'dim checkpatch HEAD^ drm-intel' (or some
>>> other commit range-ish as the case may be).
>>>
>>> Cc: Arkadiusz Hiler <arkadiusz.hiler at intel.com>
>>> Cc: Joonas Lahtinen <joonas.lahtinen at linux.intel.com>
>>> Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
>>> Signed-off-by: Jani Nikula <jani.nikula at intel.com>
>>> ---
>>>  dim     | 46 +++++++++++++++++++++++++++++++++++++++++-----
>>>  dim.rst |  9 +++++++--
>>>  2 files changed, 48 insertions(+), 7 deletions(-)
>>>
>>> diff --git a/dim b/dim
>>> index 81e2bc1511ac..4ba1c7ff490a 100755
>>> --- a/dim
>>> +++ b/dim
>>> @@ -836,7 +836,7 @@ function apply_patch #patch_file
>>>              rv=1
>>>      fi
>>>
>>> -    if ! checkpatch_commit HEAD; then
>>> +    if ! checkpatch_commit HEAD branch; then
>>>              rv=1
>>>      fi
>>>      if ! check_maintainer $branch HEAD; then
>>> @@ -1358,12 +1358,47 @@ function check_maintainer
>>>  }
>>>
>>>  # $1 is the git sha1 to check
>>> +# $2 is the checkpatch profile
>>>  function checkpatch_commit
>>>  {
>>> -    local commit rv checkpatch_options
>>> +    local commit rv checkpatch_options profile profile_options
>>>
>>>      commit=$1
>>> -    checkpatch_options="-q --emacs --strict --show-types -"
>>> +    profile=${2:-default}
>>> +
>>> +    # special branch profile maps branches to profiles
>>> +    if [[ "$profile" = "branch" ]]; then
>>> +            case "$(git_current_branch)" in
>>> +                    drm-intel-next-queued|drm-intel-next-fixes|drm-intel-fixes)
>>> +                            profile=drm-intel
>>> +                            ;;
>>> +                    drm-misc-next|drm-misc-next-fixes|drm-misc-fixes)
>>> +                            profile=drm-misc
>>> +                            ;;
>>
>> Use branch_to_repo instead, if that doesn't come up with anything, then
>> default?
>
> This command is supposed to work without configuration (a developer
> command)...

Duh :-/

I guess I'm ok as-is, but feels a bit silly.
-Daniel

>
> BR,
> Jani.
>
>
>>
>> With that little bit of polished applied, on patches 1&2:
>>
>> Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
>>> +                    *)
>>> +                            profile=default
>>> +                            ;;
>>> +            esac
>>> +    fi
>>> +
>>> +    # map profiles to checkpatch options
>>> +    case "$profile" in
>>> +            default)
>>> +                    profile_options=""
>>> +                    ;;
>>> +            drm-misc)
>>> +                    profile_options=""
>>> +                    ;;
>>> +            drm-intel)
>>> +                    profile_options=""
>>> +                    ;;
>>> +            *)
>>> +                    echoerr "Unknown checkpatch profile $profile"
>>> +                    profile_options=""
>>> +                    ;;
>>> +    esac
>>> +
>>> +    checkpatch_options="-q --emacs --strict --show-types $profile_options -"
>>>
>>>      git --no-pager log --oneline -1 $commit
>>>      if ! git show --pretty=email $commit |\
>>> @@ -1430,12 +1465,13 @@ function dim_extract_next_fixes
>>>  dim_alias_cp=checkpatch
>>>  function dim_checkpatch
>>>  {
>>> -    local range rv
>>> +    local range profile rv
>>>
>>>      range=$(rangeish "${1:-}")
>>> +    profile=${2:-}
>>>
>>>      for commit in $(git rev-list --reverse $range); do
>>> -            if ! checkpatch_commit $commit; then
>>> +            if ! checkpatch_commit $commit $profile; then
>>>                      rv=1
>>>              fi
>>>      done
>>> diff --git a/dim.rst b/dim.rst
>>> index e2c5fd6e6d0a..cc930959e497 100644
>>> --- a/dim.rst
>>> +++ b/dim.rst
>>> @@ -130,13 +130,18 @@ fixes *commit-ish*
>>>  Print the Fixes: and Cc: lines for the supplied *commit-ish* in the linux kernel
>>>  CodingStyle approved format.
>>>
>>> -checkpatch [*commit-ish* [.. *commit-ish*]]
>>> --------------------------------------------
>>> +checkpatch [*commit-ish* [.. *commit-ish*]] [*profile*]
>>> +-------------------------------------------------------
>>>  Runs the given commit range commit-ish..commit-ish through the check tools.
>>>
>>>  If no commit-ish is passed, defaults to HEAD^..HEAD. If one commit-ish is passed
>>>  instead of a range, the range commit-ish..HEAD is used.
>>>
>>> +If profile is given, uses specific options for checkpatch error
>>> +filtering. Current profiles are "default", "branch", "drm-intel", and
>>> +"drm-misc". The "branch" profile maps the current git branch to the appropriate
>>> +profile, or if the branch is not known, to "default".
>>> +
>>>  sparse [*commit-ish* [.. *commit-ish*]]
>>>  ---------------------------------------
>>>  Run sparse on the files changed by the given commit range.
>>> --
>>> 2.11.0
>>>
>>> _______________________________________________
>>> dim-tools mailing list
>>> dim-tools at lists.freedesktop.org
>>> https://lists.freedesktop.org/mailman/listinfo/dim-tools
>
> --
> Jani Nikula, Intel Open Source Technology Center



-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch


More information about the Intel-gfx mailing list