Laszlo,

Except for a very few platforms that are in the current edk2 repo today, 
everyone building products has to deal with this "split repo" reality.  It gets 
even harder when you account for different business units, different silicon 
partners, IBVs, ODMs, open source, closed source, secret projects, and so on.  
The reason I want to bring forth the Project Mu tools to Edk2 is that everyone 
is forced to reinvent this process and tooling every time and it doesn't work 
very well.  If edk2 continues to ignore the challenge of most downstream 
consumers it continues to lead to the results of today.  Very high cost of 
integration.  Very low quality of integrations and very few integrations into 
products (meaning products don’t get updates).  The last couple of years has 
brought significant light to the challenges of updating platform firmware and 
has shown that the majority of products don't/can't get updates resulting in 
customers not being fully protected.  

Regarding submodules and boundaries. 
I completely agree except that I believe there are numerous boundaries within a 
UEFI code base.  As mentioned above one of our goals with splitting the code 
repositories is to have all code within a repository owned/supported by a 
single entity.  Another point to splitting is attempting to get code with 
business logic separated from core/common code.  Business logic often is 
different across products and if intermixed with core logic it adds 
significantly to the cost of maintaining the product.  Along your same thinking 
these different repositories do have different development models.  Many are 
closed source and have proprietary change request process.  They all release on 
different cadences, different dependencies and very different testing 
expectations so without a framework that provides some support this leads to 
challenging and complicated integration processes. 

 

Single repo:

It is not possible for most products.  Again when integrating large amounts of 
code from numerous places all with different restrictions it is not practical 
to have a single bisectable repository with good history tracking.  Some 
entities still deliver by zip files with absolutely no src control history.  
Many entities mix open and closed source code and make hundreds/thousands of 
in-line changes.  I just don’t see a path where a product can have 1 git-merged 
repo and still be able to efficiently integrate from their upstream sources and 
track history.   

 

 

These tools are just a first step down a path to reshaping tianocore edk2 to be 
easier to consume (and update) by the ecosystem that depends on Edk2 for 
products.  These tools also have solutions for Ci builds, binary dependencies, 
plugins, testing, and other features that edk2 will need for some of the 
practical next steps. 

 

Brian,

I would really like to hear about the challenges your team faced and issues 
that caused those solutions to be unworkable.  Project Mu has and continues to 
invest a lot in testing capabilities, build automation, and finding ways to 
improve quality that scale.

 

Thanks

Sean

-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#39925): https://edk2.groups.io/g/devel/message/39925
Mute This Topic: https://groups.io/mt/31242794/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to