From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web12.5785.1638924542411325842 for ; Tue, 07 Dec 2021 16:49:02 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="body hash did not verify" header.i=@linux.microsoft.com header.s=default header.b=rFK4/SLw; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from [10.0.0.19] (c-73-27-179-174.hsd1.fl.comcast.net [73.27.179.174]) by linux.microsoft.com (Postfix) with ESMTPSA id F101720B717A; Tue, 7 Dec 2021 16:49:00 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com F101720B717A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1638924541; bh=lgYX3QDokp9pfgffMmcZ/B99/UwA3Aq6AqmKBevQXxE=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=rFK4/SLwxsACuYSqEWwGqsvBnpWdmZh08eZ4ciGinCOJFKK3ofXcZVxHoFcEcGtuy JhhD98MQ9lnWhJP8r7iOZa+sQbPhJzY8D1lPfRr8ILrnBA8r8MFiHOBcAgCuCQ48Dm 6pwEQJqQDzbvG1KVWgjmPWa+SvbvTbi7Jucaw76M= Message-ID: Date: Tue, 7 Dec 2021 19:48:59 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: Re: [edk2-devel] Uncrustify Conversion Detailed Plan and Extended Hard Freeze Update #5 - Completed - Hard Freeze Lifted To: Andrew Fish , devel@edk2.groups.io Cc: Mike Kinney , Michael Kubacki , Leif Lindholm References: <8733194F-9EB8-490B-82A1-87ABABDDE03F@apple.com> From: "Michael Kubacki" In-Reply-To: <8733194F-9EB8-490B-82A1-87ABABDDE03F@apple.com> Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: quoted-printable Hi Andrew, I just sent the patch: https://edk2.groups.io/g/devel/message/84476 There's a rendered version of the file on my wiki fork: https://github.com/makubacki/tianocore.github.io/blob/add_uncrustify_instru= ctions/EDK-II-Code-Formatting.md Thanks, Michael On 12/7/2021 4:04 PM, Andrew Fish wrote: >=20 >=20 >> On Dec 7, 2021, at 12:35 PM, Michael Kubacki=20 >> >=20 >> wrote: >> >> I will send a patch for the Tianocore Wiki shortly. >> >=20 > OK thanks. I can test on Linux and macOS. >=20 > Maybe I=E2=80=99ll try using VS Code as my editor now=E2=80=A6. >=20 > Thanks, >=20 > Andrew Fish >=20 >> Thanks, >> Michael >> >> On 12/7/2021 2:27 PM, Andrew Fish viagroups.io wrote: >>>> On Dec 7, 2021, at 11:22 AM, Michael D Kinney=20 >>>> > wrote= : >>>> >>>> Hello, >>>> >>>> Thank you to everyone for their patience and for everyone who helped= =20 >>>> with the development >>>> and review of this important update to the edk2 repository. >>>> >>>> The last 2 PR series have completed review, passed EDK II CI checks,= =20 >>>> passed CompareBuild >>>> verifications, and been pushed. >>>> >>>> https://github.com/tianocore/edk2/pull/2242=20 >>>> >>>> https://github.com/tianocore/edk2/pull/2244=20 >>>> >>>> >>>> The hard freeze has ended and normal development activities can=20 >>>> continue. >>>> >>>> 1) If you have code reviews that started before the uncrustify=20 >>>> changes, please >>>> =C2=A0=C2=A0update them. =C2=A0The recipes are included below and will= be added to=20 >>>> the Wiki. >>>> >>>> 2) For all new patch review, please make sure you run the uncrustify= =20 >>>> tool or >>>> =C2=A0=C2=A0use it as a plugin with your editor. =C2=A0If PRs submitte= d to EDK II=20 >>>> CI do not >>>> =C2=A0=C2=A0match the uncrustified version, they will not pass CI. >>>> >>> Mike, >>> How is this documented outside of this patch set? Is there a=20 >>> Tianocore Wiki page on configuring uncrustify? Does that Readme.rst=20 >>> 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=20 >>>> (no limit). >>>> * Update all use of ', OPTIONAL' to ' OPTIONAL,' for function params. >>>> * Change complex DEBUG_CODE() to DEBUG_CODE_BEGIN/END() >>>> >>>> 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) >>>> ----------------------------------------------------------------------= ------ >>>> >>>> Changes from Update #2 >>>> ----------------------------------------------------------------------= ------ >>>> * Changed order of PRs swapping (4) and (5). =C2=A0The PR that activat= es >>>> =C2=A0increases the max CI agent job time is independent of all the ot= her >>>> =C2=A0PRs 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=20 >>>> changes to a >>>> =C2=A0code review patch series that was generated before the uncrustif= y=20 >>>> changes >>>> =C2=A0avoiding manual merge. >>>> * Identified steps using git filter-repo to generate an alternate=20 >>>> history of >>>> =C2=A0the edk2 repo with uncrustify changes applied on every commit.= =20 >>>> =C2=A0This may >>>> =C2=A0be useful when evaluating changes to files using tools like git = blame >>>> =C2=A0without the large uncrustify patch series. >>>> ----------------------------------------------------------------------= ----- >>>> >>>> Changes from Update #1 >>>> ----------------------------------------------------------------------= ------ >>>> * Changed order of PRs swapping (6) and (7). =C2=A0The PR that activat= es >>>> =C2=A0EDK II CI check UncrustifyCheck has to be last because it=20 >>>> unconditionally >>>> =C2=A0checks all C/H files in all packages. =C2=A0Not just files that = have been >>>> =C2=A0modified like some of the other checkers. >>>> * Updated link to the branch with the UncrustifyCheck plugin that=20 >>>> has been >>>> =C2=A0updated with a one line change and Reviewed-by and Tested-by tag= s. >>>> https://github.com/mdkinney/edk2/tree/Bug_3748_add_uncrustify_ci_plugi= n_v6=20 >>>> >>>> * Reviews complete for (1), (2), (3), (5), and (7) >>>> ----------------------------------------------------------------------= ----- >>>> >>>> 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. >>>> >>>> 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. >>>> >>>> The hard freeze will be extended after the edk2-stable202111 tag until >>>> all uncrustify related changes are committed. =C2=A0We do not expect t= his >>>> to take more than a few days. =C2=A0Do not push any PRs until the hard >>>> freeze is lifted. >>>> >>>> The changes are broken up into 7 patch series/PRs. =C2=A0The PRs are o= rdered >>>> so they can be submitted using the normal submission process and EDK I= I >>>> CI will pass for each one. =C2=A0Details are listed below. >>>> >>>> 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=20 >>>> >>>> * Documentation:=20 >>>> https://dev.azure.com/projectmu/Uncrustify/_wiki/wikis/Uncrustify.wiki= /1/Project-Mu-(EDK-II)-Fork-Readme=20 >>>> >>>> * Download:=20 >>>> https://dev.azure.com/projectmu/Uncrustify/_packaging?_a=3Dpackage&fee= d=3Dmu_uncrustify&package=3Dmu-uncrustify-release&protocolType=3DNuGet&vers= ion=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. =C2=A0Please see: >>>> >>>> https://github.com/tianocore/edk2/tree/master/.pytool#running-ci-local= ly=20 >>>> >>>> >>>> Uncrustify can also be installed from the download page listed above >>>> or built from sources from the source link above. >>>> >>>> The Documentation link provides instruction on how to run uncrustify= =20 >>>> from >>>> the command line or install as a Visual Studio Code plugin. =C2=A0The = main >>>> uncrustify documentation also describes how to integrate with a few=20 >>>> other >>>> editors. >>>> >>>> We have also discussed a client side githook. =C2=A0That effort has no= t=20 >>>> started. >>>> Let us know if that is a feature you would find useful. >>>> >>>> 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. >>>> >>>> Developers must install and run uncrustify against changes files befor= e >>>> sending patch review emails or submitting PR for EDK II CI. =C2=A0If E= DK=20 >>>> II CI >>>> detects and differences in source formatting, then EDK II CI will fail >>>> and the developer must run uncrustify and resubmit the patches. >>>> >>>> Developer impact to patch series/PRs reviewed during=20 >>>> edk2-stable201121 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=20 >>>> changes are >>>> committed(latest edk2/master) >>>> >>>> The following steps can be used to update an existing branch with the >>>> required uncrustify format. =C2=A0This is the Windows version. =C2=A0I= will add >>>> the Linux version soon. >>>> >>>> =C2=A0=C2=A0=C2=A01) Fetch and checkout and rebase to latest edk2/mast= er >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git fetch = origin >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git checko= ut master >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git rebase= origin/master >>>> >>>> =C2=A0=C2=A0=C2=A02) Make a backup copy of plugin UncrustifyCheck outs= ide WORKSPACE. >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0(e.g. C:\Temp\UncrustifyCheck) so = the uncrustify tool=20 >>>> executable and >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0EDK II specific uncrustify configu= ration file available when=20 >>>> working >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0with a branch that does not have t= hose tools in its scope. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0xcopy .pyt= ool\Plugin\UncrustifyCheck C:\Temp\UncrustifyCheck >>>> >>>> =C2=A0=C2=A0=C2=A03) Check out the patch series branch (e.g. MyBranch) >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git checko= ut MyBranch >>>> >>>> =C2=A0=C2=A0=C2=A04) Rebase patch series against edk2-stable202111 >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git rebase= edk2-stable202111 >>>> >>>> =C2=A0=C2=A0=C2=A05) Create new branch for the uncrustifed version (e.= g.=20 >>>> MyBranch_Uncrustified) >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git checko= ut -b MyBranch_Uncrustified >>>> >>>> =C2=A0=C2=A0=C2=A06) Use git filter-branch to uncrustify all the commi= ts in the series >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0between the rebase target from (2)= and HEAD of the branch. =C2=A0A=20 >>>> filter >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0can be used to scope the uncrustif= y operations to only the C/H=20 >>>> files >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0in the specific package the patch = series is against. (e.g.=20 >>>> DynamicTablesPkg). >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0BaseTools should always be exclude= d. =C2=A0If the package scoped=20 >>>> filter is >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0not used, it will still work, but = will take longer to run because >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0uncrustify will rescan every C/H f= iles in the whole repo. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git filter= -branch --tree-filter "git ls-files=20 >>>> DynamicTablesPkg*.c DynamicTablesPkg*.h :!BaseTools/* |=20 >>>> c:\\Temp\\UncrustifyCheck\\mu-uncrustify-release_extdep\\Windows-x86\\= uncrustify.exe=20 >>>> -c c:\\Temp\\UncrustifyCheck\\uncrustify.cfg -F - --replace=20 >>>> --no-backup --if-changed" edk2-stable202111..HEAD >>>> >>>> =C2=A0=C2=A0=C2=A07) Now that all the individual patches in the branch= are=20 >>>> uncrustified, >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0rebase against latest edk2/master = that is already uncrustified. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git rebase= master >>>> >>>> =C2=A0=C2=A0=C2=A08) Verify the patches in this new branch. >>>> >>>> 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 uncrustify >>>> patch series. =C2=A0One impact is that the operations can be very slow= due >>>> to the large uncrustify patches. >>>> >>>> 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) >>>> >>>> https://github.com/newren/git-filter-repo=20 >>>> >>>> https://github.com/newren/git-filter-repo/blob/main/contrib/filter-rep= o-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. >>>> >>>> =C2=A0=C2=A0=C2=A0** WARNING ** =C2=A0This operation modifies(rewrites= ) all the commits >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0in the local copy of the repo. =C2= =A0Do not perform >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0these steps on a local repo you are = using for >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0active development. >>>> >>>> =C2=A0=C2=A0=C2=A01) Clone edk2 into a new directory (see **WARNING**) >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0git clone = https://github.com/tianocore/edk2.git=20 >>>> edk2-uncrustified >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0cd edk2-un= crustified >>>> >>>> =C2=A0=C2=A0=C2=A02) Setup python virtual env, install pytools, and ru= n stuart commands >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0to setup build environment which i= ncludes installing=20 >>>> uncrustify tools. >>>> >>>> https://github.com/tianocore/edk2/tree/master/.pytool#running-ci-local= ly=20 >>>> >>>> >>>> =C2=A0=C2=A0=C2=A03) Make a backup copy of plugin UncrustifyCheck outs= ide WORKSPACE. >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0(e.g. C:\Temp\UncrustifyCheck) so = the uncrustify tool=20 >>>> executable and >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0EDK II specific uncrustify configu= ration file available when=20 >>>> working >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0with a branch that does not have t= hose tools in its scope. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0xcopy .pyt= ool\Plugin\UncrustifyCheck C:\Temp\UncrustifyCheck >>>> >>>> =C2=A0=C2=A0=C2=A04) Use lint-history.py from git-filter-repo examples >>>> >>>> https://github.com/newren/git-filter-repo=20 >>>> >>>> https://github.com/newren/git-filter-repo/blob/main/contrib/filter-rep= o-demos/lint-history=20 >>>> >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Line #127 - Add try except around = subprocess.check_call() with=20 >>>> except >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0being pass. =C2=A0This is required= because there are a few commits of C >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0files in the edk2 repo that have i= ncorrect C syntax and do not >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0build with a C compiler and break = the uncrustify parser. =C2=A0Skip=20 >>>> reformat >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0of C files that can not be parsed = by uncrustify. =C2=A0These rare=20 >>>> instances >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0are addressed in the commit that f= ixes the C syntax error. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Run this slightly modified version= of lint-history. =C2=A0Include only >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0C/H files and exclude directories = that start with 'Tools' or=20 >>>> 'BaseTools'. >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0This step took about 2.2 hours on = a laptop. >>>> >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0lint-histo= ry.py >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0--relevant "return (not filename.startswith(b'Tools')=20 >>>> and not filename.startswith(b'BaseTools') and=20 >>>> (filename.endswith(b'.c') or filename.endswith(b'.h')))" >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0c:\\work\\GitHub\\tianocore\\foo\\UncrustifyCheck\\mu-uncrus= tify-release_extdep\\Windows-x86\\uncrustify.exe=20 >>>> -c c:\\work\\GitHub\\tianocore\\foo\\UncrustifyCheck\\uncrustify.cfg= =20 >>>> --replace --no-backup --if-changed >>>> >>>> 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=20 >>>> force debug information >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3747=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3747_EmulatorPkg_WinHost_Rep= roducibleBuild=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2215=20 >>>> >>>> =C2=A0=C2=A0* Required for EmulatorPkg to pass CompareBuild for VS2019= =20 >>>> IA32/X64 builds. >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed. >>>> >>>> 2) EccCheck should not revert staged and local changes >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D2986=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_2986_EccCheckRemoveGitRevert= _V2=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2216=20 >>>> >>>> =C2=A0=C2=A0* Required for EDK II CI to complete in a reasonable perio= d of=20 >>>> time when >>>> =C2=A0=C2=A0=C2=A0=C2=A0processing the 4000+ source file style changes= made by uncrustify. >>>> =C2=A0=C2=A0* Also fixes critical bugs that can potentially corrupt gi= t state when >>>> =C2=A0=C2=A0=C2=A0=C2=A0EccCheck is run locally. >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed. >>>> >>>> 3) Update pytool LicenseCheck plugin to use temp directory for diff=20 >>>> output file >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3746=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3746_LicenseCheckUseDiffOutp= utFile_V2=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2217=20 >>>> >>>> =C2=A0=C2=A0* Required to reduce EDK II CI build times. >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed. >>>> >>>> 4) Update max job time from 60 min to 120 minutes in=20 >>>> .azurepipelines/templates >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3750=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3750_IncreaseAzurePipelinesT= imeout=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2219=20 >>>> >>>> =C2=A0=C2=A0* Required to allow EccCheck of uncrustify changes to comp= lete on=20 >>>> Azure >>>> =C2=A0=C2=A0=C2=A0=C2=A0Pipelines CI agents without timing out. >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed. >>>> >>>> 5) Update Package YAML to ignore specific ECC files/errors >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3749=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3749_EccCheckIgnoreFilesErro= rs=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2218=20 >>>> >>>> =C2=A0=C2=A0* Required to pass EccCheck >>>> =C2=A0=C2=A0* Status: Review complete. PR pushed >>>> >>>> 6) Uncrustify Source Changes >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3737=20 >>>> >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3767=20 >>>> >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3760=20 >>>> >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3739=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3737_3767_3760_3739_ApplyUnc= rustifyChanges_V7=20 >>>> >>>> =C2=A0=C2=A0* https://github.com/tianocore/edk2/pull/2242=20 >>>> >>>> =C2=A0=C2=A0* Build comparison result PASS:=20 >>>> https://github.com/mdkinney/edk2/actions/runs/1550132292=20 >>>> >>>> =C2=A0=C2=A0* EFI_D_ -> DEBUG changes required to pass PatchCheck >>>> =C2=A0=C2=A0* , OPTIONAL -> OPTIONAL, changes required for proper form= atting >>>> =C2=A0=C2=A0* DEBUG_CODE() -> DEBUG_CODE_BEGIN/END() required for comp= lex code=20 >>>> blocks >>>> =C2=A0=C2=A0=C2=A0=C2=A0for proper formatting. >>>> =C2=A0=C2=A0* Uncrustify format changes required to pass UncrustifyChe= ck >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed >>>> >>>> 7) UncrustifyCheck EDK II CI Plugin >>>> =C2=A0=C2=A0* https://bugzilla.tianocore.org/show_bug.cgi?id=3D3748=20 >>>> >>>> =C2=A0=C2=A0*=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3748_add_uncrustify_ci_plugi= n_v7=20 >>>> >>>> =C2=A0=C2=A0* Required to enforce all PRs submitted to EDK II CI match= =20 >>>> uncrustify format. >>>> =C2=A0=C2=A0* Unconditionally checks all packages. =C2=A0Cannot be com= mitted until=20 >>>> all C/H >>>> =C2=A0=C2=A0=C2=A0=C2=A0source files have been updated. >>>> =C2=A0=C2=A0* Status: Review complete. =C2=A0PR pushed. >>>> >>>> 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= =20 >>>> before >>>> =C2=A0the individual PRs can be pushed in the order listed above. >>>> * Branch:=20 >>>> https://github.com/mdkinney/edk2/tree/TestOnly_Uncrustify_PR_Series=20 >>>> >>>> * PR: https://github.com/tianocore/edk2/pull/2229=20 >>>> >>>> =C2=A0=C2=A0=C2=A0Status =3D PASS >>>> * CompareBuild: >>>> =C2=A0=C2=A0=C2=A0Branch:=20 >>>> https://github.com/mdkinney/edk2/tree/Bug_3737_3739_ApplyUncrustifyCha= nges_V5=20 >>>> >>>> =C2=A0=C2=A0=C2=A0--ref1: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0ef= 9a059cdb15844fe52a49af2bf7d86b9dd3e9bf >>>> =C2=A0=C2=A0=C2=A0--ref2: =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0Bu= g_3737_3739_ApplyUncrustifyChanges_V5 >>>> =C2=A0=C2=A0=C2=A0Extra Options: -n 4 --quiet >>>> =C2=A0=C2=A0=C2=A0Results: https://github.com/mdkinney/edk2/actions/ru= ns/1521618836=20 >>>> >>>> 30 VS2019 build comparisons PASS >>>> 40 GCC5 build comparisons PASS >>>> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0100% PASS >>>> >>>> The following git log shows the set of patches from --ref1 to --ref=20 >>>> 2across >>>> which there are no differences in any of the=20 >>>> OBJ/LIB/DLL/EFI/FFS/FV/FD files. >>>> >>>> --ref2 >>>> b7d4bf0675b7 (HEAD -> Bug_3737_3739_ApplyUncrustifyChanges_V5)=20 >>>> UnitTestFrameworkPkg: 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)=20 >>>> UnitTestFrameworkPkg: Update YAML to ignore specific ECC files/errors >>>> c05734797790 UefiPayloadPkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> c30c40d6c63d StandaloneMmPkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> 9944508e85f1 ShellPkg: Update YAML to ignore specific ECC files/errors >>>> 60fa40be458d SecurityPkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> df790cd6b37e MdePkg: Update YAML to ignore specific ECC files/errors >>>> 9deb9370766e MdeModulePkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> d7d30e8f219f EmulatorPkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> d5744ecba813 CryptoPkg: Update YAML to ignore specific ECC files/error= s >>>> c97fee87f0f9 ArmVirtPkg: Update YAML to ignore specific ECC files/erro= rs >>>> 1939fc9569f2 ArmPlatformPkg: Update YAML to ignore specific ECC=20 >>>> files/errors >>>> 365dced2c37a ArmPkg: Update YAML to ignore specific ECC files/errors >>>> 76a1ce4d5fec .azurepipelines/templates: Update max pipeline job time= =20 >>>> to 2 hours >>>> 99f84ff47390 .pytools/Plugin/LicenseCheck: Use temp directory for=20 >>>> git diff output >>>> 3019f1bbabf1 .pytool/Plugin/EccCheck: Add performance optimizations >>>> 854462bd3479 .pytool/Plugin/EccCheck: Remove temp directory on excepti= on >>>> 69877614fdee .pytool/Plugin/EccCheck: Remove RevertCode() >>>> --ref1 >>>> ef9a059cdb15 EmulatorPkg/Win/Host: Update CC_FLAGS >>>> bb1bba3d7767 (tag: edk2-stable202111) NetworkPkg: Fix invalid=20 >>>> pointer for DNS response token on error >>>> >>>> Best regards, >>>> >>>> Mike >>>> >>>> >>>> >>>> >>>> >>>> >> >> >>=20 >=20