<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Series Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Bret<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div style="mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="border:none;padding:0in"><b>From: </b><a href="mailto:michael.d.kinney=intel.com@groups.io">Michael D Kinney via groups.io</a><br>
<b>Sent: </b>Sunday, December 5, 2021 5:18 PM<br>
<b>To: </b><a href="mailto:mikuback@linux.microsoft.com">Michael Kubacki</a>; <a href="mailto:devel@edk2.groups.io">
devel@edk2.groups.io</a>; <a href="mailto:maciej.rabeda@linux.intel.com">maciej.rabeda@linux.intel.com</a>;
<a href="mailto:Michael.Kubacki@microsoft.com">Michael Kubacki</a>; <a href="mailto:afish@apple.com">
Andrew Fish (afish@apple.com)</a>; <a href="mailto:leif@nuviainc.com">Lindholm, Leif</a>;
<a href="mailto:michael.d.kinney@intel.com">Kinney, Michael D</a><br>
<b>Subject: </b>[EXTERNAL] Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4</p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="margin-bottom:12.0pt">Hello EDK II Maintainers,<br>
<br>
A detailed evaluation of the DEBUG_CODE() formatting issue has been completed.<br>
The reason DEBUG_CODE() is a challenge is that this looks like a macro from a<br>
C parsing perspective, but the EDK II usage places C statements or blocks of <br>
C code as the parameter to this macro.<br>
<br>
There are actually 2 methods available to mark a statement or a block of code<br>
to be included when the DEBUG_PROPERTY_DEBUG_CODE_ENABLED bit is enabled in<br>
PcdDebugPropertyMask. One is DEBUG_CODE() and the other is to mark the beginning<br>
and end of a code block with DEBUG_CODE_BEGIN() and DEBUG_CODE_END().  In fact,<br>
DEBUG_CODE() is implemented using DEBUG_CODE_BEGIN() and DEBUG_CODE_END() macros.<br>
<br>
    #define DEBUG_CODE(Expression)  \<br>
      DEBUG_CODE_BEGIN ();          \<br>
      Expression                    \<br>
      DEBUG_CODE_END ()<br>
<br>
A complete review for the use of these DEBUG_CODE macros was performed on the <br>
edk2 repo.  Uncrustify performs good formatting for code blocks between <br>
DEBUG_CODE_BEGIN() and DEBUG_CODE_END().  This is because these look like simple<br>
macros calls with no parameters and the lines of C code between these 2 macros<br>
is formatted correctly.<br>
<br>
The uncrustify formatting issues are only present with the use of DEBUG_CODE().<br>
Simple use cases of DEBUG_CODE(Expression) where Expression is a single C<br>
statement also look correct.  A medium complexity use case where Expression is<br>
a code block of simple statements or even some local variables and simple<br>
statements  also look correct.  It is only complex code blocks that use C <br>
statements such as if/for/while/case that include the use of braces {} does<br>
uncrustify perform incorrect formatting.<br>
<br>
The recommended solution to this issue is to convert the use of DEBUG_CODE()<br>
to DEBUG_CODE_BEGIN() / DEBUG_CODE_END() for cases where the Expression <br>
passed to DEBUG_CODE() is the complex use case that contains statements that<br>
use braces {}.  There are 57 instances of this pattern across 40 files in the<br>
edk2 repo.<br>
<br>
I have posted a branch with these additional patches:<br>
<br>
    <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V7&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=NRfBw8TYqA1BkWCsfb6x5G%2FlnKOFpVbRbS%2BbCNJsKnE%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V7&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=NRfBw8TYqA1BkWCsfb6x5G%2FlnKOFpVbRbS%2BbCNJsKnE%3D&amp;reserved=0</a><br>
<br>
I have performed CompareBuild tests with this revised patch series with <br>
the DEBUG_CODE changes.  It passes 100% showing no binary differences.<br>
<br>
    <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1542454606&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=UUnES9Tdyt6tps56RAoBA%2Fm47WqD4qdl4kBmlRAENCA%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1542454606&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=UUnES9Tdyt6tps56RAoBA%2Fm47WqD4qdl4kBmlRAENCA%3D&amp;reserved=0</a><br>
<br>
I have opened a PR to run this patch series through EDK II CI. It also passes 100%.<br>
<br>
    <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2236&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Xdg6OtNtet5JJhLdC0F7LHzLHGnJ6fQklsYfLXMkcXs%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2236&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Xdg6OtNtet5JJhLdC0F7LHzLHGnJ6fQklsYfLXMkcXs%3D&amp;reserved=0</a><br>
<br>
The summary of changes made since the V6 review are:<br>
<br>
    1) Change uncrustify configuration assignment alignment threshold to 0<br>
<br>
        align_assign_thresh = 0<br>
<br>
    2) Replace "<param>, OPTIONAL" with "<param> OPTIONAL,"<br>
<br>
    3) Replace DEBUG_CODE(Expression) with <br>
<br>
           DEBUG_CODE_BEGIN(); <br>
           Expression <br>
           DEBUG_CODE_END()<br>
<br>
       if Expression is complex and contains braces {}.<br>
<br>
    4) No changes to uncrustify tool required.<br>
<br>
Please review the differences between the following 2 branches and provide <br>
feedback or a Series Reviewed-by if you agree with these additional changes.<br>
<br>
    <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oJyk1mqXffFT5dA8zwV3OpeQIWAydy%2FgXGccCGPiSOw%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oJyk1mqXffFT5dA8zwV3OpeQIWAydy%2FgXGccCGPiSOw%3D&amp;reserved=0</a><br>
    <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V7&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=NRfBw8TYqA1BkWCsfb6x5G%2FlnKOFpVbRbS%2BbCNJsKnE%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V7&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=NRfBw8TYqA1BkWCsfb6x5G%2FlnKOFpVbRbS%2BbCNJsKnE%3D&amp;reserved=0</a><br>
<br>
The goal is to complete the review and get the uncrustify change committed<br>
tomorrow so the extended hard freeze can be lifted.<br>
<br>
Thanks,<br>
<br>
Mike<br>
<br>
> -----Original Message-----<br>
> From: Kinney, Michael D <michael.d.kinney@intel.com><br>
> Sent: Thursday, December 2, 2021 6:23 PM<br>
> To: Michael Kubacki <mikuback@linux.microsoft.com>; devel@edk2.groups.io; maciej.rabeda@linux.intel.com; Michael Kubacki<br>
> <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com) <afish@apple.com>; Leif Lindholm <leif@nuviainc.com>;<br>
> Kinney, Michael D <michael.d.kinney@intel.com><br>
> Subject: RE: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4<br>
> <br>
> Hello EDK II Maintainers,<br>
> <br>
> I have entered BZ 3760 to make the use of the OPTIONAL keyword style consistent for all of edk2 repo<br>
> and to be compatible with uncrustify.<br>
> <br>
> I have posted the following V6 branch that does the EFI_D_* to DEBUG_* changes, the OPTIONAL keyword<br>
> style changes, and the uncrustify changes with the one configuration change for assignment alignment.<br>
> <br>
>     <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oJyk1mqXffFT5dA8zwV3OpeQIWAydy%2FgXGccCGPiSOw%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3760_3739_ApplyUncrustifyChanges_V6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oJyk1mqXffFT5dA8zwV3OpeQIWAydy%2FgXGccCGPiSOw%3D&amp;reserved=0</a><br>
> <br>
> Please provide feedback on the code style in this branch with the known DEBUG_CODE() issue still<br>
> present.<br>
> <br>
> If we are able to quickly update uncrustify to handle DEBUG_CODE(), I will generate a V7.<br>
> <br>
> Thanks,<br>
> <br>
> Mike<br>
> <br>
> > -----Original Message-----<br>
> > From: Kinney, Michael D <michael.d.kinney@intel.com><br>
> > Sent: Thursday, December 2, 2021 4:53 PM<br>
> > To: Michael Kubacki <mikuback@linux.microsoft.com>; devel@edk2.groups.io; maciej.rabeda@linux.intel.com; Michael Kubacki<br>
> > <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com) <afish@apple.com>; Leif Lindholm <leif@nuviainc.com>;<br>
> > Kinney, Michael D <michael.d.kinney@intel.com><br>
> > Subject: RE: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4<br>
> ><br>
> > Michael,<br>
> ><br>
> > Yes.  Please update the patch series that adds UncrustifyCheck with those changes.<br>
> ><br>
> > Thanks,<br>
> ><br>
> > Mike<br>
> ><br>
> > > -----Original Message-----<br>
> > > From: Michael Kubacki <mikuback@linux.microsoft.com><br>
> > > Sent: Thursday, December 2, 2021 4:31 PM<br>
> > > To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io; maciej.rabeda@linux.intel.com; Michael<br>
> Kubacki<br>
> > > <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com) <afish@apple.com>; Leif Lindholm <leif@nuviainc.com><br>
> > > Subject: Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4<br>
> > ><br>
> > > Hi Mike,<br>
> > ><br>
> > > Thank you for the detailed analysis and recommendations.<br>
> > ><br>
> > > I agree with the recommendations and I will try to have an Uncrustify<br>
> > > tool update by tomorrow for (4).<br>
> > ><br>
> > > That will require an update in uncrustify_ext_dep.yaml to pull in the<br>
> > > new version. I'm assuming I should also update uncrustify.cfg to set<br>
> > > align_assign_thresh = 0 in that new patch series?<br>
> > ><br>
> > > Regards,<br>
> > > Michael<br>
> > ><br>
> > > On 12/2/2021 7:18 PM, Kinney, Michael D wrote:<br>
> > > > Hi Michael,<br>
> > > ><br>
> > > > CORRECTION: set align_assign_threshold to 0.<br>
> > > ><br>
> > > > Reponses inline below.<br>
> > > ><br>
> > > > I would like to summarize the 4 issues raised in the past day along with the recommendations.<br>
> > > ><br>
> > > > 1) Exclusion feature for UncrustifyCheck.  There are 2 directories with 8 files total that<br>
> > > >     maintainers have noted they would like to see not go through uncrustify formatting.  Today<br>
> > > >     the only content that is skipped is BaseTools and submodules.<br>
> > > ><br>
> > > >     Adding a general purpose exclusion feature would then require all developers to make<br>
> > > >     sure their method of using uncrustify also excludes those same areas.  This requires<br>
> > > >     extra steps for all developers and maintainers.<br>
> > > ><br>
> > > >     If we do not add the exclusion feature, then the 8 files will require an extra step<br>
> > > >     to sync with the original source of those files.  The rate of changes of these 8 files<br>
> > > >     is very low today.<br>
> > > ><br>
> > > >     RECOMMENDATION: Do not add exclusion feature at this time.  Revisit if the extra work<br>
> > > >     to maintain the files that would be candidates for exclusions increases significantly.<br>
> > > ><br>
> > > > 2) Alignment of assignments.  The threshold of 4 characters appears to be too low and causes<br>
> > > >     source files that are already aligned to become unaligned.<br>
> > > ><br>
> > > >     RECOMMENDATION: Change threshold to the default value of 0 which means no limit.<br>
> > > ><br>
> > > >         align_assign_thresh= 0<br>
> > > ><br>
> > > > 3) Alignment of parameters in function declaration not correct.  The root cause of this<br>
> > > >     is the use of the OPTIONAL keyword.  If the OPTIONAL keyword is removed, then the<br>
> > > >     alignment is correct.  The alignment is also correct if the OPTIONAL keyword appears<br>
> > > >     before the ','.  If the OPTIONAL keyword appears after the ',', then the format is<br>
> > > >     not correct.  The OPTIONAL keyword indicates that the parameter in the function is<br>
> > > >     not required and may be passed in as NULL or 0 or some other default value defined by<br>
> > > >     the API.  It makes more sense for this OPTIONAL keyword that follows the parameter<br>
> > > >     names to appear before the ',' so it is scoped to the parameter on that line.  If it<br>
> > > >     appears after the ',', then C parsers thinks it is a prefix (IN, OUT, CONST, volatile,<br>
> > > >     static) for the next parameter in the function.<br>
> > > ><br>
> > > >     RECOMMENDATION: Update patch series with a global search and replace so OPTIONAL<br>
> > > >     keyword always appears before the ',' on the same line.<br>
> > > ><br>
> > > >  RegEx search string:  ',( *)OPTIONAL( *)'<br>
> > > >  RegEx replace string: ' $1OPTIONAL,$2'<br>
> > > ><br>
> > > > 4) Format issues with complex blocks in DEBUG_CODE(), or between DEBUG_CODE_BEGIN() and<br>
> > > >     DEBUG_CODE_END().  Uncrustify treats these as macros and is not aware that the<br>
> > > >     parameter passed into the macro call is a block of C code that needs to be formatted.<br>
> > > >     Complex blocks with if/while/for/case statements are impacted the most.<br>
> > > ><br>
> > > >     RECOMMENDATION: Update the uncrustify with an edk2 specific extension to treat these<br>
> > > >     macros as a block of code as if they were surrounded by an extra set of braces {}.<br>
> > > ><br>
> > > ><br>
> > > > I have posted a branch for testing purposes that implements (2) and (3).<br>
> > > ><br>
> > > > Branch: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0</a><br>
> > > > PR: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2233&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=xVpoVwUPysxKWbuMPkPnGP1zbqUWwgvYRiy6P5VUvE4%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2233&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=xVpoVwUPysxKWbuMPkPnGP1zbqUWwgvYRiy6P5VUvE4%3D&amp;reserved=0</a><br>
> > > >    Status: PASS<br>
> > > > CompareBuild: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1532855914&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=L7BkXP8Gfc5wS2r8JJUyO%2F4HCmR37zvs9XVXQyvo8bs%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1532855914&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=L7BkXP8Gfc5wS2r8JJUyO%2F4HCmR37zvs9XVXQyvo8bs%3D&amp;reserved=0</a><br>
> > > >    Status: PASS<br>
> > > ><br>
> > > > You can see what changed by fetching and comparing the following 2 branches:<br>
> > > ><br>
> > > >      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0</a><br>
> > > >      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0</a><br>
> > > ><br>
> > > > Please provide feedback on the RECOMMENDATIONS above.  I will go ahead and prepare of V6 version of<br>
> > > > the patch series now that that test results are all PASS.<br>
> > > ><br>
> > > > Best regards,<br>
> > > ><br>
> > > > Mike<br>
> > > ><br>
> > > ><br>
> > > >> -----Original Message-----<br>
> > > >> From: Kinney, Michael D <michael.d.kinney@intel.com><br>
> > > >> Sent: Thursday, December 2, 2021 4:15 PM<br>
> > > >> To: Michael Kubacki <mikuback@linux.microsoft.com>; devel@edk2.groups.io; maciej.rabeda@linux.intel.com; Michael<br>
> > > Kubacki<br>
> > > >> <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com) <afish@apple.com>; Leif Lindholm<br>
> <leif@nuviainc.com>;<br>
> > > >> Kinney, Michael D <michael.d.kinney@intel.com><br>
> > > >> Subject: RE: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4<br>
> > > >><br>
> > > >> Hi Michael,<br>
> > > >><br>
> > > >> Reponses inline below.<br>
> > > >><br>
> > > >> I would like to summarize the 4 issues raised in the past day along with the recommendations.<br>
> > > >><br>
> > > >> 1) Exclusion feature for UncrustifyCheck.  There are 2 directories with 8 files total that<br>
> > > >>     maintainers have noted they would like to see not go through uncrustify formatting.  Today<br>
> > > >>     the only content that is skipped is BaseTools and submodules.<br>
> > > >><br>
> > > >>     Adding a general purpose exclusion feature would then require all developers to make<br>
> > > >>     sure their method of using uncrustify also excludes those same areas.  This requires<br>
> > > >>     extra steps for all developers and maintainers.<br>
> > > >><br>
> > > >>     If we do not add the exclusion feature, then the 8 files will require an extra step<br>
> > > >>     to sync with the original source of those files.  The rate of changes of these 8 files<br>
> > > >>     is very low today.<br>
> > > >><br>
> > > >>     RECOMMENDATION: Do not add exclusion feature at this time.  Revisit if the extra work<br>
> > > >>     to maintain the files that would be candidates for exclusions increases significantly.<br>
> > > >><br>
> > > >> 2) Alignment of assignments.  The threshold of 4 characters appears to be too low and causes<br>
> > > >>     source files that are already aligned to become unaligned.<br>
> > > >><br>
> > > >>     RECOMMENDATION: Change threshold to the default value of 0 which means no limit.<br>
> > > >><br>
> > > >>         align_assign_thresh= 4<br>
> > > >><br>
> > > >> 3) Alignment of parameters in function declaration not correct.  The root cause of this<br>
> > > >>     is the use of the OPTIONAL keyword.  If the OPTIONAL keyword is removed, then the<br>
> > > >>     alignment is correct.  The alignment is also correct if the OPTIONAL keyword appears<br>
> > > >>     before the ','.  If the OPTIONAL keyword appears after the ',', then the format is<br>
> > > >>     not correct.  The OPTIONAL keyword indicates that the parameter in the function is<br>
> > > >>     not required and may be passed in as NULL or 0 or some other default value defined by<br>
> > > >>     the API.  It makes more sense for this OPTIONAL keyword that follows the parameter<br>
> > > >>     names to appear before the ',' so it is scoped to the parameter on that line.  If it<br>
> > > >>     appears after the ',', then C parsers thinks it is a prefix (IN, OUT, CONST, volatile,<br>
> > > >>     static) for the next parameter in the function.<br>
> > > >><br>
> > > >>     RECOMMENDATION: Update patch series with a global search and replace so OPTIONAL<br>
> > > >>     keyword always appears before the ',' on the same line.<br>
> > > >><br>
> > > >>         RegEx search string:  ',( *)OPTIONAL( *)'<br>
> > > >>         RegEx replace string: ' $1OPTIONAL,$2'<br>
> > > >><br>
> > > >> 4) Format issues with complex blocks in DEBUG_CODE(), or between DEBUG_CODE_BEGIN() and<br>
> > > >>     DEBUG_CODE_END().  Uncrustify treats these as macros and is not aware that the<br>
> > > >>     parameter passed into the macro call is a block of C code that needs to be formatted.<br>
> > > >>     Complex blocks with if/while/for/case statements are impacted the most.<br>
> > > >><br>
> > > >>     RECOMMENDATION: Update the uncrustify with an edk2 specific extension to treat these<br>
> > > >>     macros as a block of code as if they were surrounded by an extra set of braces {}.<br>
> > > >><br>
> > > >><br>
> > > >> I have posted a branch for testing purposes that implements (2) and (3).<br>
> > > >><br>
> > > >> Branch: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0</a><br>
> > > >> PR: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2233&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=xVpoVwUPysxKWbuMPkPnGP1zbqUWwgvYRiy6P5VUvE4%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2233&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=xVpoVwUPysxKWbuMPkPnGP1zbqUWwgvYRiy6P5VUvE4%3D&amp;reserved=0</a><br>
> > > >>    Status: PASS<br>
> > > >> CompareBuild: <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1532855914&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=L7BkXP8Gfc5wS2r8JJUyO%2F4HCmR37zvs9XVXQyvo8bs%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1532855914&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=L7BkXP8Gfc5wS2r8JJUyO%2F4HCmR37zvs9XVXQyvo8bs%3D&amp;reserved=0</a><br>
> > > >>    Status: PASS<br>
> > > >><br>
> > > >> You can see what changed by fetching and comparing the following 2 branches:<br>
> > > >><br>
> > > >>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0</a><br>
> > > >>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Bug_3737_3739_ApplyUncrustifyChanges_V6_OPTIONAL_Keyword_Fix&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=2cKi%2Bh5ZY%2FJqIJaa3o2ItdcxB%2BsM8yYNAWhnhL84g2s%3D&amp;reserved=0</a><br>
> > > >><br>
> > > >> Please provide feedback on the RECOMMENDATIONS above.  I will go ahead and prepare of V6 version of<br>
> > > >> the patch series now that that test results are all PASS.<br>
> > > >><br>
> > > >> Best regards,<br>
> > > >><br>
> > > >> Mike<br>
> > > >><br>
> > > >><br>
> > > >>> -----Original Message-----<br>
> > > >>> From: Michael Kubacki <mikuback@linux.microsoft.com><br>
> > > >>> Sent: Thursday, December 2, 2021 1:57 PM<br>
> > > >>> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>; maciej.rabeda@linux.intel.com; Michael<br>
> > > Kubacki<br>
> > > >>> <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com) <afish@apple.com>; Leif Lindholm<br>
> <leif@nuviainc.com><br>
> > > >>> Subject: Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #4<br>
> > > >>><br>
> > > >>> My reply is inline.<br>
> > > >>><br>
> > > >>> Regards,<br>
> > > >>> Michael<br>
> > > >>><br>
> > > >>> On 12/2/2021 2:45 PM, Michael D Kinney wrote:<br>
> > > >>>> Hi Maciej,<br>
> > > >>>><br>
> > > >>>> Thanks for the feedback.<br>
> > > >>>><br>
> > > >>>>    * Example #1.This appears to be caused by the following uncrustify<br>
> > > >>>>      settings:<br>
> > > >>>><br>
> > > >>>> # The threshold for aligning on '=' in assignments.<br>
> > > >>>><br>
> > > >>>> # Use a negative number for absolute thresholds.<br>
> > > >>>><br>
> > > >>>> #<br>
> > > >>>><br>
> > > >>>> # 0: No limit (default).<br>
> > > >>>><br>
> > > >>>> align_assign_thresh= 0# number<br>
> > > >>>><br>
> > > >>>> The edk2 setting for this is:<br>
> > > >>>><br>
> > > >>>> align_assign_thresh= 4<br>
> > > >>>><br>
> > > >>>> This means blocks of assignments that are different than more than 4<br>
> > > >>>> spaces will be considered a new block.<br>
> > > >>>><br>
> > > >>>> ‘HwAddreLen’ and ‘Xid’ are more than 4 characters in length<br>
> > > >>>> different.Same for ‘Xid’ and ‘Reserved’.So<br>
> > > >>>><br>
> > > >>>> uncrustify treats these as 3 different assignment blocks.<br>
> > > >>>><br>
> > > >>>> If we change to the default value of 0: No limit, this example is<br>
> > > >>>> treated as a single block and all ‘=’ are aligned.<br>
> > > >>>><br>
> > > >>>> Is there a reason ‘4’ was selected?Is there is any harm in using the<br>
> > > >>>> default of 0?<br>
> > > >>>><br>
> > > >>> We can certainly change the threshold. '4' was derived by<br>
> > > >>> experimentation. This is an area that is somewhat subjective and every<br>
> > > >>> case is difficult to cover well. Please feel free to suggest any changes.<br>
> > > >>><br>
> > > >><br>
> > > >> I recommend we use the default value of 0.  That way, any code that choose to<br>
> > > >> align assignments will still be aligned.  If a developer does not like<br>
> > > >> short assignments and long assignments in the same code block to use the<br>
> > > >> long assignment column, they can always break the block up into multiple<br>
> > > >> blocks by adding a carriage return.<br>
> > > >><br>
> > > >>> For the benefit of others, this file can be a useful refernce<br>
> > > >>> understanding spans, gaps, and thresholds.<br>
> > > >>><br>
> > > >>> <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Funcrustify%2Funcrustify%2Fblob%2Fmaster%2Fdocumentation%2Fhtdocs%2Fconfiguration.txt&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8kCcSNIphkcTJgrS9sgjSQJyRjFtDuy2u8HGz0LDadI%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Funcrustify%2Funcrustify%2Fblob%2Fmaster%2Fdocumentation%2Fhtdocs%2Fconfiguration.txt&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=8kCcSNIphkcTJgrS9sgjSQJyRjFtDuy2u8HGz0LDadI%3D&amp;reserved=0</a><br>
> > > >>><br>
> > > >>>>    * Example #2: Uncruistfy is confused by the DEBUG_CODE() macro.This is<br>
> > > >>>>      not a traditional macro because the<br>
> > > >>>><br>
> > > >>>> contents of the macro is a block of C code.I do not know how to convince<br>
> > > >>>> uncrustify that the contents of a<br>
> > > >>>><br>
> > > >>>> macro like function call to be treated as a code block from an indent<br>
> > > >>>> perspective.<br>
> > > >>>><br>
> > > >>> I believe this would have to be overridden in the Uncrustify fork since<br>
> > > >>> DEBUG_CODE() is being treated as a macro function call and code blocks<br>
> > > >>> are not expected there. In addition, some special treatment might be<br>
> > > >>> needed for alignment in between DEBUG_CODE_BEGIN()/DEBUG_CODE_END().<br>
> > > >>><br>
> > > >>> I'm happy to look at this. However, regression validation can take a<br>
> > > >>> while so I'd like to make sure we need this now. In cases that do not<br>
> > > >>> have additional code blocks, it seems to format fairly well. Is this<br>
> > > >>> prevalent and impactful enough it must be fixed now? Or, could we<br>
> > > >>> revisit it with a follow up patch?<br>
> > > >><br>
> > > >> How long does regression testing take?  I see about 20 instances of<br>
> > > >> DEBUG_CODE() that are producing bad formatting.  If the content inside<br>
> > > >> DEBUG_CODE() is a single line of a single block of statements without<br>
> > > >> any if/while/for/case statements that require further indent, then the<br>
> > > >> format looks ok.<br>
> > > >><br>
> > > >> DEBUG_CODE_BEGIN() and DEBUG_CODE_END() would look better if the<br>
> > > >> contents between are also indented one level.<br>
> > > >><br>
> > > >>><br>
> > > >>>>    * Example #3/#4: Uncrustify is confused by the OPTIONAL keyword.The<br>
> > > >>>>      edk2 config declares it as a QUALIFIER<br>
> > > >>>><br>
> > > >>>> like IN and OUT.However, OPTIONAL only appears at the end of the line<br>
> > > >>>> that declares a parameter to a<br>
> > > >>>><br>
> > > >>>> function.There are 3 forms. One with comma after OPTIONAL.One with comma<br>
> > > >>>> before OPTIONAL, and<br>
> > > >>>><br>
> > > >>>> one with no comma if the parameter is the last parameter in the function<br>
> > > >>>> declaration.<br>
> > > >>>><br>
> > > >>>> TYPE ParamName OPTIONAL,<br>
> > > >>>><br>
> > > >>>> TYPEParamName, OPTIONAL<br>
> > > >>>><br>
> > > >>>> TYPEParamName OPTIONAL<br>
> > > >>>><br>
> > > >>>> OPTIONAL is defined to nothing in edk2 builds.From a uncrustify<br>
> > > >>>> perspective, we really want is to be<br>
> > > >>>><br>
> > > >>>> ignored or more correctly treated it as a token that is attached to<br>
> > > >>>> ParamName and the combination of<br>
> > > >>>><br>
> > > >>>> ParamName and OPTIONAL treated as one unit to determine indents.<br>
> > > >>>><br>
> > > >>> "TYPE ParamName, OPTIONAL" seems especially problematic and presents an<br>
> > > >>> inconsistency with the other formats. Mike, can you please let me know<br>
> > > >>> if you have the same observation and your thoughts on a consistent pattern?<br>
> > > >>><br>
> > > >>>> Thanks,<br>
> > > >>>><br>
> > > >>>> Mike<br>
> > > >>>><br>
> > > >>>> *From:*devel@edk2.groups.io <devel@edk2.groups.io> *On Behalf Of *Maciej<br>
> > > >>>> Rabeda<br>
> > > >>>> *Sent:* Thursday, December 2, 2021 10:27 AM<br>
> > > >>>> *To:* devel@edk2.groups.io; Kinney, Michael D<br>
> > > >>>> <michael.d.kinney@intel.com>; Michael Kubacki<br>
> > > >>>> <michael.kubacki@microsoft.com>; Andrew Fish (afish@apple.com)<br>
> > > >>>> <afish@apple.com>; Leif Lindholm <leif@nuviainc.com><br>
> > > >>>> *Subject:* Re: [edk2-devel] Uncrustify Conversion Detailed Plan and<br>
> > > >>>> Extended Hard Freeze Update #4<br>
> > > >>>><br>
> > > >>>> Hey Mike,<br>
> > > >>>><br>
> > > >>>> While most of the changes related to fixing coding style violations,<br>
> > > >>>> there are a couple of changes to NetworkPkg in that PR that make the<br>
> > > >>>> code less readable. Examples below.<br>
> > > >>>><br>
> > > >>>> Example 1:<br>
> > > >>>><br>
> > > >>>><br>
> > > >>>><br>
> > > >>>> Example 2:<br>
> > > >>>><br>
> > > >>>><br>
> > > >>>> Example 3:<br>
> > > >>>><br>
> > > >>>><br>
> > > >>>> Example 4:<br>
> > > >>>><br>
> > > >>>> On 30-Nov-21 23:34, Michael D Kinney wrote:<br>
> > > >>>><br>
> > > >>>>      Hello,<br>
> > > >>>><br>
> > > >>>>      Thank you for your patience during this extended hard freeze.<br>
> > > >>>><br>
> > > >>>>      Just one more step to go.There has been a delay in the review of<br>
> > > >>>><br>
> > > >>>>      the patch series with the uncrustify source changes.PR(6).This<br>
> > > >>>><br>
> > > >>>>      patch series was not sent out as patch review email because of its<br>
> > > >>>><br>
> > > >>>>      very large size.It only contains source style changes and the<br>
> > > >>>><br>
> > > >>>>      CompareBuild tool and GitHub action has shown there are no binary<br>
> > > >>>><br>
> > > >>>>      differences introduced with these source style changes.<br>
> > > >>>><br>
> > > >>>>      If you are a package maintainer, then please review the following<br>
> > > >>>><br>
> > > >>>>      branch/PR for your package contents and review the EDK II CI results<br>
> > > >>>><br>
> > > >>>>      and BuildCompare results.I do not expect a line by line review<br>
> > > >>>><br>
> > > >>>>      because we already had time to provide feedback on the source style<br>
> > > >>>><br>
> > > >>>>      performed by uncrustify.Instead, a Reviewed-by for your package<br>
> > > >>>><br>
> > > >>>>      indicates that you have reviewed the EDK II CI results and CompareBuild<br>
> > > >>>><br>
> > > >>>>      tool functionality and results and you accept the source style<br>
> > > >>>><br>
> > > >>>>      changes to your package.<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YOlhPHAaa7FMDPmDcXhVZBKMPIFSqcddc4voMd5it7g%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YOlhPHAaa7FMDPmDcXhVZBKMPIFSqcddc4voMd5it7g%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YOlhPHAaa7FMDPmDcXhVZBKMPIFSqcddc4voMd5it7g%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jtB8aYxhDScxzKf1uPlK0qSEiScqW5xZ41tFwBd%2Bh0Q%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jtB8aYxhDScxzKf1uPlK0qSEiScqW5xZ41tFwBd%2Bh0Q%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jtB8aYxhDScxzKf1uPlK0qSEiScqW5xZ41tFwBd%2Bh0Q%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      Additional details on this update below.<br>
> > > >>>><br>
> > > >>>>      Thank you,<br>
> > > >>>><br>
> > > >>>>      Mike<br>
> > > >>>><br>
> > > >>>>      Changes from Update #3<br>
> > > >>>><br>
> > > >>>>      ----------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      * Pushed PR (5)<br>
> > > >>>><br>
> > > >>>>      * Added link to PR(6). EDK II CI Status is PASS. Build Compare PASS.<br>
> > > >>>><br>
> > > >>>>      * Waiting for review of PR (6)<br>
> > > >>>><br>
> > > >>>>      * Review of PR (7) completed and waiting for review of PR (6)<br>
> > > >>>><br>
> > > >>>>      ----------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      Changes from Update #2<br>
> > > >>>><br>
> > > >>>>      ----------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      * Changed order of PRs swapping (4) and (5).The PR that activates<br>
> > > >>>><br>
> > > >>>>      increases the max CI agent job time is independent of all the other<br>
> > > >>>><br>
> > > >>>>      PRs and its review is complete, so it can be committed now.<br>
> > > >>>><br>
> > > >>>>      * Pushed PRs (1), (2), (3), (4).<br>
> > > >>>><br>
> > > >>>>      * Waiting for review to complete for PRs (5) and (6)<br>
> > > >>>><br>
> > > >>>>      * Reviews complete for PR (7)<br>
> > > >>>><br>
> > > >>>>      * Identifies steps using git filter-branch to apply uncrustify changes to a<br>
> > > >>>><br>
> > > >>>>      code review patch series that was generated before the uncrustify changes<br>
> > > >>>><br>
> > > >>>>      avoiding manual merge.<br>
> > > >>>><br>
> > > >>>>      * Identified steps using git filter-repo to generate an alternate history of<br>
> > > >>>><br>
> > > >>>>      the edk2 repo with uncrustify changes applied on every commit.This may<br>
> > > >>>><br>
> > > >>>>      be useful when evaluating changes to files using tools like git blame<br>
> > > >>>><br>
> > > >>>>      without the large uncrustify patch series.<br>
> > > >>>><br>
> > > >>>>      ---------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      Changes from Update #1<br>
> > > >>>><br>
> > > >>>>      ----------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      * Changed order of PRs swapping (6) and (7).The PR that activates<br>
> > > >>>><br>
> > > >>>>      EDK II CI check UncrustifyCheck has to be last because it unconditionally<br>
> > > >>>><br>
> > > >>>>      checks all C/H files in all packages.Not just files that have been<br>
> > > >>>><br>
> > > >>>>      modified like some of the other checkers.<br>
> > > >>>><br>
> > > >>>>      * Updated link to the branch with the UncrustifyCheck plugin that has been<br>
> > > >>>><br>
> > > >>>>      updated with a one line change and Reviewed-by and Tested-by tags.<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jrViYKgnChmrQCFQNufpKFrHbPv2a0Rce%2BaHAVqXHDs%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jrViYKgnChmrQCFQNufpKFrHbPv2a0Rce%2BaHAVqXHDs%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jrViYKgnChmrQCFQNufpKFrHbPv2a0Rce%2BaHAVqXHDs%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jrViYKgnChmrQCFQNufpKFrHbPv2a0Rce%2BaHAVqXHDs%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Reviews complete for (1), (2), (3), (5), and (7)<br>
> > > >>>><br>
> > > >>>>      ---------------------------------------------------------------------------<br>
> > > >>>><br>
> > > >>>>      Michael Kubacki and I have prepared the patches required to apply the<br>
> > > >>>><br>
> > > >>>>      uncrustify changes and enable EDK II CI to check all submitted<br>
> > > >>>><br>
> > > >>>>      patches have been run through uncrustify.<br>
> > > >>>><br>
> > > >>>>      We have verified through the CompareBuild GitHub Action that the<br>
> > > >>>><br>
> > > >>>>      format changes performed by uncrustify have no functional changes.<br>
> > > >>>><br>
> > > >>>>      All of the OBJ, LIB, DLL, EFI, FFS, FV, and FD files match 100%<br>
> > > >>>><br>
> > > >>>>      across 70 VS2019/GCC5 builds of all package/platform DSC files in<br>
> > > >>>><br>
> > > >>>>      the edk2 repo.<br>
> > > >>>><br>
> > > >>>>      The hard freeze will be extended after the edk2-stable202111 tag until<br>
> > > >>>><br>
> > > >>>>      all uncrustify related changes are committed.We do not expect this<br>
> > > >>>><br>
> > > >>>>      to take more than a few days.Do not push any PRs until the hard<br>
> > > >>>><br>
> > > >>>>      freeze is lifted.<br>
> > > >>>><br>
> > > >>>>      The changes are broken up into 7 patch series/PRs.The PRs are ordered<br>
> > > >>>><br>
> > > >>>>      so they can be submitted using the normal submission process and EDK II<br>
> > > >>>><br>
> > > >>>>      CI will pass for each one.Details are listed below.<br>
> > > >>>><br>
> > > >>>>      Uncrustify 73.0.3 for EDK II<br>
> > > >>>><br>
> > > >>>>      =============================<br>
> > > >>>><br>
> > > >>>>      * Sources:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2F_git%2FUncrustify&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oCLdWT7EjDK7KX2apqawcHLufS%2BTjPcHnN0n5A86iJQ%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2F_git%2FUncrustify&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oCLdWT7EjDK7KX2apqawcHLufS%2BTjPcHnN0n5A86iJQ%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2F_git%2FUncrustify&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=oCLdWT7EjDK7KX2apqawcHLufS%2BTjPcHnN0n5A86iJQ%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Documentation:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2FUncrustify%2F_wiki%2Fwikis%2FUncrustify.wiki%2F1%2FProject-Mu-&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=rnYkCXUpEi0SAFob0G3QCM%2F597t5B3yup37%2BW4CbuLo%3D&amp;reserved=0(EDK-<br>
> II)-<br>
> > > Fork-<br>
> > > >>> Readme  <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2FUncrustify%2F_wiki%2Fwikis%2FUncrustify.wiki%2F1%2FProject-Mu-&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=rnYkCXUpEi0SAFob0G3QCM%2F597t5B3yup37%2BW4CbuLo%3D&amp;reserved=0(EDK-II)-Fork-Readme">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2FUncrustify%2F_wiki%2Fwikis%2FUncrustify.wiki%2F1%2FProject-Mu-&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=rnYkCXUpEi0SAFob0G3QCM%2F597t5B3yup37%2BW4CbuLo%3D&amp;reserved=0(EDK-II)-Fork-Readme</a>><br>
> > > >>>><br>
> > > >>>>      * Download:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2FUncrustify%2F_packaging%3F_a%3Dpackage%26feed%3Dmu_uncrustify%26package%3Dmu-&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=psK3sLLB40youbw2XzPiCXaHhFTuEkBakbTdwe7N3Yg%3D&amp;reserved=0<br>
> > > >>> uncrustify-release&protocolType=NuGet&version=73.0.3<br>
> > > >>> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdev.azure.com%2Fprojectmu%2FUncrustify%2F_packaging%3F_a%3Dpackage%26feed%3Dmu_uncrustify%26package%3Dmu-uncrustify-&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=TVyY15YO7%2FjqovaV15GY5k%2BkJiXFS4X9nqkeXtBhgZ8%3D&amp;reserved=0<br>
> > > >>> release&protocolType=NuGet&version=73.0.3><br>
> > > >>>><br>
> > > >>>>      Installing Uncrustify<br>
> > > >>>><br>
> > > >>>>      ======================<br>
> > > >>>><br>
> > > >>>>      The Uncrustify tool is installed automatically when the Pytools<br>
> > > >>>><br>
> > > >>>>      environment is used and the stuart* commands are run to complete the<br>
> > > >>>><br>
> > > >>>>      environment setup.Please see:<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      Uncrustify can also be installed from the download page listed above<br>
> > > >>>><br>
> > > >>>>      or built from sources from the source link above.<br>
> > > >>>><br>
> > > >>>>      The Documentation link provides instruction on how to run uncrustify from<br>
> > > >>>><br>
> > > >>>>      the command line or install as a Visual Studio Code plugin.The main<br>
> > > >>>><br>
> > > >>>>      uncrustify documentation also describes how to integrate with a few other<br>
> > > >>>><br>
> > > >>>>      editors.<br>
> > > >>>><br>
> > > >>>>      We have also discussed a client side githook.That effort has not started.<br>
> > > >>>><br>
> > > >>>>      Let us know if that is a feature you would find useful.<br>
> > > >>>><br>
> > > >>>>      Developer impact for new code reviews<br>
> > > >>>><br>
> > > >>>>      ======================================<br>
> > > >>>><br>
> > > >>>>      Once the uncrustify checker is active in EDK II CI, developers must<br>
> > > >>>><br>
> > > >>>>      make sure their patches are run through the uncrustify tool before<br>
> > > >>>><br>
> > > >>>>      sending the patches for review.<br>
> > > >>>><br>
> > > >>>>      Developers must install and run uncrustify against changes files before<br>
> > > >>>><br>
> > > >>>>      sending patch review emails or submitting PR for EDK II CI.If EDK II CI<br>
> > > >>>><br>
> > > >>>>      detects and differences in source formatting, then EDK II CI will fail<br>
> > > >>>><br>
> > > >>>>      and the developer must run uncrustify and resubmit the patches.<br>
> > > >>>><br>
> > > >>>>      Developer impact to patch series/PRs reviewed during edk2-stable201121 soft/hard freeze<br>
> > > >>>><br>
> > > >>>>      =======================================================================================<br>
> > > >>>><br>
> > > >>>>      Developers must rebase their changes after the uncrustify source changes are<br>
> > > >>>><br>
> > > >>>>      committed.The branch with a preview of the uncrustify changes can be used<br>
> > > >>>><br>
> > > >>>>      to start this rebase work.<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=w6EsAK6%2FCt%2FMDRQI%2F2jnqYT173Ww2VLY0Mc7Lz2yuRw%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      The following steps can be used to update an existing branch with the<br>
> > > >>>><br>
> > > >>>>      required uncrustify format.This is the Windows version.I will add<br>
> > > >>>><br>
> > > >>>>      the Linux version soon.<br>
> > > >>>><br>
> > > >>>>      1) Fetch and checkout and rebase to latest edk2/master<br>
> > > >>>><br>
> > > >>>>      git fetch origin<br>
> > > >>>><br>
> > > >>>>      git checkout master<br>
> > > >>>><br>
> > > >>>>      git rebase origin/master<br>
> > > >>>><br>
> > > >>>>      2) Make a backup copy of plugin UncrustifyCheck outside WORKSPACE.<br>
> > > >>>><br>
> > > >>>>      (e.g. C:\Temp\UncrustifyCheck) so the uncrustify tool executable and<br>
> > > >>>><br>
> > > >>>>      EDK II specific uncrustify configuration file available when working<br>
> > > >>>><br>
> > > >>>>      with a branch that does not have those tools in its scope.<br>
> > > >>>><br>
> > > >>>>      xcopy .pytool\Plugin\UncrustifyCheck C:\Temp\UncrustifyCheck<br>
> > > >>>><br>
> > > >>>>      3) Check out the patch series branch (e.g. MyBranch)<br>
> > > >>>><br>
> > > >>>>      git checkout MyBranch<br>
> > > >>>><br>
> > > >>>>      4) Rebase patch series against edk2-stable202111<br>
> > > >>>><br>
> > > >>>><br>
> > > >>>><br>
> > > >>>>      git rebase edk2-stable202111<br>
> > > >>>><br>
> > > >>>>      5) Create new branch for the uncrustifed version (e.g. MyBranch_Uncrustified)<br>
> > > >>>><br>
> > > >>>>      git checkout -b MyBranch_Uncrustified<br>
> > > >>>><br>
> > > >>>>      6) Use git filter-branch to uncrustify all the commits in the series<br>
> > > >>>><br>
> > > >>>>      between the rebase target from (2) and HEAD of the branch.A filter<br>
> > > >>>><br>
> > > >>>>      can be used to scope the uncrustify operations to only the C/H files<br>
> > > >>>><br>
> > > >>>>      in the specific package the patch series is against. (e.g. DynamicTablesPkg).<br>
> > > >>>><br>
> > > >>>>      BaseTools should always be excluded.If the package scoped filter is<br>
> > > >>>><br>
> > > >>>>      not used, it will still work, but will take longer to run because<br>
> > > >>>><br>
> > > >>>>      uncrustify will rescan every C/H files in the whole repo.<br>
> > > >>>><br>
> > > >>>>      git filter-branch --tree-filter "git ls-files DynamicTablesPkg*.c DynamicTablesPkg*.h :!BaseTools/* |<br>
> > > >>> c:\\Temp\\UncrustifyCheck\\mu-uncrustify-release_extdep\\Windows-x86\\uncrustify.exe -c<br>
> > > >>> c:\\Temp\\UncrustifyCheck\\uncrustify.cfg -F - --replace --no-backup --if-changed" edk2-stable202111..HEAD<br>
> > > >>>><br>
> > > >>>>      7) Now that all the individual patches in the branch are uncrustified,<br>
> > > >>>><br>
> > > >>>>      rebase against latest edk2/master that is already uncrustified.<br>
> > > >>>><br>
> > > >>>>      git rebase master<br>
> > > >>>><br>
> > > >>>>      8) Verify the patches in this new branch.<br>
> > > >>>><br>
> > > >>>>      Impacts to tracing history across the uncrusity changes<br>
> > > >>>><br>
> > > >>>>      =======================================================<br>
> > > >>>><br>
> > > >>>>      Tools the view file and line history do work with the large uncrustify<br>
> > > >>>><br>
> > > >>>>      patch series.One impact is that the operations can be very slow due<br>
> > > >>>><br>
> > > >>>>      to the large uncrustify patches.<br>
> > > >>>><br>
> > > >>>>      One option to provide a faster experience is to provide an alternate<br>
> > > >>>><br>
> > > >>>>      version of the edk2 repository as "documentation" that has the<br>
> > > >>>><br>
> > > >>>>      entire history re-written with uncrustify run on every commit.<br>
> > > >>>><br>
> > > >>>>      The tool called git-filter-repo can be used to perform this<br>
> > > >>>><br>
> > > >>>>      transformation and runs in a reasonable period of time (a few hours)<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0</a> 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      The following steps can be used to perform this transformation.<br>
> > > >>>><br>
> > > >>>>      This is the Windows version. I will add the Linux version soon.<br>
> > > >>>><br>
> > > >>>>      ** WARNING **This operation modifies(rewrites) all the commits<br>
> > > >>>><br>
> > > >>>>      in the local copy of the repo.Do not perform<br>
> > > >>>><br>
> > > >>>>      these steps on a local repo you are using for<br>
> > > >>>><br>
> > > >>>>      active development.<br>
> > > >>>><br>
> > > >>>>      1) Clone edk2 into a new directory (see **WARNING**)<br>
> > > >>>><br>
> > > >>>>      git clonehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2.git&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Cnn64ezsb77fHWu%2FRR4sPbuNDb4WkPbv75vXJFOf4bc%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2.git&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Cnn64ezsb77fHWu%2FRR4sPbuNDb4WkPbv75vXJFOf4bc%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2.git&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Cnn64ezsb77fHWu%2FRR4sPbuNDb4WkPbv75vXJFOf4bc%3D&amp;reserved=0</a>> 
 edk2-uncrustified<br>
> > > >>>><br>
> > > >>>>      cd edk2-uncrustified<br>
> > > >>>><br>
> > > >>>>      2) Setup python virtual env, install pytools, and run stuart commands<br>
> > > >>>><br>
> > > >>>>      to setup build environment which includes installing uncrustify tools.<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Ftree%2Fmaster%2F.pytool%23running-ci-locally&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=RaZxkrLB%2FFH6leSzUDxJWwSIF6phK8fbPyM1%2FyjLT1g%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      3) Make a backup copy of plugin UncrustifyCheck outside WORKSPACE.<br>
> > > >>>><br>
> > > >>>>      (e.g. C:\Temp\UncrustifyCheck) so the uncrustify tool executable and<br>
> > > >>>><br>
> > > >>>>      EDK II specific uncrustify configuration file available when working<br>
> > > >>>><br>
> > > >>>>      with a branch that does not have those tools in its scope.<br>
> > > >>>><br>
> > > >>>>      xcopy .pytool\Plugin\UncrustifyCheck C:\Temp\UncrustifyCheck<br>
> > > >>>><br>
> > > >>>>      4) Use lint-history.py from git-filter-repo examples<br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0</a> 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yu4XP75X6Xb84xIAIbxCR%2B4x5r0vdaCO1CKCNSg8ShU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      <a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0">
https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0</a><br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnewren%2Fgit-filter-repo%2Fblob%2Fmain%2Fcontrib%2Ffilter-repo-demos%2Flint-history&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=5Tlum9FHkxfL83%2F6TY8NGkqpYx7Hg6YE96TdIYBGy0U%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      Line #127 - Add try except around subprocess.check_call() with except<br>
> > > >>>><br>
> > > >>>>      being pass.This is required because there are a few commits of C<br>
> > > >>>><br>
> > > >>>>      files in the edk2 repo that have incorrect C syntax and do not<br>
> > > >>>><br>
> > > >>>>      build with a C compiler and break the uncrustify parser.Skip reformat<br>
> > > >>>><br>
> > > >>>>      of C files that can not be parsed by uncrustify.These rare instances<br>
> > > >>>><br>
> > > >>>>      are addressed in the commit that fixes the C syntax error.<br>
> > > >>>><br>
> > > >>>>      Run this slightly modified version of lint-history.Include only<br>
> > > >>>><br>
> > > >>>>      C/H files and exclude directories that start with 'Tools' or 'BaseTools'.<br>
> > > >>>><br>
> > > >>>>      This step took about 2.2 hours on a laptop.<br>
> > > >>>><br>
> > > >>>>      lint-history.py<br>
> > > >>>><br>
> > > >>>>      --relevant "return (not filename.startswith(b'Tools') and not filename.startswith(b'BaseTools') and<br>
> > > >>> (filename.endswith(b'.c') or filename.endswith(b'.h')))"<br>
> > > >>>><br>
> > > >>>>      c:\\work\\GitHub\\tianocore\\foo\\UncrustifyCheck\\mu-uncrustify-release_extdep\\Windows-x86\\uncrustify.exe<br>
> -<br>
> > c<br>
> > > >>> c:\\work\\GitHub\\tianocore\\foo\\UncrustifyCheck\\uncrustify.cfg --replace --no-backup --if-changed<br>
> > > >>>><br>
> > > >>>>      Order of PRs to apply during extended hard freeze<br>
> > > >>>><br>
> > > >>>>      ==================================================<br>
> > > >>>><br>
> > > >>>>      1) Update EmulatorPkg Win Host [BuildOptions] MSFT CC_FLAGS to not force debug information<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3747&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=X1qJcou7a0aUfw%2FKblXQTw%2FSgSD7sRuUlyuSPUHwRaM%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3747&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=X1qJcou7a0aUfw%2FKblXQTw%2FSgSD7sRuUlyuSPUHwRaM%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3747&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=X1qJcou7a0aUfw%2FKblXQTw%2FSgSD7sRuUlyuSPUHwRaM%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3747_EmulatorPkg_WinHost_ReproducibleBuild&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Bl%2BnAhb%2BnT870EY1lNWkXO4HvQlLV2XglB70bEpeaLo%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3747_EmulatorPkg_WinHost_ReproducibleBuild&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Bl%2BnAhb%2BnT870EY1lNWkXO4HvQlLV2XglB70bEpeaLo%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3747_EmulatorPkg_WinHost_ReproducibleBuild&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Bl%2BnAhb%2BnT870EY1lNWkXO4HvQlLV2XglB70bEpeaLo%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2215&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Vf5DwaLDALYwWg2GOMjYQB0ButPMDkjH%2FkT8f2Ly7Uc%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2215&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Vf5DwaLDALYwWg2GOMjYQB0ButPMDkjH%2FkT8f2Ly7Uc%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2215&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Vf5DwaLDALYwWg2GOMjYQB0ButPMDkjH%2FkT8f2Ly7Uc%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required for EmulatorPkg to pass CompareBuild for VS2019 IA32/X64 builds.<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete.PR pushed.<br>
> > > >>>><br>
> > > >>>>      2) EccCheck should not revert staged and local changes<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2986&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=zmosiV3fCJnTPSbPNgoZrSUq7k56CDgALpInKU%2FwhHU%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2986&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=zmosiV3fCJnTPSbPNgoZrSUq7k56CDgALpInKU%2FwhHU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D2986&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=zmosiV3fCJnTPSbPNgoZrSUq7k56CDgALpInKU%2FwhHU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_2986_EccCheckRemoveGitRevert_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=az3bUmXNkoMeDx%2FSmBRR2nStYGkt9Tpz9IaXih98WQU%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_2986_EccCheckRemoveGitRevert_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=az3bUmXNkoMeDx%2FSmBRR2nStYGkt9Tpz9IaXih98WQU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_2986_EccCheckRemoveGitRevert_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=az3bUmXNkoMeDx%2FSmBRR2nStYGkt9Tpz9IaXih98WQU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2216&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yjDqVLhGUO87muogbV%2F0yCsVJYk9WWtbyhhkHhjRZk8%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2216&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yjDqVLhGUO87muogbV%2F0yCsVJYk9WWtbyhhkHhjRZk8%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2216&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=yjDqVLhGUO87muogbV%2F0yCsVJYk9WWtbyhhkHhjRZk8%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required for EDK II CI to complete in a reasonable period of time when<br>
> > > >>>><br>
> > > >>>>      processing the 4000+ source file style changes made by uncrustify.<br>
> > > >>>><br>
> > > >>>>      * Also fixes critical bugs that can potentially corrupt git state when<br>
> > > >>>><br>
> > > >>>>      EccCheck is run locally.<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete.PR pushed.<br>
> > > >>>><br>
> > > >>>>      3) Update pytool LicenseCheck plugin to use temp directory for diff output file<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3746&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YVC65q61WSdDl5LTMz%2F%2FdjYSEU0AdLXTj0EIaQ6GlCg%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3746&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YVC65q61WSdDl5LTMz%2F%2FdjYSEU0AdLXTj0EIaQ6GlCg%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3746&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=YVC65q61WSdDl5LTMz%2F%2FdjYSEU0AdLXTj0EIaQ6GlCg%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3746_LicenseCheckUseDiffOutputFile_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ezbmHR%2F2TrU%2FkK4rZPKCw6Q4g5WI62U2NXqjlzvZ58s%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3746_LicenseCheckUseDiffOutputFile_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ezbmHR%2F2TrU%2FkK4rZPKCw6Q4g5WI62U2NXqjlzvZ58s%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3746_LicenseCheckUseDiffOutputFile_V2&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846900446%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ezbmHR%2F2TrU%2FkK4rZPKCw6Q4g5WI62U2NXqjlzvZ58s%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2217&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=nyfn6S0DcLvCzCTS2pM5inenIdwr9WjZ9LjFoM87yRQ%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2217&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=nyfn6S0DcLvCzCTS2pM5inenIdwr9WjZ9LjFoM87yRQ%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2217&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=nyfn6S0DcLvCzCTS2pM5inenIdwr9WjZ9LjFoM87yRQ%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required to reduce EDK II CI build times.<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete.PR pushed.<br>
> > > >>>><br>
> > > >>>>      4) Update max job time from 60 min to 120 minutes in .azurepipelines/templates<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3750&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=iiRirOEeR2cFaMo9PXtR7P5e2SDyXScNPM%2F4m%2Fe5hSc%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3750&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=iiRirOEeR2cFaMo9PXtR7P5e2SDyXScNPM%2F4m%2Fe5hSc%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3750&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=iiRirOEeR2cFaMo9PXtR7P5e2SDyXScNPM%2F4m%2Fe5hSc%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3750_IncreaseAzurePipelinesTimeout&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZZtHjt%2BAqmtCpjCcWqE1hgpBlB5V9LWNWMMCwunjMME%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3750_IncreaseAzurePipelinesTimeout&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZZtHjt%2BAqmtCpjCcWqE1hgpBlB5V9LWNWMMCwunjMME%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3750_IncreaseAzurePipelinesTimeout&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZZtHjt%2BAqmtCpjCcWqE1hgpBlB5V9LWNWMMCwunjMME%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2219&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=qFBdTXm0Ra2KErfExHy%2F7HOMKQHWA5uXPaZVg7mo69w%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2219&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=qFBdTXm0Ra2KErfExHy%2F7HOMKQHWA5uXPaZVg7mo69w%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2219&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=qFBdTXm0Ra2KErfExHy%2F7HOMKQHWA5uXPaZVg7mo69w%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required to allow EccCheck of uncrustify changes to complete on Azure<br>
> > > >>>><br>
> > > >>>>      Pipelines CI agents without timing out.<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete.PR pushed.<br>
> > > >>>><br>
> > > >>>>      5) Update Package YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3749&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ArcC69Yf2ui%2B44INRbhPCtawEWZByAeLMR0mq8J7Zgo%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3749&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ArcC69Yf2ui%2B44INRbhPCtawEWZByAeLMR0mq8J7Zgo%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3749&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ArcC69Yf2ui%2B44INRbhPCtawEWZByAeLMR0mq8J7Zgo%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3749_EccCheckIgnoreFilesErrors&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=kzclVkC9M6%2BmLCFpR8j%2FXxiC%2BeCJnz0lppLr4KS10PI%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3749_EccCheckIgnoreFilesErrors&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=kzclVkC9M6%2BmLCFpR8j%2FXxiC%2BeCJnz0lppLr4KS10PI%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3749_EccCheckIgnoreFilesErrors&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=kzclVkC9M6%2BmLCFpR8j%2FXxiC%2BeCJnz0lppLr4KS10PI%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2218&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jipiCJ%2FY8vOoS3ZKis23tW666wHbc7btiIxWajn5e88%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2218&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jipiCJ%2FY8vOoS3ZKis23tW666wHbc7btiIxWajn5e88%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2218&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=jipiCJ%2FY8vOoS3ZKis23tW666wHbc7btiIxWajn5e88%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required to pass EccCheck<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete. PR pushed<br>
> > > >>>><br>
> > > >>>>      6) Uncrustify Source Changes<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3737&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=fVmyMK86f6P33MJI8zT1BHjAGL%2FMz57DIn7MibuEuPQ%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3737&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=fVmyMK86f6P33MJI8zT1BHjAGL%2FMz57DIn7MibuEuPQ%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3737&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=fVmyMK86f6P33MJI8zT1BHjAGL%2FMz57DIn7MibuEuPQ%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3739&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Iuw6pRgAnzSDxdc7TcRXDHCSALDtsff8fB%2BbU7tRMC4%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3739&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Iuw6pRgAnzSDxdc7TcRXDHCSALDtsff8fB%2BbU7tRMC4%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3739&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=Iuw6pRgAnzSDxdc7TcRXDHCSALDtsff8fB%2BbU7tRMC4%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Build comparison result PASS:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * EFI_D_ -> DEBUG changes required to pass PatchCheck<br>
> > > >>>><br>
> > > >>>>      * Uncrustify format changes required to pass UncrustifyCheck<br>
> > > >>>><br>
> > > >>>>      * Status:<br>
> > > >>>><br>
> > > >>>>      Waiting for review<br>
> > > >>>><br>
> > > >>>>      7) UncrustifyCheck EDK II CI Plugin<br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3748&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=OdqUuXlQdkqSargQzagNzCpMbzJjUDOi7AAy6gn8rE4%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3748&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=OdqUuXlQdkqSargQzagNzCpMbzJjUDOi7AAy6gn8rE4%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3748&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=OdqUuXlQdkqSargQzagNzCpMbzJjUDOi7AAy6gn8rE4%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      *https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=9qajrPed4l4R7MhfKg1EKGF0KzulLsoRIfBQYAvwJQU%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=9qajrPed4l4R7MhfKg1EKGF0KzulLsoRIfBQYAvwJQU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3748_add_uncrustify_ci_plugin_v6&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=9qajrPed4l4R7MhfKg1EKGF0KzulLsoRIfBQYAvwJQU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * Required to enforce all PRs submitted to EDK II CI match uncrustify format.<br>
> > > >>>><br>
> > > >>>>      * Unconditionally checks all packages.Can not be committed until all C/H<br>
> > > >>>><br>
> > > >>>>      source files have been updated.<br>
> > > >>>><br>
> > > >>>>      * Status: Review complete<br>
> > > >>>><br>
> > > >>>>      Combined Branch/PR for Review/Test<br>
> > > >>>><br>
> > > >>>>      ==================================<br>
> > > >>>><br>
> > > >>>>      * Build Comparison results must pass 100% across the full set of PRs before<br>
> > > >>>><br>
> > > >>>>      the individual PRs can be pushed in the order listed above.<br>
> > > >>>><br>
> > > >>>>      * Branch:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Uncrustify_PR_Series&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wVD2UbHrSEYsB%2FufOR3255oj%2BcfztzynQSkpGNw0N7o%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Uncrustify_PR_Series&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wVD2UbHrSEYsB%2FufOR3255oj%2BcfztzynQSkpGNw0N7o%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FTestOnly_Uncrustify_PR_Series&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wVD2UbHrSEYsB%2FufOR3255oj%2BcfztzynQSkpGNw0N7o%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      * PR:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0 
 <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftianocore%2Fedk2%2Fpull%2F2229&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=6MxSHE5gDG821vOioUqEcOMTsZKgf8ZD9k9xvliLNYQ%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      Status = PASS<br>
> > > >>>><br>
> > > >>>>      * CompareBuild:<br>
> > > >>>><br>
> > > >>>>      Branch:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Ftree%2FBug_3737_3739_ApplyUncrustifyChanges_V5&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=wo0bG8v8FzilmFMRT6VIbhPfzaqMYBWymqW0UFIxVnU%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      --ref1:ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf<br>
> > > >>>><br>
> > > >>>>      --ref2:Bug_3737_3739_ApplyUncrustifyChanges_V5<br>
> > > >>>><br>
> > > >>>>      Extra Options: -n 4 --quiet<br>
> > > >>>><br>
> > > >>>>      Results:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0<br>
> > > >>> <<a href="https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0">https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmdkinney%2Fedk2%2Factions%2Fruns%2F1521618836&amp;data=04%7C01%7CBret.Barkelew%40microsoft.com%7C3b84c1ee3b344b6668d508d9b8563e4a%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637743502846950023%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sdata=ZBXI03u6MigKHPiUu9u30LnH3DrU6%2B0uYySdpNZAi8A%3D&amp;reserved=0</a>><br>
> > > >>>><br>
> > > >>>>      30 VS2019 build comparisons PASS<br>
> > > >>>><br>
> > > >>>>      40 GCC5 build comparisons PASS<br>
> > > >>>><br>
> > > >>>>      100% PASS<br>
> > > >>>><br>
> > > >>>>      The following git log shows the set of patches from --ref1 to --ref 2across<br>
> > > >>>><br>
> > > >>>>      which there are no differences in any of the OBJ/LIB/DLL/EFI/FFS/FV/FD files.<br>
> > > >>>><br>
> > > >>>>      --ref2<br>
> > > >>>><br>
> > > >>>>      b7d4bf0675b7 (HEAD -> Bug_3737_3739_ApplyUncrustifyChanges_V5) UnitTestFrameworkPkg: Apply uncrusitify<br>
> changes<br>
> > > >>>><br>
> > > >>>>      7f03d25f60e7 UefiPayloadPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      0bfd8d9b5ac9 UefiCpuPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      e1cd9bfb9dea StandaloneMmPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      5da2f65be378 SourceLevelDebugPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      95b86de07e5d SignedCapsulePkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      fe71d97246c4 ShellPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      54c21c952992 SecurityPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      187a3785f12b RedfishPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      810100002a46 PcAtChipsetPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      276a695c0cf2 OvmfPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      303c0a91ab07 NetworkPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      bc80792cd1b1 MdePkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      3ea86be17a2a MdeModulePkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      c70ef11ed0cd IntelFsp2WrapperPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      c0291221f252 IntelFsp2Pkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      6a479952a690 FmpDevicePkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      3a7c05b7070d FatPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      b789f98c8959 EmulatorPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      952d7a1c9220 EmbeddedPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      a1cc9881bab6 DynamicTablesPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      50654dfe5785 CryptoPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      ed965a02dfa1 ArmVirtPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      9744023fbc46 ArmPlatformPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      7a1cde5f5bba ArmPkg: Apply uncrusitify changes<br>
> > > >>>><br>
> > > >>>>      19d17e0913e8 UefiCpuPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      ffa718b4f994 SourceLevelDebugPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      b86cb3c5e5b4 ShellPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      c7c42204dc07 SecurityPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      16b8e6f958e4 PcAtChipsetPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      0ac3f8b2dac5 OvmfPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      bc5004b8d294 NetworkPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      6f671a8e2377 MdePkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      a10c610ff9a3 MdeModulePkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      09a3bddba390 FatPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      59c61318246a EmulatorPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      3a80367dda3b EmbeddedPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      23eb1aaf80ca ArmVirtPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      875914b45c54 ArmPlatformPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      eb2eca82b451 ArmPkg: Change use of EFI_D_* to DEBUG_*<br>
> > > >>>><br>
> > > >>>>      f0f3f5aae7c4 (origin/master, origin/HEAD, master) UnitTestFrameworkPkg: Update YAML to ignore specific ECC<br>
> > > >>> files/errors<br>
> > > >>>><br>
> > > >>>>      c05734797790 UefiPayloadPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      c30c40d6c63d StandaloneMmPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      9944508e85f1 ShellPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      60fa40be458d SecurityPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      df790cd6b37e MdePkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      9deb9370766e MdeModulePkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      d7d30e8f219f EmulatorPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      d5744ecba813 CryptoPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      c97fee87f0f9 ArmVirtPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      1939fc9569f2 ArmPlatformPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      365dced2c37a ArmPkg: Update YAML to ignore specific ECC files/errors<br>
> > > >>>><br>
> > > >>>>      76a1ce4d5fec .azurepipelines/templates: Update max pipeline job time to 2 hours<br>
> > > >>>><br>
> > > >>>>      99f84ff47390 .pytools/Plugin/LicenseCheck: Use temp directory for git diff output<br>
> > > >>>><br>
> > > >>>>      3019f1bbabf1 .pytool/Plugin/EccCheck: Add performance optimizations<br>
> > > >>>><br>
> > > >>>>      854462bd3479 .pytool/Plugin/EccCheck: Remove temp directory on exception<br>
> > > >>>><br>
> > > >>>>      69877614fdee .pytool/Plugin/EccCheck: Remove RevertCode()<br>
> > > >>>><br>
> > > >>>>      --ref1<br>
> > > >>>><br>
> > > >>>>      ef9a059cdb15 EmulatorPkg/Win/Host: Update CC_FLAGS<br>
> > > >>>><br>
> > > >>>>      bb1bba3d7767 (tag: edk2-stable202111) NetworkPkg: Fix invalid pointer for DNS response token on error<br>
> > > >>>><br>
> > > >>>>      Best regards,<br>
> > > >>>><br>
> > > >>>>      Mike<br>
> > > >>>><br>
> > > >>>> <br>
<br>
<br>
<br>
<br>
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>


 <div width="1" style="color:white;clear:both">_._,_._,_</div> <hr>   Groups.io Links:<p>   You receive all messages sent to this group.    <p> <a target="_blank" href="https://edk2.groups.io/g/devel/message/84422">View/Reply Online (#84422)</a> |    |  <a target="_blank" href="https://groups.io/mt/87414953/1813853">Mute This Topic</a>  | <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>    <a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> | <a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |  <a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>  [edk2-devel-archive@redhat.com]<br> <div width="1" style="color:white;clear:both">_._,_._,_</div>