[edk2-devel] Uncrustify configuration file and file/function templates

Pedro Falcato pedro.falcato at gmail.com
Tue Nov 16 23:05:36 UTC 2021


Hi,

RE: Uncrustify's configuration

I had made a few changes to the config file, when trying out Uncrustify, a
few months ago, on Mike Kinney's suggestion. In my experience, the new
config file reflects the edk2 coding style better.

In particular, it adds spaces between things like 'if' and the parenthesis,
and better aligns functions' parameters.
Feel free to check out the diff:
https://gist.github.com/heatd/5bb048a188726cb8bc9f5b4a844b0ec2. There's a
bit of diff noise due to it being based on
https://dev.azure.com/projectmu/_git/Uncrustify?path=/etc/edk2.cfg but
diffed on
https://github.com/makubacki/edk2/blob/uncrustify_poc_2/.uncrustify/edk2.cfg
.

Thanks,
Pedro

On Tue, Nov 16, 2021 at 7:26 PM Michael Kubacki <
mikuback at linux.microsoft.com> wrote:

> I think that makes sense. I will look into it further and let you know
> if there's any downsides found.
>
> On 11/16/2021 2:18 PM, Kinney, Michael D wrote:
> > Could we add this feature to the Uncrustify CI Plugin?
> >
> > Mike
> >
> >> -----Original Message-----
> >> From: Michael Kubacki <mikuback at linux.microsoft.com>
> >> Sent: Tuesday, November 16, 2021 10:54 AM
> >> To: devel at edk2.groups.io; Kinney, Michael D <michael.d.kinney at intel.com
> >
> >> Subject: Re: [edk2-devel] Uncrustify configuration file and
> file/function templates
> >>
> >> I would prefer to have a single version of the file if possible to
> >> reduce synchronization issues across the two copies.
> >>
> >> It seems that a CI plugin to read the contents of the template files and
> >> search incoming code for that text wouldn't be too difficult to add as a
> >> new plugin.
> >>
> >> Thanks,
> >> Michael
> >>
> >> On 11/16/2021 1:31 PM, Michael D Kinney wrote:
> >>> Hi Michael,
> >>>
> >>> Should we have 2 versions of the config file?
> >>>
> >>> One used by automation tools such as CI and git hooks that do not use
> the
> >>> templates.
> >>>
> >>> And another one that a developer can optionally use that will add the
> >>> templates for missing file/function headers that the developer then
> needs
> >>> to fill out.
> >>>
> >>> One concern I have about the templates is if they get used but a
> developer
> >>> does not fill in the missing information.  It would be best if a CI
> check
> >>> rejects a file/function header that has not been filled in.
> >>>
> >>> Mike
> >>>
> >>>> -----Original Message-----
> >>>> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of
> Michael Kubacki
> >>>> Sent: Tuesday, November 16, 2021 10:25 AM
> >>>> To: devel at edk2.groups.io; Kinney, Michael D <
> michael.d.kinney at intel.com>
> >>>> Subject: Re: [edk2-devel] Uncrustify configuration file and
> file/function templates
> >>>>
> >>>> Hi Mike,
> >>>>
> >>>> Those were just disabled because I typically run a separate invocation
> >>>> of Uncrustify with them enabled to isolate code which is missing
> >>>> file/function headers. My thought was the templates are helpful but we
> >>>> would need to individually identify where they are placed to file
> TCBZs
> >>>> for maintainers to replace the template with the actual information.
> >>>>
> >>>> In some of my previous poc branches (like
> >>>>
> https://github.com/makubacki/edk2/commits/uncrustify_poc_3_with_headers),
> I
> >>>> also pushed a branch with those results.
> >>>>
> >>>> So I do think we would want them enabled in the final config file. We
> >>>> can also review the contents of the templates in the future patch
> series
> >>>> to see if any changes are recommended.
> >>>>
> >>>> I prefer using a .uncrustify directory to help group related
> collateral
> >>>> but I don't have a strong opinion there.
> >>>>
> >>>> Thanks,
> >>>> Michael
> >>>>
> >>>> On 11/16/2021 12:16 PM, Michael D Kinney wrote:
> >>>>> Hi Michael,
> >>>>>
> >>>>> In your POC branch (
> https://github.com/makubacki/edk2/tree/uncrustify_poc_5), I see the
> >>>>> uncrustify.cfg configuration file in the root.
> >>>>>
> >>>>>
> https://github.com/makubacki/edk2/blob/uncrustify_poc_5/uncrustify.cfg
> >>>>>
> >>>>> However, in your Wiki, you provide examples where this configuration
> file is in an
> >>>>> .uncrustify directory
> >>>>>
> >>>>>
> https://dev.azure.com/projectmu/Uncrustify/_wiki/wikis/Uncrustify.wiki/1/Project-Mu-(EDK-II)-Fork-Readme
> >>>>>
> >>>>> The uncrustify.cfg files also contains commented out settings for
> the file header
> >>>>> and function header templates.
> >>>>>
> >>>>>        # cmt_insert_file_header          = default_file_header.txt
> >>>>>        # cmt_insert_func_header          =
> default_function_header.txt
> >>>>>
> >>>>> Are these disabled on purpose?
> >>>>>
> >>>>> Do we want to enable them?  If so, should the uncrustify
> configuration file
> >>>>> and the templates go into a .uncrustify directory?
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> Mike
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>>
> >>>
> >>>
>
>
> 
>
>
>

-- 
Pedro Falcato


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83794): https://edk2.groups.io/g/devel/message/83794
Mute This Topic: https://groups.io/mt/87100207/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20211116/ab298bb9/attachment.htm>


More information about the edk2-devel-archive mailing list