I received an Acked-by, but would like to request a Reviewed-by from a BaseTools maintainer. @gaoliming@byosoft.com.cn I would like to request that this change be included in the stable tag. This change updates edk2-pytool-library and edk2-pytool-extensions to the latest release, which brings in additional features and bug fixes for those building via edk2-pytools. There are no breaking changes, and no changes in the required python version. One of the changes made in edk2-pytool-library did result in a change in interface, which was necessary to provide a better user experience in handling errors for said function, however this PR provides a tested change (used by Project MU) for a script using the method in BaseTools. This change is also critical for the edk2-pytools project itself as that project can not successfully perform integration checks (which happen on every change to pytools) for edk2 on future PRs until this interface is changed. Thanks, Joey On Fri, Feb 3, 2023 at 7:43 PM Michael Kubacki wrote: > Acked-by: Michael Kubacki > > On 2/1/2023 3:22 PM, Joey Vagedes wrote: > > This patch updates edk2-pytool-library dependency to v0.13.0, which has > > an interface change to FindWithVsWhere. The BaseTools plugin uses this > > function, so it is being updated to account for the interface change. > > > > Cc: Bob Feng > > Cc: Liming Gao > > Cc: Yuwei Chen > > Cc: Michael D Kinney > > > > Signed-off-by: Joey Vagedes > > --- > > BaseTools/Plugin/WindowsVsToolChain/WindowsVsToolChain.py | 16 > ++++++++++++---- > > pip-requirements.txt | 4 ++-- > > 2 files changed, 14 insertions(+), 6 deletions(-) > > > > diff --git a/BaseTools/Plugin/WindowsVsToolChain/WindowsVsToolChain.py > b/BaseTools/Plugin/WindowsVsToolChain/WindowsVsToolChain.py > > index 0fba2c1b5325..615b5ed6d131 100644 > > --- a/BaseTools/Plugin/WindowsVsToolChain/WindowsVsToolChain.py > > +++ b/BaseTools/Plugin/WindowsVsToolChain/WindowsVsToolChain.py > > @@ -177,15 +177,23 @@ class WindowsVsToolChain(IUefiBuildPlugin): > > > > > > def _get_vs_install_path(self, vs_version, varname): > > > > # check if already specified > > > > - path = shell_environment.GetEnvironment().get_shell_var(varname) > > > > + path = None > > > > + if varname is not None: > > > > + path = > shell_environment.GetEnvironment().get_shell_var(varname) > > > > + > > > > if(path is None): > > > > # Not specified...find latest > > > > - (rc, path) = FindWithVsWhere(vs_version=vs_version) > > > > - if rc == 0 and path is not None and os.path.exists(path): > > > > + try: > > > > + path = FindWithVsWhere(vs_version=vs_version) > > > > + except (EnvironmentError, ValueError, RuntimeError) as e: > > > > + self.Logger.error(str(e)) > > > > + return None > > > > + > > > > + if path is not None and os.path.exists(path): > > > > self.Logger.debug("Found VS instance for %s", > vs_version) > > > > else: > > > > self.Logger.error( > > > > - "Failed to find VS instance with VsWhere (%d)" % rc) > > > > + f"VsWhere successfully executed, but could not find > VS instance for {vs_version}.") > > > > return path > > > > > > > > def _get_vc_version(self, path, varname): > > > > diff --git a/pip-requirements.txt b/pip-requirements.txt > > index 4ffcadddd8cf..d3256ff1ade7 100644 > > --- a/pip-requirements.txt > > +++ b/pip-requirements.txt > > @@ -12,8 +12,8 @@ > > # https://www.python.org/dev/peps/pep-0440/#version-specifiers > > > > ## > > > > > > > > -edk2-pytool-library==0.12.1 > > > > -edk2-pytool-extensions~=0.20.0 > > > > +edk2-pytool-library==0.13.1 > > > > +edk2-pytool-extensions~=0.21.2 > > > > edk2-basetools==0.1.39 > > > > antlr4-python3-runtime==4.7.1 > > > > lcov-cobertura==2.0.2 > > >