Hi Mike,

On Thu, Sep 22, 2016 at 08:54:50PM +0000, Kinney, Michael D wrote:
> Hello,
> 
> 
> 
> Here is the V2 version of the proposal for the edk2-platforms repo.

I'm happy with the proposal in this state, but have a few suggested
updates (mostly to clarify that, long term, we expect most platforms
to exist in master) and a small suggested addition.

> Changes from V1:
> 
> ================
> 
> * edk2-platform is not a fork of edk2.
> 
> * edk2-platforms branches contain CPU, Chipset, SoC, and platform specific
> 
>   packages
> 
> * edk2-plaforms/master contains all open platforms that are synced with
> 
>   edk2/master.
> 
> * Each edk2-platforms branch may support many platforms (not just one)
> 
> * Use PACKAGES_PATH to do builds using packages from multiple repositories
> 
> * Update edk2-platforms branch naming to clearly identify platforms that
> 
>   are considered stable and platforms that are under active development.
> 
> * edk2 developers may be required to verify platforms in edk2-platforms
> 
>   builds as part of test criteria.  Especially platforms that are intended
> 
>   to be used with edk2/master in edk2-platforms/stable-* branches.
> 
> 
> 
> =================
> 
> 
> 
> 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 or set of platforms
> 
> in edk2-platforms.  The maintainer(s) that create and support a
> 
> platform branch can decide if the platform uses 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 an edk2-platforms branch would be recommended.

Suggest: ", then edk2-platforms would be recommended.".

> 
> 
> Please review the proposal below for edk2-platforms.
> 
> 
> 
> If this proposal is accepted, then a review of the platforms in
> 
> edk2/master can be done to see if any of them should be moved to
> 
> branches in edk2-platforms.

Suggest: "should be moved to edk2-platforms.".
> 
> 
> 
> <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.

Does this final point still apply, now we're going to be using
PACKAGES_PATH rather than keep rebasing on top of edk2/master?

> 
> 
> 
> Proposal
> 
> ========
> 
> 1) Create a new repo called edk2-platforms
> 
>     a) The default branch edk2-platforms/master contains all open
> 
>        platforms that are actively validated against the packages
> 
>        in edk2/master.
> 
>     b) The intent is for packages in edk2-platforms to be CPU, Chipset,
> 
>        SoC, or platform specific.  Drivers that are CPU arch and platform
> 
>        agnostic should be put into the edk2 repo.
> 
> 
> 
> 2) edk2-platforms discussions use the edk2-devel mailing list
> 
>    for design/patch/test using 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 rules use for
> 
>    commits to edk2 (e.g. Tiano Contributor's Agreement)
> 
> 
> 
> 4) Process to add a new branch to edk2-platforms
> 
> 
> 
>      a) Maintainer sends patch email to edk2-devel mailing list
> 
>         announcing the creation of a new branch in edk2-platforms
> 
>         with Readme.MD.  Readme.MD must be in root of branch with
> 
>         summary, owners, status, build instructions, target update
> 
>         instructions, OS compatibility, known issues/limitations,
> 
>         links to related materials, and anything else a developer
> 
>         needs to use platform(s) in that branch.
> 
> 
> 
>     b) Readme.MD must provide the PACKAGES_PATH setting required to
> 
>         build along with the branch names of other repos that platform
> 
>         requires.  This allows a platform developer(s) to use packages
> 
>         from edk2/master or to use packages from a validates UDK release

'validates' -> 'validated'

> 
>         (e.g. edk2/UDK2015).
> 
> 
> 
>      c) Maintainer creates branch with Readme.MD in edk2-platforms
> 
> 
> 
>      d) An edk2-platforms branch for platforms under developer use the

'under development'? 

>         following branch naming convention:
> 
>           edk2-platforms/devel-*
> 
> 
> 
>      e) An edk2-platforms branch for stable platforms use the following
> 
>         branch naming convention:
> 
> 
> 
>           edk2-platforms/stable-*
> 
> 

Do we need a:
---
X) Process to add platform to master?
   a) Maintainer ensures any code conflicts are resolved and merged to
      edk2-platforms/master.
      
   b) Maintainer sends email request to edk2-devel mailing list
      announcing intent to integrate a devel-* branch into master.

   c) Platform is reviewed for maturity, and merged to master when
      ready.

How would we do about Readme.MD on master?
Should it be something added to a common Readme.MD for all platforms
(sounds like it would expload), or should we simply make it move to
the platform-specific directory?
---

> 5) Process to update sources in edk2-platforms branch
> 
> 
> 
>      a) Commit message subject format:
> 
> 
> 
>           [platforms/branch PATCH]: Package/Module: Subject

Apologies for the late bikeshedding, but could we do this:
[PATCH][platforms/branch]
instead?
To reduce command line tedium with git format-patch.

> 
> 
>      b) Directly commit changes to branch or if community review is desired,
> 
>         use edk2-devel review process.
> 
> 
> 
> 7) Process to remove an edk2-platforms branch
> 
> 
> 
>      a) Stewards may periodically review of branches in edk2-platforms
> 
>         (once a quarter?)
> 
> 
> 
>      b) If no activity on a branch for extended period of time and the branch
> 
>         is not being maintained and is no longer functional then stewards
> 
>         send email to edk2-devel to request deletion of edk2-platforms branch.
> 
> 
> 
>      c) If no objections from EDK II community, then 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

Question again about Readme.MD for master branch.

Regards,

Leif

> 
> 
> </proposal>
> 
> 
> 
> Best regards,
> 
> 
> 
> Mike
> 
> 
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to