Speaking as the person who wrote the first few config tools in python,
and was happy to see the python dependency gone, I think bringing
python back in would be a mistake.

Every single python test framework I've worked with works until there
is a problem, and I then find myself having to walk back a python call
trace, because what inevitably breaks is the test framework tooling.
It's why so many projects are removing python test frameworks.

If you want a good test framework, get the linuxboot fork of
facebook's contest github.com/linuxboot/contest, written in Go, in use
at scale near you.

It's easy to let the joy of building a build system overwhelm the
actual goals of a project. coreboot is not about being a build system.
It's easy to fall into the trap of creating an ever more complex
system that is more than is needed.

On Thu, Sep 30, 2021 at 9:11 AM Patrick Georgi via coreboot
<coreboot@coreboot.org> wrote:
>
> Am Do., 30. Sept. 2021 um 17:29 Uhr schrieb Jack Rosenthal 
> <jrose...@google.com>:
>>
>> With respect to Kconfig, we (at Google) encountered a lovely build flake 
>> after the Kconfig uprev last month in the coreboot tree that took a couple 
>> of weeks to sort out and resolve. Some sort of automated validation that the 
>> code is working could have possibly helped. Of course, the C implementation 
>> of Kconfig has no tests at all. Some tests is better than nothing.
>
>
> Let me put the record straight:
>
> - The last kconfig "uprev" hasn't been a simple update the way 
> https://review.coreboot.org/c/coreboot/+/57880 is, but rebuilt the entire 
> build system integration to ease maintenance
> - That issue sprang up because before the kconfig update, we were shipping 
> prebuilt parser files (C code) while now we made bison and flex hard 
> dependencies for our build
> - Tests covering the C code wouldn't have helped, because the issue wasn't in 
> the C code
> - The issue we were facing has been an external dependency (namely: the 
> Chromium OS development environment shipping a broken version of bison(1))
> - Fixing bison in CrOS wouldn't have helped any because we have to assume 
> that other users come with the same kind of broken bison tool
> - The fix has been to ship pre-built files again to remove an external 
> dependency
>
> The alternative that we did actually consider was to add support for building 
> bison and flex to util/crossgcc/buildgcc. For three files that's sheer 
> madness, so we went back to precompiled files instead.
>
> In relation to your proposal to adopt kconfiglib: We can run into any kind of 
> external tool demonstrating weird behavior. That's true for bison (as seen 
> here) just as it can be true for arbitrary python versions (even when 
> specified to be "python 3.6+" or whatever): Linux distributions do strange 
> things to their packages, and we're not a Linux-only project, so even 
> official, unchanged, straight-from-the-server python might behave 
> unexpectedly on less well exercised platforms.
>
> The best way to reduce issues on that end is to avoid external dependencies - 
> like bison, like flex... like python.
> I'd _love_ to avoid the dependency on the host compiler as well, but that's 
> one of those "sheer madness" moments when you support a multitude of 
> operating systems on as many architectures.
>
> Introducing kconfiglib (and through it, a deep reliance on python) just 
> doesn't seem to provide comparable benefits.
>
>
> Patrick
> --
> Google Germany GmbH, ABC-Str. 19, 20354 Hamburg
> Registergericht und -nummer: Hamburg, HRB 86891, Sitz der Gesellschaft: 
> Hamburg
> Geschäftsführer: Paul Manicle, Halimah DeLaine Prado
> _______________________________________________
> coreboot mailing list -- coreboot@coreboot.org
> To unsubscribe send an email to coreboot-le...@coreboot.org
_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to