Hi Mike, *re-invokes China travel excuse* I'll read through this and get back on it tomorrow. At first glance, it sounds like a substantial improvement, but it would still open up for the ability of changes to platform code to modify core behaviour in the platforms tree. But ... let me consider it a bit. It may be self-correcting.
Regards, Leif On Tue, May 17, 2016 at 05:45:32PM +0000, Kinney, Michael D wrote: > Have you had a chance to look at this yet? How about a using the > name OpenPlatforms as the name of the branch > that contains all platforms that are tracking edk2/master, but are > not required to be in edk2/master to validate > core features? > > edk2-platforms/master Tracks edk2/master > edk2-platforms/OpenPlatforms Tracks edk2/master and contains > edk2-platforms/[branch name] Branch for new platform port > or a port that uses a stable > edk2/udk release. > > Thanks, > > Mike > > > > -----Original Message----- > > From: Kinney, Michael D > > Sent: Tuesday, May 10, 2016 8:52 AM > > To: Leif Lindholm <[email protected]>; Kinney, Michael D > > <[email protected]> > > Cc: [email protected] > > Subject: RE: [edk2] [RFC] EDK2 Platforms Proposal > > > > Leif, > > > > You raise some very good concerns. I do not think edk2-platforms is > > intended to > > solve all of these, and I agree that a branch per platform can make some > > things > > much worse, especially if there are many different core overrides in > > platform > > branches. > > > > We need to consider different types of platform ports and figure out the > > right > > landing zone for each. > > > > 1) Platforms required to validate a core feature in edk2/master > > 2) Platforms that require a validated/stable release of edk2 > > 3) Platforms that are always synced with edk2/master, but do not improve > > edk2 core > > feature coverage. > > 4) Platforms that are under active initial porting efforts, have stability > > issues, or > > code quality issues. > > > > edk2/master works for (1) > > edk2-platforms/<platform branch> works for (2) and (4) > > As platforms in category (4) mature they migrate into (1), (2), or (3) > > > > We do not have a landing zone for (3). Maybe we can have a special branch > > in edk2- > > platforms that contains all the platforms in this category, so we can make > > sure > > things like common overrides and features common to many different > > platforms can be > > easily identified. This special branch can be > > auto synced to edk2/master so incompatibilities introduced by platform > > changes or > > edk2/master > > changes can be quickly identified. > > > > I am looking into a different proposal to add some tree organization to > > edk2/master. > > Part of that > > includes a landing zone for vendor specific UEFI/PI device drivers that can > > be used > > by many > > different platforms. > > > > Let's continue to refine the set of proposals here to address all of the > > important > > issues you have raised. > > > > Best regards, > > > > Mike > > > > > -----Original Message----- > > > From: Leif Lindholm [mailto:[email protected]] > > > Sent: Tuesday, May 10, 2016 3:06 AM > > > To: Kinney, Michael D <[email protected]> > > > Cc: [email protected] > > > Subject: Re: [edk2] [RFC] EDK2 Platforms Proposal > > > > > > Hi Mike, > > > > > > Apologies for delay in responding, this was a topic I wanted to leave > > > some time to think about. > > > > > > On Tue, May 03, 2016 at 04:30:36PM +0000, Kinney, Michael D wrote: > > > > Similar to edk2-staging, we also have a need to manage platforms > > > > that have been ported to edk2. Jordan has created a repository > > > > called edk2-platforms and has created a branch for the > > > > minnowboard-max that uses a validated release of the UDK 2015 for > > > > the dependent packages: > > > > > > > > https://github.com/tianocore/edk2-platforms > > > > > > > > https://github.com/tianocore/edk2-platforms/tree/minnowboard-max-udk2015 > > > > > > > > Instead of creating a branch per feature in edk2-staging, the > > > > proposal is to create a branch per platform in edk2-platforms. The > > > > maintainer(s) that create and support a platform branch can decide > > > > if the platform is synced to edk2/master for dependent packages, or > > > > uses a stable release of the edk2 for dependent packages. > > > > > > > > This proposal provides an area for platform development so we can > > > > minimize the number of platforms that are included in edk2/master. > > > > It is important to keep some platforms in edk2/master so we can use > > > > those platforms to validate features in non-platform packages in > > > > edk2/master. If a new platform does not add feature coverage to > > > > edk2/master, then a new edk2-platforms branch would be recommended. > > > > > > > > Please review the proposal below for edk2-platforms. > > > > > > > > If this proposal is accepted, then a review of the platform in > > > > edk2/master can Be done to see if any of them should be moved to > > > > branches in edk2-platforms. > > > > > > First of all, let me reiterate - I very much want to see more public > > > platform code. To the extent this helps that happen, I am a strong > > > supporter. > > > > > > However, this proposal does not really address the issues I've been > > > pursuing, and am currently staging in my OpenPlatformPkg tree: > > > - The ability to see when a core change breaks some/all platform > > > ports. > > > - The ability to easily spot common code that should be turned into > > > core libraries. > > > - The ability to easily spot near-identical local overrides to > > > common libraries that should turn into options in an existing core > > > library. > > > - The ability to share drivers for common components between different > > > platforms, benefitting from feature additions and bugfixes. > > > > > > It may not be intending to do this, which is fine, but I'd like to > > > share a few warnings - seen both in Linaro's Linux kernel work and in > > > Linaro's UEFI work when the "platform feature branch" approach was > > > used (also try an Internet search for "vendor kernels"): > > > - Keeping each platform port in a separate branch will inevitably lead > > > to incompatible changes to core components. > > > - Some of these changes will be fundamentally incompatible with > > > other platforms, because they were made in complete isolation from > > > those other platforms. > > > - Mandating that all ports are based on a UDK version reduces the > > > scope of these incompatibilities, but ports will inevitably want > > > access to newer features that what is provided in UDK, so will > > > cherry-pick ... and then some will change that. > > > - But EDK2 has reasonably high churn on internal interfaces, and > > > taking the step from one UDK to the next could mean a > > > substantial amount of work at once, instead of progressively > > > adjusting to core changes. (Acknowledging that this may well be > > > preferable for some.) > > > - Preventing this would cause higher maintainer overhead than > > > letting the platforms into the main tree. > > > > > > So I guess my main question is - should this be seen as a complement > > > to what I am looking for, or should I write an alternative proposal > > > trying to incorporate the use-cases this one covers as well as the > > > ones I am looking for? > > > > > > Regards, > > > > > > Leif > > > > > > > <proposal> > > > > > > > > > > > > > > > > Problem statement > > > > ================= > > > > Need place on tianocore.org where platforms can be maintained by the > > > > EDK II > > > > community. This serves several purposes: > > > > > > > > * Encourage more platforms sources to be shared earlier in the > > > > development process > > > > * Allow platform sources to be shared that may not yet meet all edk2 > > > > required quality criteria > > > > * Allow platform source to be shared so the EDK II community may > > > > choose to help finish and validate > > > > * Allow more platforms to be used as part of the edk2 validation and > > > > release cycle. > > > > * Not intended to be used for bug fixes. > > > > > > > > > > > > Proposal > > > > ======== > > > > 1) Create a new repo called edk2-platforms > > > > > > > > a) edk2-platforms is a fork of edk2 > > > > > > > > b) edk2-platforms/master tracks edk2/master > > > > > > > > > > > > 2) edk2-platforms discussions can use the existing edk2-devel > > > > mailing list for design/patch/test. > > > > > > > > Use the following style for discussion of a platform branch in > > > > edk2-platforms repo. > > > > > > > > [platforms/branch]: Subject > > > > > > > > > > > > 3) All commits to edk2-platforms must follow same edk2 rules > > > > (e.g. Tiano Contributor's Agreement) > > > > > > > > > > > > 4) Process to add a new platform to edk2-platforms > > > > > > > > a) Maintainer sends patch email to edk2-devel mailing list > > > > announcing the creation of a new platform branch in > > > > edk2-platforms with Readme.MD. Readme.MD is in root of > > > > platform branch with summary, owners, status, build > > > > instructions, target update instructions, OS compatibility, > > > > known issues/limitations, links to related materials, and > > > > anything else a developer would need to use the platform > > > > branch. > > > > > > > > b) Maintainer creates platform branch in edk2-platforms > > > > > > > > c) Maintainer is responsible syncing platform to edk2/master or > > > > supported edk2 branch. > > > > > > > > > > > > 5) Process to update sources in feature branch > > > > > > > > a) Commit message subject format: > > > > > > > > [platforms/branch PATCH]: Package/Module: Subject > > > > > > > > b) Directly commit changes to platform branch or if community > > > > review is desired, then use edk2-devel review process. > > > > > > > > > > > > 7) Process to remove an edk2-platforms branch > > > > > > > > a) Stewards may periodically review of platform branches in > > > > edk2-platforms (once a quarter?) > > > > > > > > b) If no activity for extended period of time and platform is > > > > not being maintained and is no longer functional then > > > > stewards send email to edk2-devel to request deletion of > > > > platform branch. > > > > > > > > c) If no objections from EDK II community, then platform branch > > > > is deleted and archived at > > > > > > > > https://github.com/tianocore/edk2-archive. > > > > > > > > > > > > 8) How to evaluate a platform in edk2-platforms > > > > > > > > a) Clone edk2-platforms/[branch name] > > > > > > > > b) Following instructions in Readme.MD to build firmware and > > > > update target platform > > > > > > > > > > > > </proposal> > > > > _______________________________________________ > > > > edk2-devel mailing list > > > > [email protected] > > > > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

