From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mx.groups.io with SMTP id smtpd.web10.32016.1578880356100726620 for ; Sun, 12 Jan 2020 17:52:36 -0800 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.43, mailfrom: ray.ni@intel.com) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Jan 2020 17:52:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,427,1571727600"; d="scan'208";a="422660784" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by fmsmga005.fm.intel.com with ESMTP; 12 Jan 2020 17:52:35 -0800 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 12 Jan 2020 17:52:35 -0800 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.439.0; Sun, 12 Jan 2020 17:52:34 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.197]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.245]) with mapi id 14.03.0439.000; Mon, 13 Jan 2020 09:52:27 +0800 From: "Ni, Ray" To: "'devel@edk2.groups.io'" Subject: FW: TianoCore Community Design Meeting Minutes - Jan 10, 2020 Thread-Topic: TianoCore Community Design Meeting Minutes - Jan 10, 2020 Thread-Index: AdXHk4u4V4EFrj42RAqxnxTNbXEH/wAoL3JQAF/gaLA= Date: Mon, 13 Jan 2020 01:52:26 +0000 Message-ID: <734D49CCEBEEF84792F5B80ED585239D5C3F218A@SHSMSX104.ccr.corp.intel.com> References: <734D49CCEBEEF84792F5B80ED585239D5C3E831D@SHSMSX104.ccr.corp.intel.com> In-Reply-To: Accept-Language: en-US, zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ActionId=00230a87-2bb5-4519-8166-000024d067bb;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=true;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=Internal;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2020-01-11T04:04:58Z;MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Return-Path: ray.ni@intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Discussion of the Pytools Build components continues in devel mailing list. -----Original Message----- From: Jeremiah Cox =20 Sent: Saturday, January 11, 2020 12:09 PM To: Ni, Ray ; announce@edk2.groups.io Cc: Sean Brogan ; Matthew Carlson Subject: RE: TianoCore Community Design Meeting Minutes - Jan 10, 2020 Thank you Ray and TianoCore attendees for taking the time to review and di= scuss Pytools Build components and examples. It was requested that we summarize the value proposition of PyTools build = compared with the classic EDK2 build systems. Here are some thoughts: PyTools extend the EDK2 build system, building on top of it with a goal of= enabling larger-scale development and maintenance of families of platforms= across architectures & generations. =20 Goals: * Modular build plug-ins to share common build operations across applicabl= e platforms * Custom, modular pre-build and post-build operations * Workspaces with multiple, independently-owned Git repositories (via Git = submodules) * Download of external binary dependencies from NuGet and the web * Minimized environment assumptions, for example path & workspace layout, = delegating that to a platform configuration file and the modules that it in= cludes * No hardcoded paths to plug-ins and dependencies (for workspace agility a= s platforms appear and evolve) * Independent of build platform, shell (cmd, bash, psh, ...), & shell envi= ronment, easing build reproducibility and CI * Consistent logging throughout the extensions Most EDK2-based platforms, including OVMF and EmulatorPkg, include scripts= , bash or cmd, and/or README's that provide pre and post build steps, beyon= d EDK2 build, that are needed to complete building and deployment of the p= latform. PyTools build strive to include these abilities in a platform's = one (1 singular) UefiBuilder Python module (which can be leveraged for buil= d/deployment across build platforms, environments, and devices). If your d= ay-to-day job is modifications to core EDK2 and BaseTools, PyTools build co= mponents may have less to offer you, but we believe Pytools CI and librarie= s have a lot to offer (topics for further discussions). Thanks for the opportunity to present, and we look forward to more discuss= ions on these topics! Jeremiah Cox Core UEFI and Project Mu Microsoft -----Original Message----- From: announce@edk2.groups.io On Behalf Of Ni, R= ay via Groups.Io Sent: Friday, January 10, 2020 00:55 To: announce@edk2.groups.io Cc: announce@edk2.groups.io Subject: [EXTERNAL] [edk2-announce] TianoCore Community Design Meeting Min= utes - Jan 10, 2020 1. EDK2 Pytools "Stuart": Platform Creation (Microsoft) Presenter: Jeremiah Cox Slides: https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%= 2Fedk2.groups.io%2Fg%2Fdevel%2Ffiles%2FDesigns%2F2020%2F0110%2FEnablingPyto= ols-Edk2PlatformsAndOvmf.pdf&data=3D02%7C01%7Cjerecox%40microsoft.com%7= Cf9ba7574e02c458eecac08d795aada32%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C= 0%7C637142434090340667&sdata=3DKpJBnuhgPPM9og4TBPtlyn4rvlevNbnATo7ofxgA= 6LM%3D&reserved=3D0 What's "Stuart": page #2, #3 EDK2 Pytools =3D EDK2 Pytool Library + EDK2 Pytool Extensions (including= "Stuart") "Stuart" facilitates building EDK2-based platforms and CI testing of EDK= 2 packages. This topic only covers how "Stuart" builds EDK2-based platforms. Stuart's CLI tools: page #4 stuart_setup: update source code stuart_update: update external tool dependencies stuart_build: perform EDK2 build @Liming: What are the differences between stuart_setup and stuart_update? @Sean: stuart_setup is using git focusing on source code. stuart_update is= focusing on external dependencies like iasl. @Liming: What is the order between the two? @Sean: stuart_setup, then stuart_update. @Sean: Stuart works on 1-repo-N-submodule usage while EdkRepo tool works o= n N-repo usage. Enabling Stuart Build to a Platform: page #5 (abstract), page #10 ~ #13 (d= etails) Subclass Stuart classes in platform specific python file SetupSettingsManager: declare submodules for stuart_setup UpdateSettingsManager: declare external dep scopes for stuart_update BuildSettingsManager & UefiBuilder: consumed by stuart_build refer to https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3= A%2F%2Fgithub.com%2Ftianocore%2Fedk2-pytool-extensions%2Fblob%2Fmaster%2Fdo= cs%2Fusability%2Fusing_settings_manager.md&data=3D02%7C01%7Cjerecox%40m= icrosoft.com%7Cf9ba7574e02c458eecac08d795aada32%7C72f988bf86f141af91ab2d7cd= 011db47%7C1%7C0%7C637142434090340667&sdata=3Di9LNkBwwjkVmyECUQ5JtZjMmYX= lNM0dTClb5Fu7csf4%3D&reserved=3D0 Building OVMF with EDK2 Pytools: page #6 ~ #9 refer to https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2F%2Fgithub.com%2Fout0xb2%2Fedk2%2Fblob%2Ffeature%2FpytoolsForOvmf%2FOvmfPk= g%2FREADME-pytools.md&data=3D02%7C01%7Cjerecox%40microsoft.com%7Cf9ba75= 74e02c458eecac08d795aada32%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637= 142434090340667&sdata=3D3zgXYz5aHeMfTeEisV4wJuz0qKV%2BnzZgeG%2B5l66Ulc4= %3D&reserved=3D0 EDK2 build defines are passed through parameters "BLD_*_" when c= alling stuart_build. e.g.: stuart_build -c OvmfPkg/PlatformBuild.py BLD_*_E1000_ENABLE=3D1 @Ray: Why is "BLD_*_ but not "BLD_"? @Sean: "*" can be the name of different build targets like "DEBUG", "REL= EASE". @Liming: EDK2 build defines are global and cannot be associated with ind= ividual build targets. @Mike: Need a clear understanding of namespace defined by Stuart. Building Kabylake Open Board with EDK2 Pytools: page #14 ~ #17 refer to https://nam06.safelinks.protection.outlook.com/?url=3Dhttps%3A%= 2F%2Fgithub.com%2Fout0xb2%2Fedk2-platforms%2Fblob%2Ffeature%2Fpy_platforms%= 2FPlatform%2FIntel%2FKabylakeOpenBoardPkg%2FKabylakeRvp3%2FREADME-Pytools.m= d&data=3D02%7C01%7Cjerecox%40microsoft.com%7Cf9ba7574e02c458eecac08d795= aada32%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637142434090340667&= sdata=3DoZekZ1DV4NGhQN2El3KXzpFLRukAzdKZe2zccwuLqyY%3D&reserved=3D0 Answer how Pytools helps on Surface development: page #19 ~ #21 @Mike: Advantages and disadvantages of today's bulid style and MS' stuart = build style. @Jeremiah: Will summarize and reply to the meeting minutes. Thanks, Ray