From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [edk2-devel] FW: Discussion: Basetools a separate repo To: Laszlo Ersek ,devel@edk2.groups.io From: "Matthew Carlson" X-Originating-Location: Everett, Washington, US (50.34.40.43) X-Originating-Platform: Windows Chrome 81 User-Agent: GROUPS.IO Web Poster MIME-Version: 1.0 Date: Wed, 22 Apr 2020 12:30:18 -0700 References: <383cfe10-81b8-63be-3ed6-a1d3cb304fb5@redhat.com> In-Reply-To: <383cfe10-81b8-63be-3ed6-a1d3cb304fb5@redhat.com> Message-ID: <328.1587583818041440437@groups.io> Content-Type: multipart/alternative; boundary="M0VT3NhPOtxp70PNyQpG" --M0VT3NhPOtxp70PNyQpG Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable I think you've got it. The version of basetools will be carried via a pip-r= equirements file. Where would "pip install -r pip-requirements.txt" *fetch* the required bas= etools version from? I believe that it has a cache internal to pip. But if you want to fetch a = basetools that hasn't been fetched before, yes, it would require a network = download. Alternatively, if you're without internet access, you can check i= t out locally and use the pip install -e. Can you please explain the effects of the "pip install -e in more detail? So I'm a little murky on how it works but I believe that it creates symlin= ks or some other mechanism to repoint the global python module (global mean= ing your pip install or virtualenv). This is something that works automatic= ally. The setup.py in the root of the repo takes care of this since it's us= ed also to package the pip module. You can do pip install -e., and it just = works (tm). Any basetools commit you check out (once it is in it's own repo= , going back a given basetools commit two years ago is unfortunately not as= easy) will work with pip install -e with not setup or configuration on you= r part as a developer. I use this whenever I work on the pytools and it wor= ks quite well. It will also show up in the BuildToolsReport and pip freeze = as being locally installed and it will tell you the git commit it is curren= tly at. I agree- I think we're trending towards very very frequent releases for ba= setools to provide high granularity. But that is pending community feedback= and the decision of the tools maintainer. It is certainly trivial to autom= ate the release pipeline in such a way that a release with every commit tha= t passes CI is easy and mostly automatic for the maintainers. Thank you for the excellent questions! -- - Matthew Carlson --M0VT3NhPOtxp70PNyQpG Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable I think you've got it. The version of basetools will be carried via a pip-r= equirements file. 

Where would "pip install -r pip-requirements.txt" *fetch* the required <= /span>basetools version fro= m?
I believe that it has a cache internal to pip. But if y= ou want to fetch a basetools that hasn't been fetched before, yes, it would= require a network download. Alternatively, if you're without internet acce= ss, you can check it out locally and use the pip install -e.

Can you please explain the effects = of the "pip install -e in more detail?
So I'm a little mur= ky on how it works but I believe that it creates symlinks or some other mec= hanism to repoint the global python module (global meaning your pip install= or virtualenv). This is something that works automatically. The setup.py i= n the root of the repo takes care of this since it's used also to package t= he pip module. You can do pip install -e., and it just works (tm). Any base= tools commit you check out (once it is in it's own repo, going back a given= basetools commit two years ago is unfortunately not as easy) will work wit= h pip install -e with not setup or configuration on your part as a develope= r. I use this whenever I work on the pytools and it works quite well. It wi= ll also show up in the BuildToolsReport and pip freeze as being locally ins= talled and it will tell you the git commit it is currently at. 
<= br />I agree- I think we're trending towards very very frequent releases fo= r basetools to provide high granularity. But that is pending community feed= back and the decision of the tools maintainer. It is certainly trivial to a= utomate the release pipeline in such a way that a release with every commit= that passes CI is easy and mostly automatic for the maintainers.

Thank you for the excellent questions!

--
- Matthew Carl= son --M0VT3NhPOtxp70PNyQpG--