<html xmlns:v="urn:schemas-microsoft-com:vml" 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=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:宋体;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:等线;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@等线";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"\@宋体";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:宋体;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:等线;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:等线;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=ZH-CN link=blue vlink=purple style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Matthew:<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>  I suggest to provide the option to let user choose BaseTools from PIP or from Source.<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>  For this patch set, all linux scripts should be UNIX file format. I review the patch <a href="https://github.com/tianocore/edk2/pull/1072">https://github.com/tianocore/edk2/pull/1072</a>. I find some linux script are DOS file format, for example BaseTools/BuildEnv. Please correct them. <o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'><o:p> </o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Thanks<o:p></o:p></span></p><p class=MsoNormal><span lang=EN-US style='font-size:10.5pt;font-family:等线'>Liming<o:p></o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:等线'>发件人<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-size:11.0pt;font-family:等线'> Matthew Carlson <matthewfcarlson@gmail.com> <br></span><b><span style='font-size:11.0pt;font-family:等线'>发送时间<span lang=EN-US>:</span></span></b><span lang=EN-US style='font-size:11.0pt;font-family:等线'> 2020</span><span style='font-size:11.0pt;font-family:等线'>年<span lang=EN-US>11</span>月<span lang=EN-US>4</span>日<span lang=EN-US> 2:50<br></span><b>收件人<span lang=EN-US>:</span></b><span lang=EN-US> Shi, Steven <steven.shi@intel.com><br></span><b>抄送<span lang=EN-US>:</span></b><span lang=EN-US> devel@edk2.groups.io; Feng, Bob C <bob.c.feng@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Chen, Christine <yuwei.chen@intel.com>; Sean Brogan <sean.brogan@microsoft.com>; Kinney, Michael D <michael.d.kinney@intel.com><br></span><b>主题<span lang=EN-US>:</span></b><span lang=EN-US> Re: [edk2-devel] [PATCH v1 0/1] Use Pip version of BaseTools<o:p></o:p></span></span></p></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div><p class=MsoNormal><span lang=EN-US>Hey Steven,<o:p></o:p></span></p><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>So there's a pip requirement file that should keep things in lockstep in terms of dependencies. The initial plan is to have every commit into basetools be released. Changes in BaseTools will be submitted and then edk2 will be updated to consume that new feature. So it will simply be a new patch in the series when people submit. So whenever there's some sort of change where it is required in lockstep, the expectation is that basetools will be updated first. <o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Right now, the basetools repo doesn't try to build with EDK2 (though that is coming). It does unit tests, code coverage, linting, and a few other things (most of them won't cause an error, due to it breaking current builds). But we already do CI with EDK2 in the pytools repos (<a href="https://github.com/tianocore/edk2-pytool-extensions">https://github.com/tianocore/edk2-pytool-extensions</a>) where we clone, install locally, and test. It's run as an optional test and the expectation is that build breaks should be well-understood and tested by the person submitting the breaking change. The goal eventually is for the unit tests to provide a very good litmus test for whether it will break edk2 or not, but BaseTools is currently at 4% coverage, so we have a good ways to go there.<o:p></o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div><div><p class=MsoNormal><span lang=EN-US>Great question!<br clear=all><o:p></o:p></span></p><div><div><div><p class=MsoNormal><span lang=EN-US>-Matthew Carlson<o:p></o:p></span></p></div></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p></div></div></div><p class=MsoNormal><span lang=EN-US><o:p> </o:p></span></p><div><div><p class=MsoNormal><span lang=EN-US>On Mon, Nov 2, 2020 at 8:54 PM Shi, Steven <<a href="mailto:steven.shi@intel.com">steven.shi@intel.com</a>> wrote:<o:p></o:p></span></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal style='margin-bottom:12.0pt'><span lang=EN-US>Hello Carlson,<br>I'd like to know the validation process of the BaseTools patch in Open CI after we fully adopt the pip based BaseTools. There will be two different repos as edk2-basetools and edk2,  and the two repos closely depend on each other to do the build validation. We might need a mechanism to sync the two repos dependency when we want to change the edk2-basetools. When I send a patch to change edk2-basetools, is there a mechanism in Open CI to let the build agent not to use the pre-installed pip basetools, but to clone the new branch version of edk2-basetools, build&install the new version basetools, and force the edk2 to finish build with the new version basetools?<br><br><br>Thanks<br>Steven Shi<br><br>> -----Original Message-----<br>> From: <a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a> <<a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a>> On Behalf Of<br>> Matthew Carlson<br>> Sent: Tuesday, November 3, 2020 8:36 AM<br>> To: <a href="mailto:devel@edk2.groups.io" target="_blank">devel@edk2.groups.io</a><br>> Cc: Feng, Bob C <<a href="mailto:bob.c.feng@intel.com" target="_blank">bob.c.feng@intel.com</a>>; Liming Gao<br>> <<a href="mailto:gaoliming@byosoft.com.cn" target="_blank">gaoliming@byosoft.com.cn</a>>; Chen, Christine <<a href="mailto:yuwei.chen@intel.com" target="_blank">yuwei.chen@intel.com</a>>;<br>> Sean Brogan <<a href="mailto:sean.brogan@microsoft.com" target="_blank">sean.brogan@microsoft.com</a>>; Kinney, Michael D<br>> <<a href="mailto:michael.d.kinney@intel.com" target="_blank">michael.d.kinney@intel.com</a>><br>> Subject: [edk2-devel] [PATCH v1 0/1] Use Pip version of BaseTools<br>> <br>> From: Matthew Carlson <<a href="mailto:matthewfcarlson@gmail.com" target="_blank">matthewfcarlson@gmail.com</a>><br>> <br>> Hello all,<br>> <br>> This patch adds the capability to leverage the pip based BaseTools.<br>> The BaseTools master is current with EDK2 master (as of 3pm Nov 2, 2020).<br>> While I could rehash a lot of what has gone out on the mailing list, I think<br>> it might be better just to link the discussion.<br>> <br>> In a nutshell, setup will detect if edk2-basetools is installed, and if it<br>> is, use the other verison of BinWrappers (BinPipWrappers). This should<br>> provide an easy and convenient way to transition over. By default, CI<br>> uses the pip version.<br>> <br>> The pipeline is setup. Every commit that gets pushed to master on basetools<br>> get published to pypi and tagged. This should offer bisectability and easier<br>> debugging. Additionally, the pip requirements file tracks a specific version.<br>> <br>> We'd like to set a date for when PR's no longer go into EDK2 for BaseTools<br>> and instead go exclusively into the new basetools repo.<br>> <br>> Ref: <a href="https://edk2.groups.io/g/devel/topic/76572200#64993" target="_blank">https://edk2.groups.io/g/devel/topic/76572200#64993</a><br>> Ref: <a href="https://github.com/tianocore/edk2-basetools" target="_blank">https://github.com/tianocore/edk2-basetools</a><br>> Ref: <a href="https://github.com/tianocore/edk2/pull/1072" target="_blank">https://github.com/tianocore/edk2/pull/1072</a><br>> <br>> Cc: Bob Feng <<a href="mailto:bob.c.feng@intel.com" target="_blank">bob.c.feng@intel.com</a>><br>> Cc: Liming Gao <<a href="mailto:gaoliming@byosoft.com.cn" target="_blank">gaoliming@byosoft.com.cn</a>><br>> Cc: Yuwei Chen <<a href="mailto:yuwei.chen@intel.com" target="_blank">yuwei.chen@intel.com</a>><br>> Cc: Sean Brogan <<a href="mailto:sean.brogan@microsoft.com" target="_blank">sean.brogan@microsoft.com</a>><br>> Cc: Michael Kinney <<a href="mailto:michael.d.kinney@intel.com" target="_blank">michael.d.kinney@intel.com</a>><br>> <br>> Matthew Carlson (1):<br>>   BaseTools: Use pip module if available, CI uses it by default<br>> <br>>  .pytool/CISettings.py                                                               |  20 +-<br>>  BaseTools/BinPipWrappers/PosixLike/AmlToC                                           |  14 +<br>>  BaseTools/BinPipWrappers/PosixLike/BPDG                                             |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/Brotli                                           |  29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/BrotliCompress                                   |<br>> 34 ++<br>>  BaseTools/BinPipWrappers/PosixLike/DevicePath                                       |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/Ecc                                              |  13 +<br>>  BaseTools/BinPipWrappers/PosixLike/EfiRom                                           |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenCrc32                                         |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenDepex                                         |  12<br>> +<br>>  BaseTools/BinPipWrappers/PosixLike/GenFds                                           |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/GenFfs                                           |  29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenFv                                            |  29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenFw                                            |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable                                 |<br>> 12 +<br>>  BaseTools/BinPipWrappers/PosixLike/GenSec                                           |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/GenerateCapsule                                  |<br>> 12 +<br>>  BaseTools/BinPipWrappers/PosixLike/LzmaCompress                                     |<br>> 29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress                                  |<br>> 19 +<br>>  BaseTools/BinPipWrappers/PosixLike/PatchPcdValue                                    |<br>> 12 +<br>>  BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign                                        |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys<br>> |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign<br>> |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/Split                                            |  29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/TargetTool                                       |  12<br>> +<br>>  BaseTools/BinPipWrappers/PosixLike/TianoCompress                                    |<br>> 29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/Trim                                             |  13 +<br>>  BaseTools/BinPipWrappers/PosixLike/UPT                                              |  12 +<br>>  BaseTools/BinPipWrappers/PosixLike/VfrCompile                                       |  29<br>> ++<br>>  BaseTools/BinPipWrappers/PosixLike/VolInfo                                          |  29 ++<br>>  BaseTools/BinPipWrappers/PosixLike/build                                            |  12 +<br>>  BaseTools/{BinWrappers =><br>> BinPipWrappers}/PosixLike/posix_path_env.yaml             |   3 +-<br>>  BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat                                     |<br>> 3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/BPDG.bat                                       |<br>> 3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/BrotliCompress.bat<br>> |  55 ++<br>>  BaseTools/BinPipWrappers/WindowsLike/Ecc.bat                                        |   3<br>> +<br>>  BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat<br>> |   3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/GenFds.bat                                     |<br>> 3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat<br>> |   3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat<br>> |   1 +<br>>  BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat<br>> |   3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat                                  |<br>> 3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat<br>> |   1 +<br>>  BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat<br>> |   3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat                                 |<br>> 3 +<br>>  BaseTools/BinPipWrappers/WindowsLike/Trim.bat                                       |   3<br>> +<br>>  BaseTools/BinPipWrappers/WindowsLike/UPT.bat                                        |   3<br>> +<br>>  BaseTools/BinPipWrappers/WindowsLike/build.bat                                      |   3<br>> +<br>>  BaseTools/{BinWrappers =><br>> BinPipWrappers}/WindowsLike/win_build_tools_path_env.yaml |   3 +-<br>>  BaseTools/BinWrappers/PosixLike/posix_path_env.yaml                                 |<br>> 1 +<br>>  BaseTools/BinWrappers/WindowsLike/win_build_tools_path_env.yaml<br>> |   1 +<br>>  BaseTools/BuildEnv                                                                  | 548 ++++++++++---<br>> -------<br>>  BaseTools/Scripts/PatchCheck.py                                                     |   1 +<br>>  BaseTools/toolsetup.bat                                                             |  19 +<br>>  pip-requirements.txt                                                                |   1 +<br>>  55 files changed, 1035 insertions(+), 272 deletions(-)<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/AmlToC<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/BPDG<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/Brotli<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/BrotliCompress<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/DevicePath<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/Ecc<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/EfiRom<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenCrc32<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenDepex<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenFds<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenFfs<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenFv<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenFw<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/PosixLike/GenPatchPcdTable<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenSec<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/GenerateCapsule<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/LzmaCompress<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/PosixLike/LzmaF86Compress<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/PatchPcdValue<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/Pkcs7Sign<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256GenerateKeys<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/PosixLike/Rsa2048Sha256Sign<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/Split<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/TargetTool<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/TianoCompress<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/Trim<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/UPT<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/VfrCompile<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/VolInfo<br>>  create mode 100644 BaseTools/BinPipWrappers/PosixLike/build<br>>  copy BaseTools/{BinWrappers =><br>> BinPipWrappers}/PosixLike/posix_path_env.yaml (71%)<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/AmlToC.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/BPDG.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/BrotliCompress.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Ecc.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/GenDepex.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/GenFds.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/GenPatchPcdTable.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/GenerateCapsule.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/PatchPcdValue.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/Pkcs7Sign.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256GenerateKeys.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/Rsa2048Sha256Sign.bat<br>>  create mode 100644<br>> BaseTools/BinPipWrappers/WindowsLike/TargetTool.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/Trim.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/UPT.bat<br>>  create mode 100644 BaseTools/BinPipWrappers/WindowsLike/build.bat<br>>  copy BaseTools/{BinWrappers =><br>> BinPipWrappers}/WindowsLike/win_build_tools_path_env.yaml (70%)<br>> <br>> --<br>> 2.28.0.vfs.0.0<br>> <br>> <br>> <br>> <br>> <o:p></o:p></span></p></blockquote></div></div></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/67267">View/Reply Online (#67267)</a> |    |  <a target="_blank" href="https://groups.io/mt/78175361/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>