public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: Sean Brogan <spbrogan@outlook.com>, devel@edk2.groups.io
Cc: "Ard Biesheuvel" <ard.biesheuvel@arm.com>,
	"James Bottomley" <jejb@linux.ibm.com>,
	"Jordan Justen" <jordan.l.justen@intel.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Tom Lendacky" <thomas.lendacky@amd.com>,
	"Leif Lindholm (Nuvia address)" <leif@nuviainc.com>
Subject: Re: [edk2-devel] [PATCH 1/2] OvmfPkg: start using the ECC plugin exception list
Date: Fri, 4 Dec 2020 16:22:09 +0100	[thread overview]
Message-ID: <b19e2a61-61f3-395e-1403-84216931b556@redhat.com> (raw)
In-Reply-To: <DM6PR07MB7180C5FFD76E025422F1EA7BC8F10@DM6PR07MB7180.namprd07.prod.outlook.com>

On 12/04/20 05:05, Sean Brogan wrote:
> 3 things
> 
> 1. I would support disabling any ci plugins that can be destructive to
> your local environment.  I think EccCheck needs to be re-evaluated
> regarding how it gets the change set.  What it does now is not a pattern
> I have encouraged and although i understand the desire (for server ci) i
> think it has caused more trouble than it is worth.

Thanks. To be honest, I called ECC "fascist", when I went over the
report it generated. It's insane. It makes me want to quit programming.
And I'm the reviewer guy that forces contributors to conform to the
coding style in minute detail. ECC is unbearable.

> 
> 2. Not sure if license check has same problem or not.

My understanding is that, for a while now, it has been technically
impossible to contribute code under any other license than
BSD-2-Clause-Patent. I think Leif had some serious thoughts that the
limitation wasn't only technical but even legal. I forget the details.

> 
> 
> 
> On 12/3/2020 7:21 PM, Laszlo Ersek wrote:
>> In the recent past, ECC has wreaked havoc at least twice:
>>
>> - rejected Tom Lendacky's perfectly valid and clean code:
>>
>>    https://bugzilla.tianocore.org/show_bug.cgi?id=3008#c5
>>    https://edk2.groups.io/g/devel/message/67097
>>
>> - rejected James Bottomley's series for bogus reasons:
>>
>>    https://bugzilla.tianocore.org/show_bug.cgi?id=3077#c4
>>    https://edk2.groups.io/g/devel/message/68302
>>
>> There isn't capacity to improve ECC:
>>
>> - Liming filed an ECC bug about the first case noted above, but it has
>>    received no feedback in 25 days (as of this writing):
>>
>>    https://bugzilla.tianocore.org/show_bug.cgi?id=3060
>>
>> And running CI or ECC on developer machines is difficult:
>>
>> - I had to set up a separate VM for it,
>>
>> - Shenglei gave Windows-based usage instructions only,
>>
>>    https://edk2.groups.io/g/devel/message/61966
>>
>> - experimenting with a CI outside of a VM is somewhat risky:
>>
>>    https://github.com/tianocore/edk2-pytool-extensions/issues/231
> 
> 3. Running CI locally should not be "somewhat risky".  More work needs
> to be done to identify the root cause of the above behavior but my guess
> is that it has to do with EccCheck and nothing to do with
> pytool-extensions.

Sorry, I guess I mixed up my references a little bit. I consider running
binaries downloaded from the internet risky (except from the official
repos of my Linux distro(s)). But that's indeed a different topic and I
shouldn't have generalized. Sorry about that.

Thanks for commenting!
Laszlo

> 
> 
>>
>> ECC should be considered an experimental tool; I agreed to its enablement
>> in CI specifically because we were offered an exception list:
>>
>>    https://edk2.groups.io/g/devel/message/60961
>>   
>> https://www.redhat.com/archives/edk2-devel-archive/2020-June/msg00473.html
>>
>>
>> The github.com-based pull request process is already very inefficient for
>> both contributors and maintainers; it's time to put the ECC exception
>> list
>> to use.
>>
>> Now, I've tried adding those error codes that were reported against
>> James's series (after evaluating each entry in the report at
>> <https://dev.azure.com/tianocore/11ea4a10-ac9f-4e5f-8b13-7def1f19d478/_apis/build/builds/16071/logs/122>),
>>
>> namely 4001, 4002, 5007, 8001, 8004, 8005. However, to my horror,
>> "EccCheck.ExceptionList" only supports the following format:
>>
>>    "<ErrorID>", "<KeyWord>", "<ErrorID>", "<KeyWord>", ...
>>
>> where each pair binds a particular error ID to a particular "offending"
>> identifier, such as C variable name. There is no wildcard support, so
>> it's
>> impossible to disable entire classes of ECC reports.
>>
>> Therefore, I have to use "EccCheck.IgnoreFiles". It also doesn't support
>> the "." subdirectory or the "*" wildcard. But, with some sweat, I can
>> still use it to disable ECC for all of OvmfPkg.
>>
>> Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>
>> Cc: James Bottomley <jejb@linux.ibm.com>
>> Cc: Jordan Justen <jordan.l.justen@intel.com>
>> Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
>> Cc: Tom Lendacky <thomas.lendacky@amd.com>
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>>   OvmfPkg/OvmfPkg.ci.yaml | 49 ++++++++++++++++++++
>>   1 file changed, 49 insertions(+)
>>
>> diff --git a/OvmfPkg/OvmfPkg.ci.yaml b/OvmfPkg/OvmfPkg.ci.yaml
>> index 3128aefe9ed1..68d2de704d19 100644
>> --- a/OvmfPkg/OvmfPkg.ci.yaml
>> +++ b/OvmfPkg/OvmfPkg.ci.yaml
>> @@ -22,6 +22,55 @@
>>           ],
>>           ## Both file path and directory path are accepted.
>>           "IgnoreFiles": [
>> +            "8254TimerDxe",
>> +            "8259InterruptControllerDxe",
>> +            "AcpiPlatformDxe",
>> +            "AcpiTables",
>> +            "AmdSev",
>> +            "AmdSevDxe",
>> +            "Bhyve",
>> +            "CompatImageLoaderDxe",
>> +            "CpuHotplugSmm",
>> +            "CpuS3DataDxe",
>> +            "Csm",
>> +            "EmuVariableFvbRuntimeDxe",
>> +            "EnrollDefaultKeys",
>> +            "Include",
>> +            "IncompatiblePciDeviceSupportDxe",
>> +            "IoMmuDxe",
>> +            "Library",
>> +            "LinuxInitrdDynamicShellCommand",
>> +            "LsiScsiDxe",
>> +            "MptScsiDxe",
>> +            "OvmfXenElfHeaderGenerator.c",
>> +            "PciHotPlugInitDxe",
>> +            "PlatformDxe",
>> +            "PlatformPei",
>> +            "PvScsiDxe",
>> +            "QemuFlashFvbServicesRuntimeDxe",
>> +            "QemuKernelLoaderFsDxe",
>> +            "QemuRamfbDxe",
>> +            "QemuVideoDxe",
>> +            "SataControllerDxe",
>> +            "Sec",
>> +            "SioBusDxe",
>> +            "SmbiosPlatformDxe",
>> +            "SmmAccess",
>> +            "SmmControl2Dxe",
>> +            "Tcg",
>> +            "Virtio10Dxe",
>> +            "VirtioBlkDxe",
>> +            "VirtioGpuDxe",
>> +            "VirtioNetDxe",
>> +            "VirtioPciDeviceDxe",
>> +            "VirtioRngDxe",
>> +            "VirtioScsiDxe",
>> +            "XenBusDxe",
>> +            "XenIoPciDxe",
>> +            "XenIoPvhDxe",
>> +            "XenPlatformPei",
>> +            "XenPvBlkDxe",
>> +            "XenTimerDxe"
>>           ]
>>       },
>>       ## options defined .pytool/Plugin/CompilerPlugin
>>
> 
> Thanks
> Sean
> 


  reply	other threads:[~2020-12-04 15:22 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-04  3:21 [PATCH 0/2] OvmfPkg: CI tweaks Laszlo Ersek
2020-12-04  3:21 ` [PATCH 1/2] OvmfPkg: start using the ECC plugin exception list Laszlo Ersek
2020-12-04  4:05   ` [edk2-devel] " Sean
2020-12-04 15:22     ` Laszlo Ersek [this message]
2020-12-04 15:36       ` Laszlo Ersek
2020-12-04 16:05         ` Ard Biesheuvel
2020-12-08  1:56           ` Laszlo Ersek
2020-12-08  2:10             ` James Bottomley
2020-12-08  7:05             ` Ard Biesheuvel
2020-12-08 18:45             ` Sean
2020-12-10  8:23               ` Laszlo Ersek
2020-12-04 18:28         ` Sean
2020-12-08  1:46           ` Laszlo Ersek
2020-12-04  3:21 ` [PATCH 2/2] OvmfPkg: add "gGrubFileGuid=Grub" to GuidCheck.IgnoreDuplicates Laszlo Ersek
2020-12-04 12:42   ` Philippe Mathieu-Daudé

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=b19e2a61-61f3-395e-1403-84216931b556@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