public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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


  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