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 <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>