From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.65; helo=mga03.intel.com; envelope-from=michael.d.kinney@intel.com; receiver=edk2-devel@lists.01.org Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 76D622118B7BA for ; Fri, 16 Nov 2018 07:58:11 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Nov 2018 07:58:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,240,1539673200"; d="scan'208,217";a="105176403" Received: from orsmsx106.amr.corp.intel.com ([10.22.225.133]) by fmsmga002.fm.intel.com with ESMTP; 16 Nov 2018 07:58:09 -0800 Received: from orsmsx113.amr.corp.intel.com ([169.254.9.125]) by ORSMSX106.amr.corp.intel.com ([169.254.1.161]) with mapi id 14.03.0415.000; Fri, 16 Nov 2018 07:58:09 -0800 From: "Kinney, Michael D" To: "Gao, Liming" , "edk2-devel@lists.01.org" , "Kinney, Michael D" CC: "leif.lindholm@linaro.org" , "Laszlo Ersek (lersek@redhat.com)" , "afish@apple.com" Thread-Topic: [RFC] Proposal on Python3 Migration Thread-Index: AdR9vPyYzzOqxfgfStKjhSlZIsGdYAAB4xmw Date: Fri, 16 Nov 2018 15:58:08 +0000 Message-ID: References: <4A89E2EF3DFEDB4C8BFDE51014F606A14E36DDA6@SHSMSX104.ccr.corp.intel.com> In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E36DDA6@SHSMSX104.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.22.254.140] MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [RFC] Proposal on Python3 Migration X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 16 Nov 2018 15:58:11 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Liming, Adding a new Python3 directory will increase the maintenance and testing of= the python-based BaseTools. It would be better if we could have one version of the python sources that = work with both Python2 and Python3. We should use the edk2-staging branch to work towards this goal. Please explain why we can't support both in single set of sources. Are the= re technical reasons or resource reasons? Thanks, Mike From: Gao, Liming Sent: Friday, November 16, 2018 7:02 AM To: edk2-devel@lists.01.org Cc: Kinney, Michael D ; leif.lindholm@linaro.or= g; Laszlo Ersek (lersek@redhat.com) ; afish@apple.com Subject: [RFC] Proposal on Python3 Migration Hi, all https://pythonclock.org/ say Python 2.7 will not be maintained past 2020.= One BZ https://bugzilla.tianocore.org/show_bug.cgi?id=3D55 also requests t= his migration. And, Python37 does good performance optimization. In EDK2 bu= ild, Python37 can improve 20% performance than Python27 in Build AutoGen ph= ase. So, we plan to add Python3 support in BaseTools. In previous discussio= n, the feedback is not to drop Python2 support in short term, and keep Pyth= on2 and Python3 coexist. My proposal is to add two copy BaseTools Python code in BaseTools/Source di= rectory. One is current BaseTools/Source/Python, another is new BaseTools/S= ource/Python3. edksetup.bat/edksetup.sh base on environment variable (PYTHO= N3_HOME) to know whether Python3 is used. If PYTHON3_HOME is not set, Pytho= n2 is still used as current way. If user wants to enable Python3, he needs = to set PYTHON3_HOME. After 201811 release tag, BaseTools Python2 source cod= e is kept as the stable release. Python3 is as the active trunk. By default= , any change will be for Python3. If the submitter also request the change = for Python2, he needs to list it in BZ description. If the submitter has th= e clear request, Python2 can add new feature or enhancement. If you have any comments or suggestion on Python3 migration, please join = this discussion. Thanks Liming