public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael Kubacki" <mikuback@linux.microsoft.com>
To: devel@edk2.groups.io, ardb@kernel.org
Cc: Leif Lindholm <quic_llindhol@quicinc.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [edk2-devel] [RFC PATCH] ArmPkg: Enable AuditMode for Uncrustify CI checks
Date: Fri, 2 Jun 2023 11:26:49 -0400	[thread overview]
Message-ID: <e7c9ecfc-2af1-06f5-92c3-6052c5ab12fb@linux.microsoft.com> (raw)
In-Reply-To: <20230602085136.3552790-1-ardb@kernel.org>

Are there particular areas that could be improved to make it more usable 
for you? I'm trying to find actionable improvements that can be made, if 
any.

I know it's not perfect but developers can run it with a single keyboard 
shortcut and it's been useful internally for eliminating style minutia 
from distracting design and correctness conversation in code reviews.

On 6/2/2023 4:51 AM, Ard Biesheuvel wrote:
> Uncrustify checks are too rigid, making them counter-productive:
> 
> - it leads to code that is arguably harder to parse visually (e.g.,
>    the changes to ArmPkg/Include/Chipset/AArch64Mmu.h in commit
>    429309e0c6b74792)

Looking at commit 7f198321eec0f520373, I see positive changes like in 
ArmCrashDumpDxe.c spacing in the ASSERT calls and treatment of 
multi-line parameter formatting in the mCpu->RegisterInterruptHandler() 
call are consistent.

That carries on for a number of C calls with inconsistent spacing before 
opening parentheses and calls such as those to the DEBUG macro which I 
find easier to read separating each parameter on a dedicated line.

In AArch64Mmu.h, I agree that preserving the (mostly) global column as 
opposed to block-specific columns would be easier to vertically scan. Is 
that the main issue in the file?

> - it forces indentation-only changes to code in the vicinity of actual
>    changes, making the code history more bloated than necessary (see
>    commit 7f198321eec0f520373 for an example)

That's true. People adjusted things like indentation before depending on 
a given change, but it is predetermined now. Perhaps turning off column 
alignment (in general or in a given package) could help reduce noise 
from this.

I don't think alignment enforcement is necessary. That might also help 
address some of thrash in AArch64Mmu.h.

> - finding out from the web UI what exactly Uncrustify objected to is not
>    straight-forward.
> 

This should not be necessary. It can be run locally to produce the same 
result as in CI.

IDE-specific, but a lot of people use VS Code with the Uncrustify 
extension 
(https://marketplace.visualstudio.com/items?itemName=zachflower.uncrustify) 
and that allows Uncrustify to be run against the open source file by 
simply pressing the "code formatter" command.

I usually write the code, stage or commit it and then run this command 
on the file. The code is formatted and it gives a normal local diff of 
exactly what Uncrustify changed.

> So let's enable AuditMode for ArmPkg, so that interested parties can see
> the uncrustify recommendations if desired, but without preventing the
> changes from being merged. This leaves it at the discretion of the
> ArmPkg maintainers to decide which level of conformance is required.
> 
> Cc: Leif Lindholm <quic_llindhol@quicinc.com>
> Cc: "Kinney, Michael D" <michael.d.kinney@intel.com>
> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
> ---
>   ArmPkg/ArmPkg.ci.yaml | 5 +++++
>   1 file changed, 5 insertions(+)
> 
> diff --git a/ArmPkg/ArmPkg.ci.yaml b/ArmPkg/ArmPkg.ci.yaml
> index 24db7425051388cf..d3124816118944cb 100644
> --- a/ArmPkg/ArmPkg.ci.yaml
> +++ b/ArmPkg/ArmPkg.ci.yaml
> @@ -239,5 +239,10 @@
>           ],
> 
>           "AdditionalIncludePaths": [] # Additional paths to spell check
> 
>                                        # (wildcards supported)
> 
> +    },
> 
> +
> 
> +    # options defined in .pytool/Plugin/UncrustifyCheck
> 
> +    "UncrustifyCheck": {
> 
> +        "AuditOnly": True
> 
>       }
> 
>   }
> 

  parent reply	other threads:[~2023-06-02 15:26 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-02  8:51 [RFC PATCH] ArmPkg: Enable AuditMode for Uncrustify CI checks Ard Biesheuvel
2023-06-02  9:34 ` Leif Lindholm
2023-06-02 15:18 ` [edk2-devel] " Michael Kubacki
     [not found] ` <1764E0991FEF04DA.11185@groups.io>
2023-06-02 15:22   ` Michael Kubacki
2023-06-02 15:26 ` Michael Kubacki [this message]
2023-06-02 15:50   ` Ard Biesheuvel
2023-06-02 16:52     ` Michael Kubacki
2023-06-21 10:41     ` Gerd Hoffmann

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-list 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=e7c9ecfc-2af1-06f5-92c3-6052c5ab12fb@linux.microsoft.com \
    --to=devel@edk2.groups.io \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox