Re: [RFC] BaseTools/Source/Python as a standalone python package in independent repo

Laszlo Ersek

On 04/29/20 02:33, Matthew Carlson via wrote:

Versioning and Dependencies:
To minimize the dependency challenges and "bisectability" I would suggest we leverage the versioning capabilities within pip and repo tagging. With versioning you have lots of options as you can lock to a specific version which requires an update each time or you can use some sort of floating version within the tuple of version (xx.yy.zz). These two tools can make this pretty flexible.

In a scenario of DEC or INF syntax change, the suggested workflow would be:
1. Create the issue for basetools
2. Update basetools python
3. Write the unit test that shows it works as expected
4. Check in and make a release
5. Update edk2 pip-requirements.txt to require at least this new version. This gives you the tracking necessary to align with the tools.
6. Use this new feature in the edk2 fw code.
Here's an example why the above procedure (i.e., strict & lock-step
versioning) is important:

When looking at a particular commit in edk2, for example for backporting
purposes, or else when looking at the whole edk2 tree *at* a particular
commit, it must be clear to the reader what basetools *state* was able
to build that commit / that tree, at the time. Because then the reader
will also be able to either backport the necessary basetools patches
too, or else (perhaps more simply) upgrade their separate basetools
component to that particular version.

So, I agree with the suggested workflow, I just wanted to emphasize how
important it is.


Join to automatically receive all group messages.