[PATCH v2 0/5] Add a pipline to check Ecc issues for edk2 on open ci
Zhang, Shenglei
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, but these are V2 series. So I expect that contributors in
edk2 community can try using this script when reviewing. And I appreciate
receiving feedback and comments if someone find errors or false positive
issues.
I created a pipline of EccCheck for my forked edk2.
https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=10&_a=summary
The patch series are big, so the commits are also pushed into my forked tree.
https://github.com/shenglei10/edk2/commits/ECC
Patches
1/5: This is a patch to enable python 3.8 for Ecc. It is a tool issues not
a pipline or script issue. But it is listed here for people willing
to try this tool.
2/5: EccCheck.py is a tool to report Ecc issues for commits. It can be run
on azure servers for open ci, or locally. Its usage is like
PatchCheck.py.
3/5: It's a lib necessary for py3 to run Ecc on azure servers. For local
use, we need to type command
"py -3 -m pip install antlr4-python3-runtime" first.
4/5: Windows-EccCheck.yml is a yaml file to configure the newly added
pipline. The azure uses this to create a pipline.
5/5: 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. The patch is a example and the contents in the fields will be
empty in final version.
Cc: Bob Feng <bob.c.feng@...>
Cc: Bret Barkelew <Bret.Barkelew@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <liming.gao@...>
Cc: Sean Brogan <sean.brogan@...>
v2: Update 2/5, fix the bug that the script can't hanlde multiple commits.
Fan, Zhiju (1):
BaseTools:ECC needs to update the contents of CParser4
Shenglei Zhang (4):
BaseTools/Scripts: Add EccCheck.py
pip-requirements.txt: Add Ecc required lib
.azurepiplines: Add a pipline to check ECC issues for commits
MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
.azurepipelines/Windows-EccCheck.yml | 38 ++
BaseTools/Scripts/EccCheck.py | 433 ++++++++++++++++++
.../Source/Python/Ecc/CParser4/CLexer.py | 6 +-
.../Source/Python/Ecc/CParser4/CListener.py | 4 +-
.../Source/Python/Ecc/CParser4/CParser.py | 38 +-
MdeModulePkg/MdeModulePkg.ci.yaml | 8 +
pip-requirements.txt | 1 +
7 files changed, 505 insertions(+), 23 deletions(-)
create mode 100644 .azurepipelines/Windows-EccCheck.yml
create mode 100644 BaseTools/Scripts/EccCheck.py
--
2.18.0.windows.1
As planed we will enable Ecc check for edk2 on open ci. And they are
ready now, but these are V2 series. So I expect that contributors in
edk2 community can try using this script when reviewing. And I appreciate
receiving feedback and comments if someone find errors or false positive
issues.
I created a pipline of EccCheck for my forked edk2.
https://dev.azure.com/shengleizhang/shengleizhang/_build?definitionId=10&_a=summary
The patch series are big, so the commits are also pushed into my forked tree.
https://github.com/shenglei10/edk2/commits/ECC
Patches
1/5: This is a patch to enable python 3.8 for Ecc. It is a tool issues not
a pipline or script issue. But it is listed here for people willing
to try this tool.
2/5: EccCheck.py is a tool to report Ecc issues for commits. It can be run
on azure servers for open ci, or locally. Its usage is like
PatchCheck.py.
3/5: It's a lib necessary for py3 to run Ecc on azure servers. For local
use, we need to type command
"py -3 -m pip install antlr4-python3-runtime" first.
4/5: Windows-EccCheck.yml is a yaml file to configure the newly added
pipline. The azure uses this to create a pipline.
5/5: 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. The patch is a example and the contents in the fields will be
empty in final version.
Cc: Bob Feng <bob.c.feng@...>
Cc: Bret Barkelew <Bret.Barkelew@...>
Cc: Michael D Kinney <michael.d.kinney@...>
Cc: Liming Gao <liming.gao@...>
Cc: Sean Brogan <sean.brogan@...>
v2: Update 2/5, fix the bug that the script can't hanlde multiple commits.
Fan, Zhiju (1):
BaseTools:ECC needs to update the contents of CParser4
Shenglei Zhang (4):
BaseTools/Scripts: Add EccCheck.py
pip-requirements.txt: Add Ecc required lib
.azurepiplines: Add a pipline to check ECC issues for commits
MdeModulePkg/MdeModulePkg.ci.yaml: Add configuration for Ecc check
.azurepipelines/Windows-EccCheck.yml | 38 ++
BaseTools/Scripts/EccCheck.py | 433 ++++++++++++++++++
.../Source/Python/Ecc/CParser4/CLexer.py | 6 +-
.../Source/Python/Ecc/CParser4/CListener.py | 4 +-
.../Source/Python/Ecc/CParser4/CParser.py | 38 +-
MdeModulePkg/MdeModulePkg.ci.yaml | 8 +
pip-requirements.txt | 1 +
7 files changed, 505 insertions(+), 23 deletions(-)
create mode 100644 .azurepipelines/Windows-EccCheck.yml
create mode 100644 BaseTools/Scripts/EccCheck.py
--
2.18.0.windows.1