On Wed, Jun 03, 2015 at 09:50:27AM +0000, Gao, Liming wrote:
> Hi, all
>
>   Now, EDKII project Git mirror is ready in GitHub
>   
> (https://<https://github.com/tianocore>github.com/tianocore<https://github.com/tianocore>).
>  There
>   are EDKII project Repo and each package Repo. After migrate EDKII
>   from SVN to GitHub, EDKII Git Repo will be writable, EDKII SVN
>   project will become mirror. I expect to keep write access in the
>   centralized Git repo. But, EDKII project Repo (edk2) and MdePkg
>   Repo (edk2-MdePkg) includes the same source code. So, only one of
>   them will be writable. My proposal is to make Package Repo be Read
>   & Write, and update EDKII project to link each package by
>   submodule way.

This is obviously not my call, but I would strongly vote against this
solution.

> The benefit of this way is:
> 
> 1.       EDKII project is too big. After separate them, the
>          developers can just pull their used packages instead of
>          full.

Like Laszlo says, this has never been a problem in the substantially
larger Linux kernel project.

> 2.       The different packages have the different owners. After
>          separate them, the package owner can give write access for
>          the different developers.

I agree this functionality would be useful, but I think the
disadvantages of the submodule approach far outweigh the value of
this. We are already restricting who has write access to the
repository. If someone abuses this to commit things into a package
where they should not, without that maintainer's agreement, they
should be stripped of their commit privileges.

A good way of dealing with this would be by requiring an Acked-by: (or
Reveiwed-by:) from one of the package maintainers, if committing into
a package for which you are not a maintainer.
I don't know enough about the github infrastructure, but git-wise,
this should be possible to enforce with a server-side commit hook.

> 3.       Close source project can refer to EDKII packages. Those
>          project can be easily setup by git submodule.

This can be done anyway. This was how I set up OpenPlatformPkg.
Git contains all of the functionality for doing this - there is no
specific upstream repository layout required.
Just clone edk2, add the submodules you want to import, and commit.
Rebase to newer versions of edk2 and pull newer versions of submodules
as needed.

For OpenPlatformPkg, one of the reasons I decided to use the submodule
functionality was because it makes it conceptually and practically
harder to modify core code for (for example) new platform support
code. Thereby enforcing good upstreaming practice.

I think introducing similar compartmentalisation between the packages
that make up the core code itself would introduce reluctance to do any
substantial patch submissions - regardless of whether they are for
features, bugfixes or security.

Regards,

Leif

------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to