TianoCore Community Meeting Minutes
An HTML version of these minutes is available here:
April was a busy month for presentations on UEFI, TianoCore, and open source firmware in general. Brian Richardson gave a talk on HTTPS Boot at the openSUSE Summit in Nashville.
Also, both Brian and Stephano worked a booth at SUSEcon extolling the virtues of HTTPS Boot and explaining how UDP and TFTP are probably not the best idea for network booting.
Mark Doran and Stephano gave a talk about building communities around open source firmware at the UEFI Plugfest in Seattle WA. The event itself happens yearly and only costs $100 so I would highly recommend folks attend if they can. Videos will be posted soon, and the slides from this years talks are already posted.
There was a firmware track at this years LinuxFest Northwest. All of the presentations can be found online. Here are the firmware sessions:
Stephano Cetola - UEFI Boot for Mere Mortals
Paul English - Why Open Source is Critical For Platform Firmware
Lee Fisher - Defending Out-of-Band Management Attack
Harry Hsiung - Network Boot in a Zero-Trust Environment
Vincent Zimmer - Open-Source Host Firmware Directions
Let There Be Continuous Integration
We have begun planning on a CI system, starting small, and building as with a focus on modularity and simplicity. We are starting by building out python scripts, with inspiration from work done my Microsoft, that would allow us to easily spin up a build on a given platform, using a specific toolchain, for a specific target. Once that is completed we will begin to look at different unit/functional tests and how we can best keep them platform agnostic. We'd like our system to be portable, such that folks wishing to use various CI systems (jenkins, travis, teamcity, buildbot, etc) can all take advantage of our tooling. The tests likewise should be portable rather than tied to a specific framework.
In effect, we are beginning by considering what our user interface will look like, then considering how that interface can be plugged into existing systems that community members are currently using to build and test internally. Mike Kinney will be leading this effort, and he will reach out to community members who have shown interest and experience with CI systems for advice and perhaps some help. We will also be sending out an RFC to determine what sorts of tests people would like to see initially.
LTS Stable Tags: How and When
Since we have moved from UDK branches to stable tags, there has been consideration around supporting these tags long term, and how to best back-port fixes. The main questions are "how" and "when". The when can perhaps be simple, and can exist organically as groups within the community find tags they need to support long-term, and hence do the back-porting that they need.
For the "how", we would like to make it easier to determine which patches have been submitted specifically to fix bugs. One way this could be done is with groups.io "hashtags". This would make it easy to filter patches, further filter those patches by bug fixes, and perhaps even specify which stable tag the patch is relating to. By using groups.io "hashtags", we allow both simple web filtering using the groups.io GUI, as well as possible filtering by custom scripts (e.g. in a continuous integration system). An example of these hashtags in an email patch might be:
[edk2-devel] [PATCH] AwesomePkg/CoolFixPei: fix PEI to be more cool
Detailed description of patch such that folks in 6 years will understand what
I am changing despite my bewildering code.
#patch [#bug 1432] #edk2-stable201811
The use of hashtags could be extended to flag bug fixes that are #critical or are related to specific #products or #platforms. We will do some testing on this concept to see if it indeed could be a viable solution, however suggestions for other solutions are welcomed.
EDK II repo rework
-libc has been moved out, along with AppPkg
-Quark, MinnowMax / Turbot, and BeagleBoard are being moved out to edk2-platforms
-OptionRomPkg, seeing as how it is an example, will be moved out to edk2-platforms
-coreboot packages are being replaced by UefiPayloadPkg
-Nt32Pkg will be replaced by the EmulatorPkg, which supports running EDK2 under any OS (Linux, macOS, or Windows)
Current version of Python available in EDK II are 2.7.2 and 2.7.10 which will all be unsupported at the end of 2019. We don't have a Python 3 port nor any plans to move it forward. Stephano will be sending out an RFC to determine if MicroPython is, as we assume it to be, the best way to move forward. Since we already have a proof of concept port of MicroPython in the MicroPythonTestFramework, we (Stephano) will be drawing up a set of tasks needed to extract the MP port and successfully upstream the parts that make sense.