From: "Laszlo Ersek" <lersek@redhat.com>
To: Michael Kubacki <michael.kubacki@outlook.com>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Leif Lindholm <leif@nuviainc.com>,
Ard Biesheuvel <ard.biesheuvel@arm.com>,
Ray Ni <ray.ni@intel.com>,
Sai Chaganty <rangasai.v.chaganty@intel.com>,
Eric Dong <eric.dong@intel.com>, Dandan Bi <dandan.bi@intel.com>,
Michael D Kinney <michael.d.kinney@intel.com>,
Kelly Steele <kelly.steele@intel.com>,
Zailiang Sun <zailiang.sun@intel.com>,
Yi Qian <yi.qian@intel.com>, Chasel Chiu <chasel.chiu@intel.com>,
Nate DeSimone <nathaniel.l.desimone@intel.com>,
Agyeman Prince <prince.agyeman@intel.com>,
Bob Feng <bob.c.feng@intel.com>,
Liming Gao <gaoliming@byosoft.com.cn>,
Abner Chang <abner.chang@hpe.com>,
Daniel Schaefer <daniel.schaefer@hpe.com>,
Gilbert Chen <gilbert.chen@hpe.com>
Subject: Re: [edk2-platforms] [RFC] Compatibility Expectations in edk2-platforms
Date: Tue, 6 Oct 2020 08:20:46 +0200 [thread overview]
Message-ID: <efe2f409-2d29-93e3-6e21-ef31f99d3afe@redhat.com> (raw)
In-Reply-To: <MWHPR07MB344057997A0214CC67473C00E90C0@MWHPR07MB3440.namprd07.prod.outlook.com>
On 10/06/20 00:36, Michael Kubacki wrote:
> Hi all,
>
> First, I'd like to clarify that I completely support the development of
> open source edk2 platforms and this observation is only intended to
> suggest an improvement for interoperability with edk2 development and
> not to detract from the great work happening in open source platforms.
>
> There's currently an expectation that edk2-platforms must build with
> edk2/master. I'd like to address the present lack of infrastructure and
> uniformity in edk2-platforms that, in my opinion, makes this perpetually
> painful.
>
> 1. Inconsistent maintainer support
> * Some packages currently do not build. Some packages are not getting
> updated often.
>
> * Example: Last week I had to update Vlv2TbltDevicePkg which did not
> build.
> * Example: Many packages only document support for old toolchains.
>
> 2. Inconsistent toolchain support
>
> To build these according to instruction, a developer needs to install
> Visual Studio dating back to 2015 (though it is 2020), and multiple
> versions of iASL, NASM, a separate host OS for Linux/Windows builds, etc.
>
> Just a few quick examples:
>
> * Vlv2TbltDevicePkg documented supported toolchains:
>
> https://github.com/tianocore/edk2-platforms/blob/master/Platform/Intel/Vlv2TbltDevicePkg/Readme.md
>
>
> * Compilers: VS13, VS15
> * Windows DDK: 3790.1830 in C:\WINDDK\3790.1830
> * Python: 3
> * iASL: iasl-win-20160527 in C:\ASL
> * NASM: 2.12.02 in C:\NASM
> * OpenSSL: Latest version in C:\Openssl (add OPENSSL_PATH)
>
> * Platform/ARM supported toolchains:
>
> https://github.com/tianocore/edk2-platforms/blob/master/Platform/ARM/Readme.md
>
>
> * OS: A 32-bit or 64-bit Linux host machine.
> * Compilers: Visual Studio is not officially supported,
> experimental support can be found here:
> [https://git.linaro.org/people/leif.lindholm/edk2.git/log/?h=aarch64-vs]
>
> * Platform/Intel (MinPlatformPkg):
> * Compilers: VS15
> * Python: 3.7.3
> * iASL compiler: latest in C:\ASL
> * NASM: latest in C:\NASM
>
> 3. Inconsistent build requirements
>
> Many builds use the "build" command. Others have script wrappers with
> unique parameters. Platforms are free to choose what they do and do not
> support and developers have to figure it out.
>
> 4. Lack of build health indicators
>
> Basically, there is no public CI across platforms. It is not clear
> exactly what platform builds are broken, what configurations they are
> broken against, how long they have been broken, etc.
>
> 6. Lack of community testing capability
>
> An edk2 contributor cannot be expected to understand the nuances of
> every platform in edk2-platforms to always make the right integration
> decision for a change in edk2. Platform objectives like performance and
> security vary and are not clearly documented. In turn, this slows
> progress in edk2. In many cases, edk2 contributors do not have a way to
> check for runtime regressions in edk2-platforms as they do not possess
> the platform they're requested to update.
>
>
> Within the purview of an individual edk2-platforms maintainer, these
> problems are relatively insignificant, largely due to the somewhat
> isolated nature of platform development. However, it does not scale well
> to edk2 contributors that need to build and test N platforms.
>
> While community alignment on build tools, toolchain support, keeping
> current, and other areas would help, I believe many of the concerns can
> be mitigated with publicly accessible CI that proves current build
> support, build health, build commands, allows developer build testing,
> and potentially even device boot regression testing for those without
> platforms on hand.
>
> Without such support, I believe platforms can only have a dependency on
> edk2 (not vice versa). Maintainers move their edk2 pointer when they
> have verified that their platform properly integrates the latest
> changes. This is relatively common in relationships with package-based
> dependencies and how this is typically handled outside edk2-platforms. I
> believe this is reasonable even with public CI in place unless
> maintainers understand and accept the challenges and additional support
> that is involved with being on edk2/master.
>
> I just wanted to give my observation of some recent challenges and see
> if the community can align on some practices to help simplify
> edk2-platforms integration and testing.
Yes, a builder CI would be nice.
Thanks,
Laszlo
next prev parent reply other threads:[~2020-10-06 6:21 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-05 22:36 [edk2-platforms] [RFC] Compatibility Expectations in edk2-platforms Michael Kubacki
2020-10-06 6:20 ` Laszlo Ersek [this message]
2020-10-07 4:19 ` [edk2-devel] " Nate DeSimone
2020-10-07 5:01 ` Michael Kubacki
2020-10-07 5:42 ` Andrew Fish
2020-10-13 2:29 ` 回复: " gaoliming
2020-10-16 0:55 ` Nate DeSimone
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=efe2f409-2d29-93e3-6e21-ef31f99d3afe@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox