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