[edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci

Zhang, Shenglei posted 16 patches 3 years, 8 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
.pytool/Plugin/EccCheck/EccCheck.py           | 302 ++++++++++++++++++
.pytool/Plugin/EccCheck/EccCheck_plug_in.yaml |  11 +
.pytool/Plugin/EccCheck/Readme.md             |  15 +
ArmVirtPkg/ArmVirtPkg.ci.yaml                 |  11 +
CryptoPkg/CryptoPkg.ci.yaml                   |  13 +
EmulatorPkg/EmulatorPkg.ci.yaml               |  11 +
FatPkg/FatPkg.ci.yaml                         |  12 +
FmpDevicePkg/FmpDevicePkg.ci.yaml             |  12 +
MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +
MdePkg/MdePkg.ci.yaml                         |  11 +
NetworkPkg/NetworkPkg.ci.yaml                 |  12 +
OvmfPkg/OvmfPkg.ci.yaml                       |  11 +
PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml         |  12 +
SecurityPkg/SecurityPkg.ci.yaml               |  12 +
ShellPkg/ShellPkg.ci.yaml                     |  12 +
UefiCpuPkg/UefiCpuPkg.ci.yaml                 |  12 +
.../UnitTestFrameworkPkg.ci.yaml              |  11 +
pip-requirements.txt                          |   1 +
18 files changed, 494 insertions(+)
create mode 100644 .pytool/Plugin/EccCheck/EccCheck.py
create mode 100644 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml
create mode 100644 .pytool/Plugin/EccCheck/Readme.md
[edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci
Posted by Zhang, Shenglei 3 years, 8 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2606
As planed we will enable Ecc check for edk2 on open ci. And they are
ready now. I appreciate receiving feedback and comments if someone
find errors or false positive issues.

I created a pipline of EccCheck for my forked edk2. Welcome everyone to
create pull request to test the quality of this plugin.
My forked tree: https://github.com/shenglei10/edk2

And I also created some test cases for ECC plugin. Below are test cases.
https://github.com/shenglei10/edk2/tree/ECC
Results can be view in below azure server.
https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=12&_a=summary

Patches
1/16: It's a lib necessary for py3 to run Ecc on azure servers.

2/16: EccCheck.py is a plugin to report Ecc issues for commits. It can be run
     on azure servers for open ci, or a local virtual environment.

3/16~16/16: We consider some cases that will report out Ecc issues but they won't
     be fixed, like submodule and industry standard related things. So we
     add two configuration fields "Exception" and "IgnoreFiles" for people
     to use. These patches add configuration in yaml files for Ecc check.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>

v2: Update 1/17, fix the bug that the script can't hanlde multiple commits.

v3: Update 1/17, set the only workalbe workspace is edk2 root directory.
    Update 2/17, designate the version of antlr4 is 4.7.1.
    Add 4/17~17/17.

v4. Update 1/17, remove the function EdksetupRebuild(), instead add
    function SetupEnvironment(). Update variables' format and type hints
    to pass flake8 and mypy.

v5. Conver the former method to plugin solution, to align with
    other check points on open ci.

v6. The 1/16 patch is missed in v5 series. Now add it in v6.

v7. Fix a bug that Ecc plugin can not be run correctly under Linux OS.

v8. Enable error code config section to ignore certain kinds of issues,
    which are always false positive in partial Ecc scaning.
    All patches except 2/16 have been R-B and are not updated in v8 series.
    To avoid making noise in community, I only send cover letter and 2/16 patch.

v9. Update 2/16, 3/16, 5/16 and 16/16.
    1. Enable directory path for "IgnoreFiles" section in xxxPkg.yaml. So that
       users can skip a certain directory and don't need to fill in with file names.
    2. Add submodule pathes in "IgnoreFiles" in MdeModulePkg.ci.yaml,
       CryptoPkg.ci.yaml and UnitTestFrameworkPkg.ci.yaml.

Shenglei Zhang (16):
  pip-requirements.txt: Add Ecc required lib
  .pytool/Plugin: Add a plugin EccCheck
  MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
  ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check
  CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check
  EmulatorPkg/EmulatorPkg.ci.yaml: Add configuration for Ecc check
  FatPkg/FatPkg.ci.yaml: Add configuration for Ecc check
  FmpDevicePkg/FmpDevicePkg.ci.yaml: Add configuration for Ecc check
  MdePkg/MdePkg.ci.yaml: Add configuration for Ecc check
  NetworkPkg/NetworkPkg.ci.yaml: Add configuration for Ecc check
  OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check
  PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml: Add configuration for Ecc check
  SecurityPkg/SecurityPkg.ci.yaml: Add configuration for Ecc check
  ShellPkg/ShellPkg.ci.yaml: Add configuration for Ecc check
  UefiCpuPkg/UefiCpuPkg.ci.yaml: Add configuration for Ecc check
  UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file

 .pytool/Plugin/EccCheck/EccCheck.py           | 302 ++++++++++++++++++
 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml |  11 +
 .pytool/Plugin/EccCheck/Readme.md             |  15 +
 ArmVirtPkg/ArmVirtPkg.ci.yaml                 |  11 +
 CryptoPkg/CryptoPkg.ci.yaml                   |  13 +
 EmulatorPkg/EmulatorPkg.ci.yaml               |  11 +
 FatPkg/FatPkg.ci.yaml                         |  12 +
 FmpDevicePkg/FmpDevicePkg.ci.yaml             |  12 +
 MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +
 MdePkg/MdePkg.ci.yaml                         |  11 +
 NetworkPkg/NetworkPkg.ci.yaml                 |  12 +
 OvmfPkg/OvmfPkg.ci.yaml                       |  11 +
 PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml         |  12 +
 SecurityPkg/SecurityPkg.ci.yaml               |  12 +
 ShellPkg/ShellPkg.ci.yaml                     |  12 +
 UefiCpuPkg/UefiCpuPkg.ci.yaml                 |  12 +
 .../UnitTestFrameworkPkg.ci.yaml              |  11 +
 pip-requirements.txt                          |   1 +
 18 files changed, 494 insertions(+)
 create mode 100644 .pytool/Plugin/EccCheck/EccCheck.py
 create mode 100644 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml
 create mode 100644 .pytool/Plugin/EccCheck/Readme.md

-- 
2.18.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63955): https://edk2.groups.io/g/devel/message/63955
Mute This Topic: https://groups.io/mt/76121679/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci
Posted by Laszlo Ersek 3 years, 8 months ago
Hello Shenglei,

(+Ard)

On 08/11/20 09:01, Zhang, Shenglei wrote:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2606
> As planed we will enable Ecc check for edk2 on open ci. And they are
> ready now. I appreciate receiving feedback and comments if someone
> find errors or false positive issues.
>
> I created a pipline of EccCheck for my forked edk2. Welcome everyone to
> create pull request to test the quality of this plugin.
> My forked tree: https://github.com/shenglei10/edk2
>
> And I also created some test cases for ECC plugin. Below are test cases.
> https://github.com/shenglei10/edk2/tree/ECC
> Results can be view in below azure server.
> https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=12&_a=summary
>
> Patches
> 1/16: It's a lib necessary for py3 to run Ecc on azure servers.
>
> 2/16: EccCheck.py is a plugin to report Ecc issues for commits. It can be run
>      on azure servers for open ci, or a local virtual environment.
>
> 3/16~16/16: We consider some cases that will report out Ecc issues but they won't
>      be fixed, like submodule and industry standard related things. So we
>      add two configuration fields "Exception" and "IgnoreFiles" for people
>      to use. These patches add configuration in yaml files for Ecc check.
>
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Liming Gao <liming.gao@intel.com>
> Cc: Sean Brogan <sean.brogan@microsoft.com>
>
> v2: Update 1/17, fix the bug that the script can't hanlde multiple commits.
>
> v3: Update 1/17, set the only workalbe workspace is edk2 root directory.
>     Update 2/17, designate the version of antlr4 is 4.7.1.
>     Add 4/17~17/17.
>
> v4. Update 1/17, remove the function EdksetupRebuild(), instead add
>     function SetupEnvironment(). Update variables' format and type hints
>     to pass flake8 and mypy.
>
> v5. Conver the former method to plugin solution, to align with
>     other check points on open ci.
>
> v6. The 1/16 patch is missed in v5 series. Now add it in v6.
>
> v7. Fix a bug that Ecc plugin can not be run correctly under Linux OS.
>
> v8. Enable error code config section to ignore certain kinds of issues,
>     which are always false positive in partial Ecc scaning.
>     All patches except 2/16 have been R-B and are not updated in v8 series.
>     To avoid making noise in community, I only send cover letter and 2/16 patch.

2/16: ".pytool/Plugin: Add a plugin EccCheck"

>
> v9. Update 2/16, 3/16, 5/16 and 16/16.

2/16: ".pytool/Plugin: Add a plugin EccCheck"
3/16: "MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check"
5/16: "CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check"
16/16: "UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file"

So no changes to the ArmVirtPkg and OvmfPkg patches since v7.

In v7, my Acked-by was present on both patches 04/16
("ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check"):

  http://mid.mail-archive.com/20200706084846.12748-5-shenglei.zhang@intel.com
  https://edk2.groups.io/g/devel/message/62075

and 11/16 ("OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check"):

  http://mid.mail-archive.com/20200706084846.12748-12-shenglei.zhang@intel.com
  https://edk2.groups.io/g/devel/message/62082

Why did you drop my A-b from the ArmVirtPkg patch in v9?

Thanks,
Laszlo

>     1. Enable directory path for "IgnoreFiles" section in xxxPkg.yaml. So that
>        users can skip a certain directory and don't need to fill in with file names.
>     2. Add submodule pathes in "IgnoreFiles" in MdeModulePkg.ci.yaml,
>        CryptoPkg.ci.yaml and UnitTestFrameworkPkg.ci.yaml.
>
> Shenglei Zhang (16):
>   pip-requirements.txt: Add Ecc required lib
>   .pytool/Plugin: Add a plugin EccCheck
>   MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
>   ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check
>   CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check
>   EmulatorPkg/EmulatorPkg.ci.yaml: Add configuration for Ecc check
>   FatPkg/FatPkg.ci.yaml: Add configuration for Ecc check
>   FmpDevicePkg/FmpDevicePkg.ci.yaml: Add configuration for Ecc check
>   MdePkg/MdePkg.ci.yaml: Add configuration for Ecc check
>   NetworkPkg/NetworkPkg.ci.yaml: Add configuration for Ecc check
>   OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check
>   PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml: Add configuration for Ecc check
>   SecurityPkg/SecurityPkg.ci.yaml: Add configuration for Ecc check
>   ShellPkg/ShellPkg.ci.yaml: Add configuration for Ecc check
>   UefiCpuPkg/UefiCpuPkg.ci.yaml: Add configuration for Ecc check
>   UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file
>
>  .pytool/Plugin/EccCheck/EccCheck.py           | 302 ++++++++++++++++++
>  .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml |  11 +
>  .pytool/Plugin/EccCheck/Readme.md             |  15 +
>  ArmVirtPkg/ArmVirtPkg.ci.yaml                 |  11 +
>  CryptoPkg/CryptoPkg.ci.yaml                   |  13 +
>  EmulatorPkg/EmulatorPkg.ci.yaml               |  11 +
>  FatPkg/FatPkg.ci.yaml                         |  12 +
>  FmpDevicePkg/FmpDevicePkg.ci.yaml             |  12 +
>  MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +
>  MdePkg/MdePkg.ci.yaml                         |  11 +
>  NetworkPkg/NetworkPkg.ci.yaml                 |  12 +
>  OvmfPkg/OvmfPkg.ci.yaml                       |  11 +
>  PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml         |  12 +
>  SecurityPkg/SecurityPkg.ci.yaml               |  12 +
>  ShellPkg/ShellPkg.ci.yaml                     |  12 +
>  UefiCpuPkg/UefiCpuPkg.ci.yaml                 |  12 +
>  .../UnitTestFrameworkPkg.ci.yaml              |  11 +
>  pip-requirements.txt                          |   1 +
>  18 files changed, 494 insertions(+)
>  create mode 100644 .pytool/Plugin/EccCheck/EccCheck.py
>  create mode 100644 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml
>  create mode 100644 .pytool/Plugin/EccCheck/Readme.md
>


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#63995): https://edk2.groups.io/g/devel/message/63995
Mute This Topic: https://groups.io/mt/76121679/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci
Posted by Zhang, Shenglei 3 years, 8 months ago
Hi Laszlo,

Sorry for that. I removed it by mistake. I'll re-add it into the patch.

Thanks,
Shenglei

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Laszlo
> Ersek
> Sent: Tuesday, August 11, 2020 11:36 PM
> To: devel@edk2.groups.io; Zhang, Shenglei <shenglei.zhang@intel.com>
> Cc: Feng, Bob C <bob.c.feng@intel.com>; Bret Barkelew
> <Bret.Barkelew@microsoft.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Sean
> Brogan <sean.brogan@microsoft.com>; Ard Biesheuvel (ARM address)
> <ard.biesheuvel@arm.com>
> Subject: Re: [edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues
> for edk2 on open ci
> 
> Hello Shenglei,
> 
> (+Ard)
> 
> On 08/11/20 09:01, Zhang, Shenglei wrote:
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2606
> > As planed we will enable Ecc check for edk2 on open ci. And they are
> > ready now. I appreciate receiving feedback and comments if someone
> > find errors or false positive issues.
> >
> > I created a pipline of EccCheck for my forked edk2. Welcome everyone to
> > create pull request to test the quality of this plugin.
> > My forked tree: https://github.com/shenglei10/edk2
> >
> > And I also created some test cases for ECC plugin. Below are test cases.
> > https://github.com/shenglei10/edk2/tree/ECC
> > Results can be view in below azure server.
> >
> https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=12
> &_a=summary
> >
> > Patches
> > 1/16: It's a lib necessary for py3 to run Ecc on azure servers.
> >
> > 2/16: EccCheck.py is a plugin to report Ecc issues for commits. It can be run
> >      on azure servers for open ci, or a local virtual environment.
> >
> > 3/16~16/16: We consider some cases that will report out Ecc issues but they
> won't
> >      be fixed, like submodule and industry standard related things. So we
> >      add two configuration fields "Exception" and "IgnoreFiles" for people
> >      to use. These patches add configuration in yaml files for Ecc check.
> >
> > Cc: Bob Feng <bob.c.feng@intel.com>
> > Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
> > Cc: Michael D Kinney <michael.d.kinney@intel.com>
> > Cc: Liming Gao <liming.gao@intel.com>
> > Cc: Sean Brogan <sean.brogan@microsoft.com>
> >
> > v2: Update 1/17, fix the bug that the script can't hanlde multiple commits.
> >
> > v3: Update 1/17, set the only workalbe workspace is edk2 root directory.
> >     Update 2/17, designate the version of antlr4 is 4.7.1.
> >     Add 4/17~17/17.
> >
> > v4. Update 1/17, remove the function EdksetupRebuild(), instead add
> >     function SetupEnvironment(). Update variables' format and type hints
> >     to pass flake8 and mypy.
> >
> > v5. Conver the former method to plugin solution, to align with
> >     other check points on open ci.
> >
> > v6. The 1/16 patch is missed in v5 series. Now add it in v6.
> >
> > v7. Fix a bug that Ecc plugin can not be run correctly under Linux OS.
> >
> > v8. Enable error code config section to ignore certain kinds of issues,
> >     which are always false positive in partial Ecc scaning.
> >     All patches except 2/16 have been R-B and are not updated in v8 series.
> >     To avoid making noise in community, I only send cover letter and 2/16
> patch.
> 
> 2/16: ".pytool/Plugin: Add a plugin EccCheck"
> 
> >
> > v9. Update 2/16, 3/16, 5/16 and 16/16.
> 
> 2/16: ".pytool/Plugin: Add a plugin EccCheck"
> 3/16: "MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc
> check"
> 5/16: "CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check"
> 16/16: "UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file"
> 
> So no changes to the ArmVirtPkg and OvmfPkg patches since v7.
> 
> In v7, my Acked-by was present on both patches 04/16
> ("ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check"):
> 
>   http://mid.mail-archive.com/20200706084846.12748-5-
> shenglei.zhang@intel.com
>   https://edk2.groups.io/g/devel/message/62075
> 
> and 11/16 ("OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check"):
> 
>   http://mid.mail-archive.com/20200706084846.12748-12-
> shenglei.zhang@intel.com
>   https://edk2.groups.io/g/devel/message/62082
> 
> Why did you drop my A-b from the ArmVirtPkg patch in v9?
> 
> Thanks,
> Laszlo
> 
> >     1. Enable directory path for "IgnoreFiles" section in xxxPkg.yaml. So that
> >        users can skip a certain directory and don't need to fill in with file names.
> >     2. Add submodule pathes in "IgnoreFiles" in MdeModulePkg.ci.yaml,
> >        CryptoPkg.ci.yaml and UnitTestFrameworkPkg.ci.yaml.
> >
> > Shenglei Zhang (16):
> >   pip-requirements.txt: Add Ecc required lib
> >   .pytool/Plugin: Add a plugin EccCheck
> >   MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
> >   ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check
> >   CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check
> >   EmulatorPkg/EmulatorPkg.ci.yaml: Add configuration for Ecc check
> >   FatPkg/FatPkg.ci.yaml: Add configuration for Ecc check
> >   FmpDevicePkg/FmpDevicePkg.ci.yaml: Add configuration for Ecc check
> >   MdePkg/MdePkg.ci.yaml: Add configuration for Ecc check
> >   NetworkPkg/NetworkPkg.ci.yaml: Add configuration for Ecc check
> >   OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check
> >   PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml: Add configuration for Ecc check
> >   SecurityPkg/SecurityPkg.ci.yaml: Add configuration for Ecc check
> >   ShellPkg/ShellPkg.ci.yaml: Add configuration for Ecc check
> >   UefiCpuPkg/UefiCpuPkg.ci.yaml: Add configuration for Ecc check
> >   UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file
> >
> >  .pytool/Plugin/EccCheck/EccCheck.py           | 302 ++++++++++++++++++
> >  .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml |  11 +
> >  .pytool/Plugin/EccCheck/Readme.md             |  15 +
> >  ArmVirtPkg/ArmVirtPkg.ci.yaml                 |  11 +
> >  CryptoPkg/CryptoPkg.ci.yaml                   |  13 +
> >  EmulatorPkg/EmulatorPkg.ci.yaml               |  11 +
> >  FatPkg/FatPkg.ci.yaml                         |  12 +
> >  FmpDevicePkg/FmpDevicePkg.ci.yaml             |  12 +
> >  MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +
> >  MdePkg/MdePkg.ci.yaml                         |  11 +
> >  NetworkPkg/NetworkPkg.ci.yaml                 |  12 +
> >  OvmfPkg/OvmfPkg.ci.yaml                       |  11 +
> >  PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml         |  12 +
> >  SecurityPkg/SecurityPkg.ci.yaml               |  12 +
> >  ShellPkg/ShellPkg.ci.yaml                     |  12 +
> >  UefiCpuPkg/UefiCpuPkg.ci.yaml                 |  12 +
> >  .../UnitTestFrameworkPkg.ci.yaml              |  11 +
> >  pip-requirements.txt                          |   1 +
> >  18 files changed, 494 insertions(+)
> >  create mode 100644 .pytool/Plugin/EccCheck/EccCheck.py
> >  create mode 100644 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml
> >  create mode 100644 .pytool/Plugin/EccCheck/Readme.md
> >
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64027): https://edk2.groups.io/g/devel/message/64027
Mute This Topic: https://groups.io/mt/76121679/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci
Posted by Liming Gao 3 years, 8 months ago
Reviewed-by: Liming Gao <liming.gao@intel.com>

-----Original Message-----
From: Zhang, Shenglei <shenglei.zhang@intel.com> 
Sent: 2020年8月11日 15:02
To: devel@edk2.groups.io
Cc: Feng, Bob C <bob.c.feng@intel.com>; Bret Barkelew <Bret.Barkelew@microsoft.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>; Sean Brogan <sean.brogan@microsoft.com>
Subject: [PATCH v9 00/16] Add a plugin to check Ecc issues for edk2 on open ci

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2606
As planed we will enable Ecc check for edk2 on open ci. And they are ready now. I appreciate receiving feedback and comments if someone find errors or false positive issues.

I created a pipline of EccCheck for my forked edk2. Welcome everyone to create pull request to test the quality of this plugin.
My forked tree: https://github.com/shenglei10/edk2

And I also created some test cases for ECC plugin. Below are test cases.
https://github.com/shenglei10/edk2/tree/ECC
Results can be view in below azure server.
https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=12&_a=summary

Patches
1/16: It's a lib necessary for py3 to run Ecc on azure servers.

2/16: EccCheck.py is a plugin to report Ecc issues for commits. It can be run
     on azure servers for open ci, or a local virtual environment.

3/16~16/16: We consider some cases that will report out Ecc issues but they won't
     be fixed, like submodule and industry standard related things. So we
     add two configuration fields "Exception" and "IgnoreFiles" for people
     to use. These patches add configuration in yaml files for Ecc check.

Cc: Bob Feng <bob.c.feng@intel.com>
Cc: Bret Barkelew <Bret.Barkelew@microsoft.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Cc: Sean Brogan <sean.brogan@microsoft.com>

v2: Update 1/17, fix the bug that the script can't hanlde multiple commits.

v3: Update 1/17, set the only workalbe workspace is edk2 root directory.
    Update 2/17, designate the version of antlr4 is 4.7.1.
    Add 4/17~17/17.

v4. Update 1/17, remove the function EdksetupRebuild(), instead add
    function SetupEnvironment(). Update variables' format and type hints
    to pass flake8 and mypy.

v5. Conver the former method to plugin solution, to align with
    other check points on open ci.

v6. The 1/16 patch is missed in v5 series. Now add it in v6.

v7. Fix a bug that Ecc plugin can not be run correctly under Linux OS.

v8. Enable error code config section to ignore certain kinds of issues,
    which are always false positive in partial Ecc scaning.
    All patches except 2/16 have been R-B and are not updated in v8 series.
    To avoid making noise in community, I only send cover letter and 2/16 patch.

v9. Update 2/16, 3/16, 5/16 and 16/16.
    1. Enable directory path for "IgnoreFiles" section in xxxPkg.yaml. So that
       users can skip a certain directory and don't need to fill in with file names.
    2. Add submodule pathes in "IgnoreFiles" in MdeModulePkg.ci.yaml,
       CryptoPkg.ci.yaml and UnitTestFrameworkPkg.ci.yaml.

Shenglei Zhang (16):
  pip-requirements.txt: Add Ecc required lib
  .pytool/Plugin: Add a plugin EccCheck
  MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
  ArmVirtPkg/ArmVirtPkg.ci.yaml: Add configuration for Ecc check
  CryptoPkg/CryptoPkg.ci.yaml: Add configuration for Ecc check
  EmulatorPkg/EmulatorPkg.ci.yaml: Add configuration for Ecc check
  FatPkg/FatPkg.ci.yaml: Add configuration for Ecc check
  FmpDevicePkg/FmpDevicePkg.ci.yaml: Add configuration for Ecc check
  MdePkg/MdePkg.ci.yaml: Add configuration for Ecc check
  NetworkPkg/NetworkPkg.ci.yaml: Add configuration for Ecc check
  OvmfPkg/OvmfPkg.ci.yaml: Add configuration for Ecc check
  PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml: Add configuration for Ecc check
  SecurityPkg/SecurityPkg.ci.yaml: Add configuration for Ecc check
  ShellPkg/ShellPkg.ci.yaml: Add configuration for Ecc check
  UefiCpuPkg/UefiCpuPkg.ci.yaml: Add configuration for Ecc check
  UnitTestFrameworkPkg: Add configuration for Ecc check in yaml file

 .pytool/Plugin/EccCheck/EccCheck.py           | 302 ++++++++++++++++++
 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml |  11 +
 .pytool/Plugin/EccCheck/Readme.md             |  15 +
 ArmVirtPkg/ArmVirtPkg.ci.yaml                 |  11 +
 CryptoPkg/CryptoPkg.ci.yaml                   |  13 +
 EmulatorPkg/EmulatorPkg.ci.yaml               |  11 +
 FatPkg/FatPkg.ci.yaml                         |  12 +
 FmpDevicePkg/FmpDevicePkg.ci.yaml             |  12 +
 MdeModulePkg/MdeModulePkg.ci.yaml             |  13 +
 MdePkg/MdePkg.ci.yaml                         |  11 +
 NetworkPkg/NetworkPkg.ci.yaml                 |  12 +
 OvmfPkg/OvmfPkg.ci.yaml                       |  11 +
 PcAtChipsetPkg/PcAtChipsetPkg.ci.yaml         |  12 +
 SecurityPkg/SecurityPkg.ci.yaml               |  12 +
 ShellPkg/ShellPkg.ci.yaml                     |  12 +
 UefiCpuPkg/UefiCpuPkg.ci.yaml                 |  12 +
 .../UnitTestFrameworkPkg.ci.yaml              |  11 +
 pip-requirements.txt                          |   1 +
 18 files changed, 494 insertions(+)
 create mode 100644 .pytool/Plugin/EccCheck/EccCheck.py
 create mode 100644 .pytool/Plugin/EccCheck/EccCheck_plug_in.yaml
 create mode 100644 .pytool/Plugin/EccCheck/Readme.md

--
2.18.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#64020): https://edk2.groups.io/g/devel/message/64020
Mute This Topic: https://groups.io/mt/76121679/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-