From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from linux.microsoft.com (linux.microsoft.com [13.77.154.182]) by mx.groups.io with SMTP id smtpd.web10.19698.1669832807058971604 for ; Wed, 30 Nov 2022 10:26:47 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@linux.microsoft.com header.s=default header.b=A1NUu9fs; spf=pass (domain: linux.microsoft.com, ip: 13.77.154.182, mailfrom: mikuback@linux.microsoft.com) Received: from [192.168.4.22] (unknown [47.201.8.94]) by linux.microsoft.com (Postfix) with ESMTPSA id 01CD720B83C2; Wed, 30 Nov 2022 10:26:40 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com 01CD720B83C2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1669832806; bh=YEeznqrmmFRif3r18ZrtDQur8/KgpE16P6VvLQnebrM=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=A1NUu9fslAJmSYRFTQMMfkz/SCQEb+4Fo3852rYlEoUNRpJ4z2PJ4U3X/jN74wzrR N0+WicRuk+W0TAkYFtje8oILvDfv2wncKSEo0C5s9/uIw/z5PxKhNRx7gXRpO3jcGF JBKTk5V4hkjyhvoMHnmXgc6bWW3qPwKtpMvPlfFg= Message-ID: <4515964c-130e-fd9c-5589-00b05239db59@linux.microsoft.com> Date: Wed, 30 Nov 2022 13:26:39 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.13.1 Subject: Re: [PATCH v7 1/6] CI: make Python version configurable To: Oliver Steffen Cc: devel@edk2.groups.io, Abner Chang , Alexei Fedorov , Andrew Fish , Anthony Perard , Ard Biesheuvel , Bob Feng , Brijesh Singh , Chasel Chiu , Daniel Schaefer , Erdem Aktas , Eric Dong , Gerd Hoffmann , Gua Guo , Guo Dong , Guomin Jiang , Hao A Wu , Igor Kulchytskyy , James Bottomley , James Lu , Jian J Wang , Jiaxin Wu , Jiewen Yao , Jordan Justen , Julien Grall , Leif Lindholm , Liming Gao , Maciej Rabeda , Michael D Kinney , Min Xu , Nate DeSimone , Nickle Wang , Peter Grehan , Pierre Gondois , Rahul Kumar , Ray Ni , Rebecca Cran , Sami Mujawar , Sean Brogan , Sean Rhodes , Sebastien Boeuf , Siyuan Fu , Star Zeng , Sunil V L , Supreeth Venkatesh , Tom Lendacky , Wei6 Xu , Xiaoyu Lu , Yuwei Chen , Zhichao Gao , Zhiguang Liu , Pawel Polawski , Chris Fernald References: <20221129192625.643896-1-osteffen@redhat.com> <22bdd626-9b32-5e22-edb4-285374e5df2d@linux.microsoft.com> From: "Michael Kubacki" In-Reply-To: Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit I'm fine for it to come in a separate patch if necessary. If you end up deferring it, maybe file a brief BZ to track it. Thanks, Michael On 11/30/2022 12:52 PM, Oliver Steffen wrote: > Hi Michael > > On Wed, Nov 30, 2022 at 3:13 PM Michael Kubacki > wrote: >> >> This distributes the Python version (as a default value) across several >> files - ">=3.10.6". For maintainability, we'd like to manage versioning >> more centrally to reduce likelihood of misses on updates. >> >> You could potentially adjust it such that the default does not specify a >> version, put the Python version in a template and call that when needed, >> etc. > Yes, it sounds like a good idea. > > Can we work on this in a separate patch set? > I am experimenting with this now, but I fear this might delay > these patches too much and go for a minimal version for now. > Maybe we have a chance to merge something before the CI stops > working tomorrow. > > Thanks, > Oliver > >> Thanks, >> Michael >> >> On 11/29/2022 2:26 PM, Oliver Steffen wrote: >>> Add a new parameter "usePythonVersion" to the CI job templates. >>> This makes it possible to specify the version of Python to use. >>> The default value is ">=3.10.6". >>> If '' is specified, Python will not be downloaded at runtime and >>> the one provided by the VM/container image will be used. >>> >>> Signed-off-by: Oliver Steffen >>> --- >>> .azurepipelines/templates/platform-build-run-steps.yml | 6 +++++- >>> .azurepipelines/templates/pr-gate-build-job.yml | 2 ++ >>> .azurepipelines/templates/pr-gate-steps.yml | 6 ++++-- >>> 3 files changed, 11 insertions(+), 3 deletions(-) >>> >>> diff --git a/.azurepipelines/templates/platform-build-run-steps.yml >>> b/.azurepipelines/templates/platform-build-run-steps.yml >>> index 40a31a509fc5..6c9189a20fde 100644 >>> --- a/.azurepipelines/templates/platform-build-run-steps.yml >>> +++ b/.azurepipelines/templates/platform-build-run-steps.yml >>> @@ -34,6 +34,9 @@ parameters: >>> - name: extra_install_step >>> type: stepList >>> default: [] >>> +- name: usePythonVersion >>> + type: string >>> + default: ">=3.10.6" >>> >>> steps: >>> - checkout: self >>> @@ -42,8 +45,9 @@ steps: >>> >>> - task: UsePythonVersion@0 >>> inputs: >>> - versionSpec: ">=3.10.6" >>> + versionSpec: ${{ parameters.usePythonVersion }} >>> architecture: "x64" >>> + condition: ne('${{ parameters.usePythonVersion }}', '') >>> >>> - script: pip install -r pip-requirements.txt --upgrade >>> displayName: 'Install/Upgrade pip modules' >>> diff --git a/.azurepipelines/templates/pr-gate-build-job.yml >>> b/.azurepipelines/templates/pr-gate-build-job.yml >>> index 7f88b41dc8d3..d0a6ccd10700 100644 >>> --- a/.azurepipelines/templates/pr-gate-build-job.yml >>> +++ b/.azurepipelines/templates/pr-gate-build-job.yml >>> @@ -12,6 +12,7 @@ parameters: >>> tool_chain_tag: '' >>> vm_image: '' >>> arch_list: '' >>> + usePythonVersion: '>=3.10.6' >>> >>> # Build step >>> jobs: >>> @@ -77,3 +78,4 @@ jobs: >>> build_pkgs: $(Build.Pkgs) >>> build_targets: $(Build.Targets) >>> build_archs: ${{ parameters.arch_list }} >>> + usePythonVersion: ${{ parameters.usePythonVersion }} >>> diff --git a/.azurepipelines/templates/pr-gate-steps.yml >>> b/.azurepipelines/templates/pr-gate-steps.yml >>> index cb431e53fcd1..bf6574b33692 100644 >>> --- a/.azurepipelines/templates/pr-gate-steps.yml >>> +++ b/.azurepipelines/templates/pr-gate-steps.yml >>> @@ -12,6 +12,7 @@ parameters: >>> build_pkgs: '' >>> build_targets: '' >>> build_archs: '' >>> + usePythonVersion: '>=3.10.6' >>> >>> steps: >>> - checkout: self >>> @@ -20,8 +21,9 @@ steps: >>> >>> - task: UsePythonVersion@0 >>> inputs: >>> - versionSpec: '>=3.10.6' >>> - architecture: 'x64' >>> + versionSpec: ${{ parameters.usePythonVersion }} >>> + architecture: "x64" >>> + condition: ne('${{ parameters.usePythonVersion }}', '') >>> >>> - script: pip install -r pip-requirements.txt --upgrade >>> displayName: 'Install/Upgrade pip modules' >>