To my knowledge, we do not currently have a required version; the current state is it either works or it doesn’t, and if it doesn’t it’s on you to figure that out from the failures. I’m not opposed to adding one – if there’s interest. I’d have to think about the best place to add it. The idea of making it its own test is interesting. It wouldn’t prevent you from getting other test data, but it would let you know you aren’t on the ideal version and there may be unpredictable results. Ponder ponder… - Bret From: Andrew Fish Sent: Monday, April 12, 2021 9:27 AM To: edk2-devel-groups-io; Bret Barkelew Cc: Shivanshi.Pandya@dell.com Subject: Re: [EXTERNAL] [edk2-devel] Build Failed for QEMU35Pkg On Apr 9, 2021, at 6:33 PM, Bret Barkelew via groups.io > wrote: Andrew, Not a scheme that I would consider a “good” scheme. You can see what we’re running CI against (in Mu and EDK, both), by checking for the “UsePythonVersion” command in the .azurepipelines/pr-gate-steps.yml file. Bret, If I understand correctly the CI list is the recommended versions, but not the required versions. Do we have any concept of the required versions? I guess we could put a python assert to enforce min Python version? I guess we could be more aggressive on the required Python version (forces people to install a custom Python version for the edk2 build), or build a CI test that tests the min Python version for the tools... Sorry mostly thinking out loud…. Thanks, Andrew Fish Shivanshi, I just ran a build on my system with that exact version of Python (3.9.0). Did your build produce a “BUILD_TOOLS_REPORT.json” file? If so, can you send it? Can you also send the exact command that you’re running when you see this issue? Thanks! - Bret From: Andrew Fish Sent: Friday, April 9, 2021 4:54 PM To: edk2-devel-groups-io; Bret Barkelew Cc: Shivanshi.Pandya@dell.com Subject: [EXTERNAL] Re: [edk2-devel] Build Failed for QEMU35Pkg On Apr 9, 2021, at 1:55 PM, Bret Barkelew via groups.io > wrote: It looks like a Python 3.8.x vs 3.9.x issue. Do we have a scheme to require a min Python version? Thanks, Andrew Fish It looks as if you’re using Mu Q35 as your platform. Can you tell me what branch you’re on? - Bret From: Pandya, Shivanshi via groups.io Sent: Friday, April 9, 2021 1:52 PM To: devel@edk2.groups.io Subject: [EXTERNAL] [edk2-devel] Build Failed for QEMU35Pkg Hello, Build failed with following call trace build.py... INFO - : error C0DE: Unknown fatal error when processing [c:\bea\dfci\mu_tiano_platforms\Common\PRM\PrmPkg\Library\DxePrmModuleDiscoveryLib\DxePrmModuleDiscoveryLib.inf [X64, VS2017, DEBUG]] INFO - INFO - (Please send email to devel@edk2.groups.io for help, attaching following call stack trace!) INFO - INFO - (Python 3.9.0 on win32) Traceback (most recent call last): INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\build\build.py", line 2635, in Main INFO - MyBuild.Launch() INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\build\build.py", line 2430, in Launch INFO - self._MultiThreadBuildPlatform() INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\build\build.py", line 2238, in _MultiThreadBuildPlatform INFO - Wa, self.BuildModules = self.PerformAutoGen(BuildTarget,ToolChain) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\build\build.py", line 2112, in PerformAutoGen INFO - CmdListDict = self._GenFfsCmd(Wa.ArchList) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\build\build.py", line 2009, in _GenFfsCmd INFO - GenFfsDict = GenFds.GenFfsMakefile('', GlobalData.gFdfParser, self, ArchList, GlobalData) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\GenFds.py", line 541, in GenFfsMakefile INFO - FdObj.GenFd(Flag=True) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\Fd.py", line 131, in GenFd INFO - RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFdsGlobalVariable.ImageBinDict, self.DefineVarDict, Flag=Flag) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\Region.py", line 134, in AddToBuffer INFO - FvObj.AddToBuffer(FvBuffer, FvBaseAddress, BlockSize, BlockNum, ErasePolarity, Flag=Flag) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\Fv.py", line 127, in AddToBuffer INFO - FileName = FfsFile.GenFfs(MacroDict, FvParentAddr=BaseAddress, IsMakefile=Flag, FvName=self.UiFvName) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\FfsInfStatement.py", line 518, in GenFfs INFO - InputSectList, InputSectAlignments = self.__GenComplexFileSection__(Rule, FvChildAddr, FvParentAddr, IsMakefile=IsMakefile) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\FfsInfStatement.py", line 969, in __GenComplexFileSection__ INFO - SectList, Align = Sect.GenSection(self.OutputPath, self.ModuleGuid, SecIndex, self.KeyStringList, self, IsMakefile = IsMakefile) INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\EfiSection.py", line 218, in GenSection INFO - GenFdsGlobalVariable.GenerateSection(OutputFile, [], 'EFI_SECTION_USER_INTERFACE', INFO - File "C:\BEA\DFCI\mu_tiano_platforms\MU_BASECORE\BaseTools\Source\Python\GenFds\GenFdsGlobalVariable.py", line 466, in GenerateSection INFO - SectionData.fromstring(Ui.encode("utf_16_le")) INFO - AttributeError: 'array.array' object has no attribute 'fromstring' Kind Regards, Shivanshi <79C90400E51C4EC6A197393CD98D0F7A.png>