On Apr 9, 2021, at 6:33 PM, Bret Barkelew via groups.io <bret.barkelew=microsoft.com@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 <bret.barkelew=microsoft.com@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>
 
 
<CC6C706EF927441BBD49E964355D5AA6.png>