From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ma1-aaemail-dr-lapp03.apple.com (ma1-aaemail-dr-lapp03.apple.com [17.171.2.72]) by mx.groups.io with SMTP id smtpd.web08.1386.1639099898623896817 for ; Thu, 09 Dec 2021 17:31:38 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=vCqSiNNP; spf=pass (domain: apple.com, ip: 17.171.2.72, mailfrom: afish@apple.com) Received: from pps.filterd (ma1-aaemail-dr-lapp03.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp03.apple.com (8.16.0.42/8.16.0.42) with SMTP id 1BA1EUje023223; Thu, 9 Dec 2021 17:31:37 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=20180706; bh=FJ+1NqVUpERCYtrrCSYo/+ppzk4WVzswGMq1ULfSXv4=; b=vCqSiNNPyRwozQXnuZ4K3cmHi4IVtBfWUGMWM23w8ItrDnNevU5PAp2r1JgGealwilkp 5CDQF1M3J2xFW+7bpW7dLc2b8SEqo+IgypKYZ0SLw+3PMHo/ROGJkri01iPqyWhoX2Z8 n5i2WSJDUc3UF8aYIYy5W+SOol5KckyKbncomMVWNkuOhAli9aDqWH93vZyDYOX1nsX1 JcnYd0nrmKKQDIZwTYlrilaa1ZJNlONTvR1iyabesktc+TsqlocvbN6WH/3b+L2hePBS egdkE0PUHpAc/36op5kBSrxR7/jE2ngflt9uZNLaeCe9FaLgvXJObBaJ5x+3wBuxyZhs Fg== Received: from rn-mailsvcp-mta-lapp01.rno.apple.com (rn-mailsvcp-mta-lapp01.rno.apple.com [10.225.203.149]) by ma1-aaemail-dr-lapp03.apple.com with ESMTP id 3cr872n7gf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 09 Dec 2021 17:31:37 -0800 Received: from rn-mailsvcp-mmp-lapp02.rno.apple.com (rn-mailsvcp-mmp-lapp02.rno.apple.com [17.179.253.15]) by rn-mailsvcp-mta-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPS id <0R3V00BW1LKJ6M10@rn-mailsvcp-mta-lapp01.rno.apple.com>; Thu, 09 Dec 2021 17:31:33 -0800 (PST) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp02.rno.apple.com by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) id <0R3V00700LIFL300@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Thu, 09 Dec 2021 17:31:31 -0800 (PST) X-Va-A: X-Va-T-CD: 18b2a0a1ab37692d2bb9cceb6e803ad4 X-Va-E-CD: 45151d1754065b814e40681044744b42 X-Va-R-CD: 2207b74ae8c86198cc80220b2c489470 X-Va-CD: 0 X-Va-ID: 717b12f4-6b40-4c14-bb6d-00ecc7a0dfc4 X-V-A: X-V-T-CD: 18b2a0a1ab37692d2bb9cceb6e803ad4 X-V-E-CD: 45151d1754065b814e40681044744b42 X-V-R-CD: 2207b74ae8c86198cc80220b2c489470 X-V-CD: 0 X-V-ID: 9893bfa9-ce52-4eac-abff-65a12d6fb607 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425,18.0.790 definitions=2021-12-08_08:2021-12-08,2021-12-08 signatures=0 Received: from smtpclient.apple (unknown [17.235.11.129]) by rn-mailsvcp-mmp-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.12.20210903 64bit (built Sep 3 2021)) with ESMTPSA id <0R3V0106TLKI6Y00@rn-mailsvcp-mmp-lapp02.rno.apple.com>; Thu, 09 Dec 2021 17:31:31 -0800 (PST) MIME-version: 1.0 (Mac OS X Mail 15.0 \(3693.20.0.1.32\)) Subject: Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #5 - Completed - Hard Freeze Lifted From: "Andrew Fish" In-reply-to: Date: Thu, 09 Dec 2021 17:31:30 -0800 Cc: Mike Kinney , Michael Kubacki , Leif Lindholm Message-id: <18CB63FB-8374-4EFA-86DF-8906845866FA@apple.com> References: <8733194F-9EB8-490B-82A1-87ABABDDE03F@apple.com> To: edk2-devel-groups-io , mikuback@linux.microsoft.com X-Mailer: Apple Mail (2.3693.20.0.1.32) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.425,18.0.790 definitions=2021-12-08_08:2021-12-08,2021-12-08 signatures=0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: quoted-printable Michael, I=E2=80=99m still researching how to install the dependent tools so I can f= ollow the instructions. Do the stuart_* commands come from the EDKII Tools= PIP? I think I can get NuGet from brew, but the 1st Google hits suggested = installing Visual Studio for Mac.=20 If I pip the EDKII tools and install NuGet should that be all that is requi= red? We should probably document that. Not sure what the recommended flow i= s on Linux? Thanks, Andrew Fish > On Dec 7, 2021, at 4:48 PM, Michael Kubacki wrote: >=20 > Hi Andrew, >=20 > I just sent the patch: https://edk2.groups.io/g/devel/message/84476 >=20 > There's a rendered version of the file on my wiki fork: >=20 > https://github.com/makubacki/tianocore.github.io/blob/add_uncrustify_inst= ructions/EDK-II-Code-Formatting.md >=20 > Thanks, > Michael >=20 > On 12/7/2021 4:04 PM, Andrew Fish wrote: >>> On Dec 7, 2021, at 12:35 PM, Michael Kubacki > wrote: >>>=20 >>> I will send a patch for the Tianocore Wiki shortly. >>>=20 >> OK thanks. I can test on Linux and macOS. >> Maybe I=E2=80=99ll try using VS Code as my editor now=E2=80=A6. >> Thanks, >> Andrew Fish >>> Thanks, >>> Michael >>>=20 >>> On 12/7/2021 2:27 PM, Andrew Fish viagroups.io wrote= : >>>>> On Dec 7, 2021, at 11:22 AM, Michael D Kinney > wrote: >>>>>=20 >>>>> Hello, >>>>>=20 >>>>> Thank you to everyone for their patience and for everyone who helped = with the development >>>>> and review of this important update to the edk2 repository. >>>>>=20 >>>>> The last 2 PR series have completed review, passed EDK II CI checks, = passed CompareBuild >>>>> verifications, and been pushed. >>>>>=20 >>>>> https://github.com/tianocore/edk2/pull/2242 >>>>> https://github.com/tianocore/edk2/pull/2244 >>>>>=20 >>>>> The hard freeze has ended and normal development activities can conti= nue. >>>>>=20 >>>>> 1) If you have code reviews that started before the uncrustify change= s, please >>>>> update them. The recipes are included below and will be added to t= he Wiki. >>>>>=20 >>>>> 2) For all new patch review, please make sure you run the uncrustify = tool or >>>>> use it as a plugin with your editor. If PRs submitted to EDK II CI= do not >>>>> match the uncrustified version, they will not pass CI. >>>>>=20 >>>> Mike, >>>> How is this documented outside of this patch set? Is there a Tianocore= Wiki page on configuring uncrustify? Does that Readme.rst link to that? >>>> Thanks, >>>> Andrew Fish >>>>> Changes from Update #4 >>>>> ---------------------------------------------------------------------= ------- >>>>> * Pushed PR (6) >>>>> * Pushed PR (7) >>>>> * Change uncrustify configuration align_assign_thresh from 4 to 0 (no= limit). >>>>> * Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. >>>>> * Change complex DEBUG_CODE() to DEBUG_CODE_BEGIN/END() >>>>>=20 >>>>> Changes from Update #3 >>>>> ---------------------------------------------------------------------= ------- >>>>> * Pushed PR (5) >>>>> * Added link to PR(6). EDK II CI Status is PASS. Build Compare PASS. >>>>> * Waiting for review of PR (6) >>>>> * Review of PR (7) completed and waiting for review of PR (6) >>>>> ---------------------------------------------------------------------= ------- >>>>>=20 >>>>> Changes from Update #2 >>>>> ---------------------------------------------------------------------= ------- >>>>> * Changed order of PRs swapping (4) and (5). The PR that activates >>>>> increases the max CI agent job time is independent of all the other >>>>> PRs and its review is complete, so it can be committed now. >>>>> * Pushed PRs (1), (2), (3), (4). >>>>> * Waiting for review to complete for PRs (5) and (6) >>>>> * Reviews complete for PR (7) >>>>> * Identifies steps using git filter-branch to apply uncrustify change= s to a >>>>> code review patch series that was generated before the uncrustify ch= anges >>>>> avoiding manual merge. >>>>> * Identified steps using git filter-repo to generate an alternate his= tory of >>>>> the edk2 repo with uncrustify changes applied on every commit. This= may >>>>> be useful when evaluating changes to files using tools like git blam= e >>>>> without the large uncrustify patch series. >>>>> ---------------------------------------------------------------------= ------ >>>>>=20 >>>>> Changes from Update #1 >>>>> ---------------------------------------------------------------------= ------- >>>>> * Changed order of PRs swapping (6) and (7). The PR that activates >>>>> EDK II CI check UncrustifyCheck has to be last because it unconditio= nally >>>>> checks all C/H files in all packages. Not just files that have been >>>>> modified like some of the other checkers. >>>>> * Updated link to the branch with the UncrustifyCheck plugin that has= been >>>>> updated with a one line change and Reviewed-by and Tested-by tags. >>>>> https://github.com/mdkinney/edk2/tree/Bug_3748_add_uncrustify_ci_plug= in_v6 >>>>> * Reviews complete for (1), (2), (3), (5), and (7) >>>>> ---------------------------------------------------------------------= ------ >>>>>=20 >>>>> Michael Kubacki and I have prepared the patches required to apply the >>>>> uncrustify changes and enable EDK II CI to check all submitted >>>>> patches have been run through uncrustify. >>>>>=20 >>>>> We have verified through the CompareBuild GitHub Action that the >>>>> format changes performed by uncrustify have no functional changes. >>>>> All of the OBJ, LIB, DLL, EFI, FFS, FV, and FD files match 100% >>>>> across 70 VS2019/GCC5 builds of all package/platform DSC files in >>>>> the edk2 repo. >>>>>=20 >>>>> The hard freeze will be extended after the edk2-stable202111 tag unti= l >>>>> all uncrustify related changes are committed. We do not expect this >>>>> to take more than a few days. Do not push any PRs until the hard >>>>> freeze is lifted. >>>>>=20 >>>>> The changes are broken up into 7 patch series/PRs. The PRs are order= ed >>>>> so they can be submitted using the normal submission process and EDK = II >>>>> CI will pass for each one. Details are listed below. >>>>>=20 >>>>> Uncrustify 73.0.3 for EDK II >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D >>>>> * Sources: https://dev.azure.com/projectmu/_git/Uncrustify >>>>> * Documentation: https://dev.azure.com/projectmu/Uncrustify/_wiki/wik= is/Uncrustify.wiki/1/Project-Mu-(EDK-II)-Fork-Readme >>>>> * Download: https://dev.azure.com/projectmu/Uncrustify/_packaging?_a= =3Dpackage&feed=3Dmu_uncrustify&package=3Dmu-uncrustify-release&protocolTyp= e=3DNuGet&version=3D73.0.3 >>>>>=20 >>>>> Installing Uncrustify >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>>> The Uncrustify tool is installed automatically when the Pytools >>>>> environment is used and the stuart* commands are run to complete the >>>>> environment setup. Please see: >>>>>=20 >>>>> https://github.com/tianocore/edk2/tree/master/.pytool#running-ci-loca= lly >>>>>=20 >>>>> Uncrustify can also be installed from the download page listed above >>>>> or built from sources from the source link above. >>>>>=20 >>>>> The Documentation link provides instruction on how to run uncrustify = from >>>>> the command line or install as a Visual Studio Code plugin. The main >>>>> uncrustify documentation also describes how to integrate with a few o= ther >>>>> editors. >>>>>=20 >>>>> We have also discussed a client side githook. That effort has not st= arted. >>>>> Let us know if that is a feature you would find useful. >>>>>=20 >>>>> Developer impact for new code reviews >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>>> Once the uncrustify checker is active in EDK II CI, developers must >>>>> make sure their patches are run through the uncrustify tool before >>>>> sending the patches for review. >>>>>=20 >>>>> Developers must install and run uncrustify against changes files befo= re >>>>> sending patch review emails or submitting PR for EDK II CI. If EDK I= I CI >>>>> detects and differences in source formatting, then EDK II CI will fai= l >>>>> and the developer must run uncrustify and resubmit the patches. >>>>>=20 >>>>> Developer impact to patch series/PRs reviewed during edk2-stable20112= 1 soft/hard freeze >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>>> Developers must rebase their changes after the uncrustify source chan= ges are >>>>> committed(latest edk2/master) >>>>>=20 >>>>> The following steps can be used to update an existing branch with the >>>>> required uncrustify format. This is the Windows version. I will add >>>>> the Linux version soon. >>>>>=20 >>>>> 1) Fetch and checkout and rebase to latest edk2/master >>>>>=20 >>>>> git fetch origin >>>>> git checkout master >>>>> git rebase origin/master >>>>>=20 >>>>> 2) Make a backup copy of plugin UncrustifyCheck outside WORKSPACE. >>>>> (e.g. C:\Temp\UncrustifyCheck) so the uncrustify tool executabl= e and >>>>> EDK II specific uncrustify configuration file available when wo= rking >>>>> with a branch that does not have those tools in its scope. >>>>>=20 >>>>> xcopy .pytool\Plugin\UncrustifyCheck C:\Temp\UncrustifyChec= k >>>>>=20 >>>>> 3) Check out the patch series branch (e.g. MyBranch) >>>>>=20 >>>>> git checkout MyBranch >>>>>=20 >>>>> 4) Rebase patch series against edk2-stable202111 >>>>>=20 >>>>> git rebase edk2-stable202111 >>>>>=20 >>>>> 5) Create new branch for the uncrustifed version (e.g. MyBranch_Un= crustified) >>>>>=20 >>>>> git checkout -b MyBranch_Uncrustified >>>>>=20 >>>>> 6) Use git filter-branch to uncrustify all the commits in the seri= es >>>>> between the rebase target from (2) and HEAD of the branch. A f= ilter >>>>> can be used to scope the uncrustify operations to only the C/H = files >>>>> in the specific package the patch series is against. (e.g. Dyna= micTablesPkg). >>>>> BaseTools should always be excluded. If the package scoped fil= ter is >>>>> not used, it will still work, but will take longer to run becau= se >>>>> uncrustify will rescan every C/H files in the whole repo. >>>>>=20 >>>>> git filter-branch --tree-filter "git ls-files DynamicTables= Pkg*.c DynamicTablesPkg*.h :!BaseTools/* | c:\\Temp\\UncrustifyCheck\\mu-un= crustify-release_extdep\\Windows-x86\\uncrustify.exe -c c:\\Temp\\Uncrustif= yCheck\\uncrustify.cfg -F - --replace --no-backup --if-changed" edk2-stable= 202111..HEAD >>>>>=20 >>>>> 7) Now that all the individual patches in the branch are uncrustif= ied, >>>>> rebase against latest edk2/master that is already uncrustified. >>>>>=20 >>>>> git rebase master >>>>>=20 >>>>> 8) Verify the patches in this new branch. >>>>>=20 >>>>> Impacts to tracing history across the uncrusity changes >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D >>>>> Tools the view file and line history do work with the large uncrustif= y >>>>> patch series. One impact is that the operations can be very slow due >>>>> to the large uncrustify patches. >>>>>=20 >>>>> One option to provide a faster experience is to provide an alternate >>>>> version of the edk2 repository as "documentation" that has the >>>>> entire history re-written with uncrustify run on every commit. >>>>> The tool called git-filter-repo can be used to perform this >>>>> transformation and runs in a reasonable period of time (a few hours) >>>>>=20 >>>>> https://github.com/newren/git-filter-repo >>>>> https://github.com/newren/git-filter-repo/blob/main/contrib/filter-re= po-demos/lint-history >>>>>=20 >>>>> The following steps can be used to perform this transformation. >>>>> This is the Windows version. I will add the Linux version soon. >>>>>=20 >>>>> ** WARNING ** This operation modifies(rewrites) all the commits >>>>> in the local copy of the repo. Do not perform >>>>> these steps on a local repo you are using for >>>>> active development. >>>>>=20 >>>>> 1) Clone edk2 into a new directory (see **WARNING**) >>>>>=20 >>>>> git clone https://github.com/tianocore/edk2.git edk2-uncrustified >>>>> cd edk2-uncrustified >>>>>=20 >>>>> 2) Setup python virtual env, install pytools, and run stuart comma= nds >>>>> to setup build environment which includes installing uncrustify= tools. >>>>>=20 >>>>> https://github.com/tianocore/edk2/tree/master/.pytool#running-ci-loca= lly >>>>>=20 >>>>> 3) Make a backup copy of plugin UncrustifyCheck outside WORKSPACE. >>>>> (e.g. C:\Temp\UncrustifyCheck) so the uncrustify tool executabl= e and >>>>> EDK II specific uncrustify configuration file available when wo= rking >>>>> with a branch that does not have those tools in its scope. >>>>>=20 >>>>> xcopy .pytool\Plugin\UncrustifyCheck C:\Temp\UncrustifyChec= k >>>>>=20 >>>>> 4) Use lint-history.py from git-filter-repo examples >>>>>=20 >>>>> https://github.com/newren/git-filter-repo >>>>> https://github.com/newren/git-filter-repo/blob/main/contrib/filter-re= po-demos/lint-history >>>>>=20 >>>>> Line #127 - Add try except around subprocess.check_call() with = except >>>>> being pass. This is required because there are a few commits o= f C >>>>> files in the edk2 repo that have incorrect C syntax and do not >>>>> build with a C compiler and break the uncrustify parser. Skip = reformat >>>>> of C files that can not be parsed by uncrustify. These rare in= stances >>>>> are addressed in the commit that fixes the C syntax error. >>>>>=20 >>>>> Run this slightly modified version of lint-history. Include on= ly >>>>> C/H files and exclude directories that start with 'Tools' or 'B= aseTools'. >>>>> This step took about 2.2 hours on a laptop. >>>>>=20 >>>>> lint-history.py >>>>> --relevant "return (not filename.startswith(b'Tools') a= nd not filename.startswith(b'BaseTools') and (filename.endswith(b'.c') or f= ilename.endswith(b'.h')))" >>>>> c:\\work\\GitHub\\tianocore\\foo\\UncrustifyCheck\\mu-u= ncrustify-release_extdep\\Windows-x86\\uncrustify.exe -c c:\\work\\GitHub\\= tianocore\\foo\\UncrustifyCheck\\uncrustify.cfg --replace --no-backup --if-= changed >>>>>=20 >>>>> Order of PRs to apply during extended hard freeze >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D >>>>> 1) Update EmulatorPkg Win Host [BuildOptions] MSFT CC_FLAGS to not fo= rce debug information >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3747 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3747_EmulatorPkg_WinHos= t_ReproducibleBuild >>>>> * https://github.com/tianocore/edk2/pull/2215 >>>>> * Required for EmulatorPkg to pass CompareBuild for VS2019 IA32/X64= builds. >>>>> * Status: Review complete. PR pushed. >>>>>=20 >>>>> 2) EccCheck should not revert staged and local changes >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D2986 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_2986_EccCheckRemoveGitR= evert_V2 >>>>> * https://github.com/tianocore/edk2/pull/2216 >>>>> * Required for EDK II CI to complete in a reasonable period of time= when >>>>> processing the 4000+ source file style changes made by uncrustify= . >>>>> * Also fixes critical bugs that can potentially corrupt git state w= hen >>>>> EccCheck is run locally. >>>>> * Status: Review complete. PR pushed. >>>>>=20 >>>>> 3) Update pytool LicenseCheck plugin to use temp directory for diff o= utput file >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3746 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3746_LicenseCheckUseDif= fOutputFile_V2 >>>>> * https://github.com/tianocore/edk2/pull/2217 >>>>> * Required to reduce EDK II CI build times. >>>>> * Status: Review complete. PR pushed. >>>>>=20 >>>>> 4) Update max job time from 60 min to 120 minutes in .azurepipelines/= templates >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3750 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3750_IncreaseAzurePipel= inesTimeout >>>>> * https://github.com/tianocore/edk2/pull/2219 >>>>> * Required to allow EccCheck of uncrustify changes to complete on A= zure >>>>> Pipelines CI agents without timing out. >>>>> * Status: Review complete. PR pushed. >>>>>=20 >>>>> 5) Update Package YAML to ignore specific ECC files/errors >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3749 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3749_EccCheckIgnoreFile= sErrors >>>>> * https://github.com/tianocore/edk2/pull/2218 >>>>> * Required to pass EccCheck >>>>> * Status: Review complete. PR pushed >>>>>=20 >>>>> 6) Uncrustify Source Changes >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3737 >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3767 >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3760 >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3739 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3737_3767_3760_3739_App= lyUncrustifyChanges_V7 >>>>> * https://github.com/tianocore/edk2/pull/2242 >>>>> * Build comparison result PASS: https://github.com/mdkinney/edk2/ac= tions/runs/1550132292 >>>>> * EFI_D_ -> DEBUG changes required to pass PatchCheck >>>>> * , OPTIONAL -> OPTIONAL, changes required for proper formatting >>>>> * DEBUG_CODE() -> DEBUG_CODE_BEGIN/END() required for complex code = blocks >>>>> for proper formatting. >>>>> * Uncrustify format changes required to pass UncrustifyCheck >>>>> * Status: Review complete. PR pushed >>>>>=20 >>>>> 7) UncrustifyCheck EDK II CI Plugin >>>>> * https://bugzilla.tianocore.org/show_bug.cgi?id=3D3748 >>>>> * https://github.com/mdkinney/edk2/tree/Bug_3748_add_uncrustify_ci_= plugin_v7 >>>>> * Required to enforce all PRs submitted to EDK II CI match uncrusti= fy format. >>>>> * Unconditionally checks all packages. Cannot be committed until a= ll C/H >>>>> source files have been updated. >>>>> * Status: Review complete. PR pushed. >>>>>=20 >>>>> Combined Branch/PR for Review/Test >>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>>>> * Build Comparison results must pass 100% across the full set of PRs = before >>>>> the individual PRs can be pushed in the order listed above. >>>>> * Branch: https://github.com/mdkinney/edk2/tree/TestOnly_Uncrustify_P= R_Series >>>>> * PR: https://github.com/tianocore/edk2/pull/2229 >>>>> Status =3D PASS >>>>> * CompareBuild: >>>>> Branch: https://github.com/mdkinney/edk2/tree/Bug_3737_3739_ApplyU= ncrustifyChanges_V5 >>>>> --ref1: ef9a059cdb15844fe52a49af2bf7d86b9dd3e9bf >>>>> --ref2: Bug_3737_3739_ApplyUncrustifyChanges_V5 >>>>> Extra Options: -n 4 --quiet >>>>> Results: https://github.com/mdkinney/edk2/actions/runs/1521618836 = >>>>> 30 VS2019 build comparisons PASS >>>>> 40 GCC5 build comparisons PASS >>>>> 100% PASS >>>>>=20 >>>>> The following git log shows the set of patches from --ref1 to --ref 2= across >>>>> which there are no differences in any of the OBJ/LIB/DLL/EFI/FFS/FV/F= D files. >>>>>=20 >>>>> --ref2 >>>>> b7d4bf0675b7 (HEAD -> Bug_3737_3739_ApplyUncrustifyChanges_V5) UnitTe= stFrameworkPkg: Apply uncrusitify changes >>>>> 7f03d25f60e7 UefiPayloadPkg: Apply uncrusitify changes >>>>> 0bfd8d9b5ac9 UefiCpuPkg: Apply uncrusitify changes >>>>> e1cd9bfb9dea StandaloneMmPkg: Apply uncrusitify changes >>>>> 5da2f65be378 SourceLevelDebugPkg: Apply uncrusitify changes >>>>> 95b86de07e5d SignedCapsulePkg: Apply uncrusitify changes >>>>> fe71d97246c4 ShellPkg: Apply uncrusitify changes >>>>> 54c21c952992 SecurityPkg: Apply uncrusitify changes >>>>> 187a3785f12b RedfishPkg: Apply uncrusitify changes >>>>> 810100002a46 PcAtChipsetPkg: Apply uncrusitify changes >>>>> 276a695c0cf2 OvmfPkg: Apply uncrusitify changes >>>>> 303c0a91ab07 NetworkPkg: Apply uncrusitify changes >>>>> bc80792cd1b1 MdePkg: Apply uncrusitify changes >>>>> 3ea86be17a2a MdeModulePkg: Apply uncrusitify changes >>>>> c70ef11ed0cd IntelFsp2WrapperPkg: Apply uncrusitify changes >>>>> c0291221f252 IntelFsp2Pkg: Apply uncrusitify changes >>>>> 6a479952a690 FmpDevicePkg: Apply uncrusitify changes >>>>> 3a7c05b7070d FatPkg: Apply uncrusitify changes >>>>> b789f98c8959 EmulatorPkg: Apply uncrusitify changes >>>>> 952d7a1c9220 EmbeddedPkg: Apply uncrusitify changes >>>>> a1cc9881bab6 DynamicTablesPkg: Apply uncrusitify changes >>>>> 50654dfe5785 CryptoPkg: Apply uncrusitify changes >>>>> ed965a02dfa1 ArmVirtPkg: Apply uncrusitify changes >>>>> 9744023fbc46 ArmPlatformPkg: Apply uncrusitify changes >>>>> 7a1cde5f5bba ArmPkg: Apply uncrusitify changes >>>>> 19d17e0913e8 UefiCpuPkg: Change use of EFI_D_* to DEBUG_* >>>>> ffa718b4f994 SourceLevelDebugPkg: Change use of EFI_D_* to DEBUG_* >>>>> b86cb3c5e5b4 ShellPkg: Change use of EFI_D_* to DEBUG_* >>>>> c7c42204dc07 SecurityPkg: Change use of EFI_D_* to DEBUG_* >>>>> 16b8e6f958e4 PcAtChipsetPkg: Change use of EFI_D_* to DEBUG_* >>>>> 0ac3f8b2dac5 OvmfPkg: Change use of EFI_D_* to DEBUG_* >>>>> bc5004b8d294 NetworkPkg: Change use of EFI_D_* to DEBUG_* >>>>> 6f671a8e2377 MdePkg: Change use of EFI_D_* to DEBUG_* >>>>> a10c610ff9a3 MdeModulePkg: Change use of EFI_D_* to DEBUG_* >>>>> 09a3bddba390 FatPkg: Change use of EFI_D_* to DEBUG_* >>>>> 59c61318246a EmulatorPkg: Change use of EFI_D_* to DEBUG_* >>>>> 3a80367dda3b EmbeddedPkg: Change use of EFI_D_* to DEBUG_* >>>>> 23eb1aaf80ca ArmVirtPkg: Change use of EFI_D_* to DEBUG_* >>>>> 875914b45c54 ArmPlatformPkg: Change use of EFI_D_* to DEBUG_* >>>>> eb2eca82b451 ArmPkg: Change use of EFI_D_* to DEBUG_* >>>>> f0f3f5aae7c4 (origin/master, origin/HEAD, master) UnitTestFrameworkPk= g: Update YAML to ignore specific ECC files/errors >>>>> c05734797790 UefiPayloadPkg: Update YAML to ignore specific ECC files= /errors >>>>> c30c40d6c63d StandaloneMmPkg: Update YAML to ignore specific ECC file= s/errors >>>>> 9944508e85f1 ShellPkg: Update YAML to ignore specific ECC files/error= s >>>>> 60fa40be458d SecurityPkg: Update YAML to ignore specific ECC files/er= rors >>>>> df790cd6b37e MdePkg: Update YAML to ignore specific ECC files/errors >>>>> 9deb9370766e MdeModulePkg: Update YAML to ignore specific ECC files/e= rrors >>>>> d7d30e8f219f EmulatorPkg: Update YAML to ignore specific ECC files/er= rors >>>>> d5744ecba813 CryptoPkg: Update YAML to ignore specific ECC files/erro= rs >>>>> c97fee87f0f9 ArmVirtPkg: Update YAML to ignore specific ECC files/err= ors >>>>> 1939fc9569f2 ArmPlatformPkg: Update YAML to ignore specific ECC files= /errors >>>>> 365dced2c37a ArmPkg: Update YAML to ignore specific ECC files/errors >>>>> 76a1ce4d5fec .azurepipelines/templates: Update max pipeline job time = to 2 hours >>>>> 99f84ff47390 .pytools/Plugin/LicenseCheck: Use temp directory for git= diff output >>>>> 3019f1bbabf1 .pytool/Plugin/EccCheck: Add performance optimizations >>>>> 854462bd3479 .pytool/Plugin/EccCheck: Remove temp directory on except= ion >>>>> 69877614fdee .pytool/Plugin/EccCheck: Remove RevertCode() >>>>> --ref1 >>>>> ef9a059cdb15 EmulatorPkg/Win/Host: Update CC_FLAGS >>>>> bb1bba3d7767 (tag: edk2-stable202111) NetworkPkg: Fix invalid pointer= for DNS response token on error >>>>>=20 >>>>> Best regards, >>>>>=20 >>>>> Mike >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>=20 >>>=20 >=20 >=20 >=20 >=20 >=20