Hi Laszlo, Many topics in here. Please let me know if I missed anything.
1) I did use git filter-branch to extract the history of these packages. The script I ran is shown below. It results in a local repo in the directory edk2-filter that contains the 3 packages with complete history and the Maintainers, License, and Readme files. The step remaining is to add a remote to the new edk2-libc repo and push the master branch in edk2-filter to edk2-libc. I will add these details to the commit message. export PATHS_TO_KEEP="./AppPkg ./ StdLib ./StdLibPrivateInternalFiles ./Maintainers.txt ./License* ./Read*" git clone https://github.com/tianocore/edk2.git edk2-filter cd edk2-filter git checkout master git remote rm origin git filter-branch -f --index-filter "git rm --ignore-unmatch --cached -qr -- . && git reset -q \$GIT_COMMIT -- $PATHS_TO_KEEP" --prune-empty -- "master" 2) There are 2 reviews. 2a)One to add new edk2-libc repo and populate with complete history and update the Maintainers.txt and Readme.md file. https://github.com/mdkinney/edk2-libc https://github.com/mdkinney/edk2-libc/commits/master I think it makes sense to have a pointer to the edk2 repo from the edk2-libc repo in the Readme.md. I am ok with removing the stewards from the edk2-libc Maintainers.txt and pointing to Maintainers.txt in edk2 repo. However, I would prefer the list of packages in Maintainers.txt be limited to the packages in that repo. So the Readme.md in edk2-libc would point to Maintainers.txt in the edk2-libc repo for the packages in edk2-libc and provide a link to Maintainers.txt in edk2 repo for the stewards. 2b)Another review to remove the packages from the edk2 repo and remove those packages from Maintainers.txt and Readme.md. I did edit the commit to edk2 repo to make it smaller. I have a V2 that does the remove in the first patch, and updates Maintainers.txt and Readme.md in a second patch. 3) I understand your point about splitting actively maintained content into multiple repos and being able to use the history effectively to find the cause of a regression. The current plans for moving content are limited to the retiring packages that are no longer needed, adding the edk2-libc repo and moving content from the edk2 repo to the edk2-platforms repo. We already have a number of platforms being maintained in edk2-platforms, so we will not be making it any worse by this move. There are no plans to move the EmulatorPkg or the OvmfPkg out of the edk2 repo. 4) I agree that the unit test for OrderedCollectionLib should be in the package that defines that library class. The SafeIntLib unit tests you point to is a better style. I do not think unit tests should have a dependency on libc. I recommend we port the OrderedCollectionLib to not depend on libc and remove it from the AppPkg. I would prefer to enter a separate BZ to work on this port. Thanks, Mike > -----Original Message----- > From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] > On Behalf Of Laszlo Ersek > Sent: Tuesday, April 23, 2019 5:26 AM > To: Kinney, Michael D <michael.d.kin...@intel.com>; > devel@edk2.groups.io > Cc: Carsey, Jaben <jaben.car...@intel.com>; Daryl > McDaniel (edk2-li...@mc2research.org) <edk2- > li...@mc2research.org>; leif.lindh...@linaro.org; Andrew > Fish (af...@apple.com) <af...@apple.com> > Subject: Re: [edk2-devel] [edk2] Request to add new edk2- > libc repository > > Hello Mike, > > On 04/20/19 02:07, Kinney, Michael D wrote: > > Hello, > > > > There were no objections to the following RFC to add > > a new edk2-libc repository. > > > > https://edk2.groups.io/g/devel/message/35211 > > > > I have entered the following Feature Request Bugzilla > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=1734 > > > > I have posted a version of the edk2-libc repository for > > review at the following location. It includes all the > > history for the three packages from the edk2 > repository. > > > > https://github.com/mdkinney/edk2-libc > > > > Please review this branch. > > Can we document how this branch was extracted from the > edk2 history? (I > assume some form of branch rewriting.) > > If it's documented already, then I apologize for missing > it. > > > There is a single commit to update the Readme.md and > Maintainers.txt > > that scopes them to this new edk2-libc repository. > > So it seems that said single commit (7e1bdd700213, "edk2- > libc: Reduce > scope of Readme.md and Maintainer.txt", 2019-04-19) is > the only manually > written one (not a result of branch rewriting). Is that > right? > > ... Possible improvements for this commit: > > - Can we not duplicate the "Tianocore Stewards" section? > Perhaps we can > include a pointer to the edk2 "Maintainers.txt" file. > > - "Responsible Disclosure, Reporting Security Issues": > according to > > <https://bugzilla.tianocore.org/show_bug.cgi?id=1510#c1>, > no issues > found under StdLib will be classified as security > issues. I think we > should reflect that decision here. > > - "EDK II Releases": I think if we split off StdLib, then > "releases" > will have to be defined from scratch. (But see my > general objection > (1) below, anyway.) > > ----*---- > > I've now re-read my comments under the RFC: > > [edk2] [RFC v2] Proposal to add edk2-libc > > https://lists.01.org/pipermail/edk2-devel/2019- > January/035341.html > https://edk2.groups.io/g/devel/message/35321 > http://mid.mail-archive.com/578c1f6c-945e-2f00-0cb4- > d67f9dbdd...@redhat.com > > There I wrote, > > > I'm not sure how closely the StdLib internals are tied > to day-to-day > > changes in core edk2; that is, whether we should keep > those histories > > interlinked. That's something for the StdLib > maintainers to evaluate. > > Personally I don't remember many StdLib changes, so > there seems to be > > a genuine separation that supports the new repo idea. > > I'm not going back on those specific thoughts, but I'd > like to voice my > disagreement on two points, one general and one specific. > > (1) My general objection is that this change seems to set > a precedent > for fragmenting the edk2 repository into multiple > repositories. I'm > opposed to that. I'm *now* seeing the removal of > StdLib as an action > for establishing prior art while it doesn't hurt in > practice, and > then using it as "past evidence" in support of > splitting off more > packages and modules. While I don't particularly mind > StdLib, I > definitely object to such a *trend*. (When I last > commented on the > RFC, in January, I didn't expect it to become a > trend. I do worry > about it now.) > > (2) My specific objection is that > "Applications/OrderedCollectionTest" > is a unit test application for MdePkg's > OrderedCollectionLib class. > This application has two relevant traits: > > (2a) it depends on stdio for consuming input and > producing output > (please see the commit message on 424d84556d4d, > "AppPkg: > introduce OrderedCollectionTest", 2014-08-12), > > (2b) it must be in sync with the OrderedCollectionLib > class, and the > (main) OrderedCollectionLib instance(s), at all > times. > > Due to (2b), I don't think this application should be > removed from > the core edk2 repository (it's a validation tool). > And, wrt. (2a), I > wouldn't like to give up the option of writing test > apps / > "validators" that consume LibC -- the standard C > library APIs allow > contributors to focus on the interfaces and tasks > they actually want > to test. > > I believe that, for > "Applications/OrderedCollectionTest", it should > be "sort of" OK to split off StdLib; given that the > application > assumes that StdLib "just works", and StdLib is not > the app's main > focus. The standard C interfaces are specified > separately > (independently of edk2), and so OrderedCollectionTest > can be written > against ISO C, and we can expect users to make "some > version" of > StdLib available through PACKAGES_PATH. > > The same is not true of the > OrderedCollectionTest<->OrderedCollectionLib > connection, which is > why I think the app itself should remain in core > edk2. Perhaps we > should move the app under "MdeModulePkg/Application" > first. > > I'm not sure about the validation role of the other apps > under AppPkg. > For example, "AppPkg/Applications/Sockets" used to be > whole-sale helpful > for SNP driver testing. However, I agree it is different: > first because > we now have HTTP boot over both IPv4 and IPv6, which is a > good way to > test TCP and everything below, and second because an SNP > driver again > implements standardized interfaces (namely from the UEFI > spec), so an > external project such as the UEFI SCT can be used to > check SNP drivers. > > However, lib classes are entirely internal to edk2, and > so if an app > exists to validate instances of a given lib class, then > the app too > should stay within edk2. > > ----*---- > > BTW... it now occurs to me that once in the past you > referred to a unit > test suite for SafeIntLib: > > https://lists.01.org/pipermail/edk2-devel/2018- > February/021551.html > http://mid.mail- > archive.com/E92EE9817A31E24EB0585FDF735412F5B896820A@ORSM > SX113.amr.corp.intel.com > > In my opinion, that application too should be brought > into core edk2. It > should share a common git history with the SafeIntLib > class, and the > (main) SafeIntLib instance. > > > Sorry about the wall of text; in summary, I'd like to > preserve > OrderedCollectionTest in core edk2, and I'd like to speak > out very > clearly against setting a trend for fragmenting edk2 into > a multitude of > sub-repositories. I don't mind StdLib and AppPkg in > isolation. > > Thanks, > Laszlo > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#39430): https://edk2.groups.io/g/devel/message/39430 Mute This Topic: https://groups.io/mt/31251207/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-