zephyr/scripts
Inaky Perez-Gonzalez 0fb7abfea5 build: script to filter known issues
This is is a proposal to have a system to filter the output of the
build (compilation, documentation, sanity check and runtime tests)
that eliminates known issues so that whoever sees the output of the
tree can note new issues being added without having to dive on
existing, known ones.

Most common user of this will be the continuous integration system, to
decide what is shown to gerrit as feedback to the user who submitted a
change.

The rationale behind having it in the tree is that if somebody submits
code that introduces a false positive (due to tool limitations) or as
an accepted (normally minor) issue to be fixed later, it can also
submit a "filter" for it without breaking CI.

For example, consider the documentation workaround in include/uart.h
(that will be reverted when this is done):

  diff --git a/include/uart.h b/include/uart.h
  index a30b211..178bd5e 100644
  --- a/include/uart.h
  +++ b/include/uart.h
  @@ -97,7 +97,7 @@ typedef void (*uart_irq_config_func_t)(struct device *port);
    * @param sys_clk_freq System clock frequency in Hz
    */
   struct uart_device_config {
  -       union __unnamed_workaround__ {
  +       union {
                  uint32_t port;
                  uint8_t *base;
                  uint32_t regs;

This introduces a harmless warning in the documentation compilation
process due to a limitation in the tools that will be fixed in future
releases. In the meantime, as they accumulate, it makes more difficult
for people to know if *they* introduced any other warnings (or
errors). The configuration in .known-issues/doc/uart.conf matches that
warning and filters it out (and only that), with enough regex glue to work
around subtle context changes (like line numbers).

The implementation is a Python script that can take the build output
and remove what is being told to ignore by a list of configuration
files, each of which contains a list of single/multiline Python
regular expressions.

Addition of said exceptions is caught by CI: it will trigger a
maintainer being included as a reviewer because the as directed by the
entry for the .known-issues in the MAINTAINERS file.

Change-Id: I7939e0726f2c505481592c3a7f5f40fa3e9c62fd
Signed-off-by: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
2016-07-01 21:53:44 +00:00
..
basic build: fix fixdep warning. 2016-02-05 20:25:31 -05:00
cross_compiler build: update xtools configurations 2016-02-05 20:25:13 -05:00
gen_idt gen_idt: correctly warn on duplicate IRQ connections 2016-03-03 10:24:25 +00:00
gen_offset_header gen_offset_header: resources leak in pTable 2016-06-24 20:46:13 +00:00
kconfig build: Fixes an issue with file permissions on windows 2016-05-14 15:55:04 +00:00
patches move qemu patch to script/patches 2016-02-05 20:15:21 -05:00
sanity_chk nios2: enable microkernel sanity checks 2016-06-30 20:56:16 +00:00
support nios2: add flashing/debug scripts 2016-06-10 15:22:40 +00:00
.gitignore expr_parser.py: simple expression language 2016-05-04 22:57:39 +00:00
build_grub.sh add script to build grub for galileo 2016-02-05 20:15:31 -05:00
check_known_checkpatch_issues.sh Change BSD-3 licenses to Apache 2 2016-02-05 20:24:29 -05:00
checkpatch.pl checkpatch: kconfig: warn about spaces instead of tabs 2016-06-21 19:50:59 +00:00
checkstack.pl First commit 2015-04-10 16:44:37 -07:00
compare_footprint compare_footprint: Python 3 compatibility 2016-03-29 11:06:01 +00:00
config First commit 2015-04-10 16:44:37 -07:00
diffconfig First commit 2015-04-10 16:44:37 -07:00
do_checkpatch.sh Change BSD-3 licenses to Apache 2 2016-02-05 20:24:29 -05:00
expr_parser.py expr_parser: support ':' operator 2016-06-02 23:10:07 +00:00
filter-known-issues.py build: script to filter known issues 2016-07-01 21:53:44 +00:00
gcc-version.sh First commit 2015-04-10 16:44:37 -07:00
headerdep.pl First commit 2015-04-10 16:44:37 -07:00
Kbuild.include build: support icx llvm compiler 2016-05-03 00:02:40 +00:00
maintainer-checkpatch.bash Change BSD-3 licenses to Apache 2 2016-02-05 20:24:29 -05:00
make-ll Change BSD-3 licenses to Apache 2 2016-02-05 20:24:29 -05:00
Makefile build: remove unused linux related code 2016-02-05 20:25:15 -05:00
Makefile.build build: Add C++ support 2016-02-05 20:25:23 -05:00
Makefile.clean First commit 2015-04-10 16:44:37 -07:00
Makefile.extrawarn First commit 2015-04-10 16:44:37 -07:00
Makefile.headersinst First commit 2015-04-10 16:44:37 -07:00
Makefile.help First commit 2015-04-10 16:44:37 -07:00
Makefile.host First commit 2015-04-10 16:44:37 -07:00
Makefile.lib build: Add C++ support 2016-02-05 20:25:23 -05:00
Makefile.modbuiltin First commit 2015-04-10 16:44:37 -07:00
Makefile.toolchain.gccarmemb toolchain.gccarmemb: Add include path for newlib headers 2016-06-09 16:22:28 +00:00
Makefile.toolchain.issm build: add arc support to issm toolchain 2016-05-03 00:02:41 +00:00
Makefile.toolchain.xtools toolchain/xtools: enhance include search path to sysroot 2016-05-17 20:09:50 +00:00
Makefile.toolchain.zephyr Makefile.toolchain.zephyr: add nios2 arch 2016-04-27 21:40:18 +00:00
mkmakefile First commit 2015-04-10 16:44:37 -07:00
mksysmap First commit 2015-04-10 16:44:37 -07:00
qemu-machine-hack.py HACK: qemu: change e_machine for IAMCU binaries 2016-03-12 02:24:46 +00:00
sanitycheck nios2: set up common linker script for XIP and non-XIP 2016-06-10 15:22:41 +00:00
size_report scripts: add a script to report RAM/ROM usage 2016-05-26 15:19:15 +00:00
spelling.txt First commit 2015-04-10 16:44:37 -07:00
sysgen scripts/sysgen: Fix indentation inconsistency 2016-05-04 22:51:56 +00:00
tags.sh build: Add tags.sh to enable tagging targets 2016-02-05 20:24:36 -05:00
timestamp Change BSD-3 licenses to Apache 2 2016-02-05 20:24:29 -05:00