[riot-notifications] [RIOT-OS/RIOT] buildsystem/CI: Use of `BOARD_INSUFFCIENT_MEMORY` becomes a maintainace burdon (#11128)

Kaspar Schleiser notifications at github.com
Fri Mar 8 18:18:38 CET 2019

> So ideally (IMHO) we should get rid of such manually maintained lists in RIOT, and e.g. let compiling or linking fail. Because, as you already pointed out, the lists are hard to maintain and once a board is on such a list it likely stays there, even if issues are fixed. 

> Again, these lists mostly serve one purpose: to make Murdock not fail and to me that's not how a CI should run.

I don't think it is that simple. The lists represent what *we* expect to succeed. In these things, it is beneficial to be explicit.

In case of the "BOARDS_INSUFFICIENT_MEMORY", if we'd come up with a way to determine whether the link failed because - well, it failed, or because of insufficient memory, and treat the latter as an "OK fail", boards would cross the line without anyone noticing. A change could increase code size so much that a couple of low end boards suddenly don't fit anymore. The currently used size determination wouldn't catch this, as it only works with completed binaries.

In case of BOARD_BLACKLIST, there are many reasons why a board might be listed there.
Failing compilation is just one of the reasons. Others are e.g., known runtime problems, ....
While compilation could eaily be cought by CI, others are not.
So we'd end up with:
- CI always failing. Unless we have a list of which compiles are "OK to fail".

This is important, as "CI succeeded" is a prerequisite for merging a PR.

- CI producing binaries that don't work at runtime and the developer knows. Would be nice to document that somewhere. Maybe in a list that both devs and CI can use?
- CI having much longer build times, because it wastes substantial amount of time building known failures.

I propose two things:

1. reduce maintenance burden. There are a couple of tries to make boards groupable, e.g., #8062 and #9081. Maybe we can have BOARD_INSUFFICIENT_MEMORY be populated by a group, e.g.,
BOARD_INSUFFICIENT_MEMORY += board_has_little_ram.

2. Report if the link would actually succeed. Thus, instead of just skipping the link if "CI_NO_LINK" is set, try, and if it *succeeds*, make that an error.

You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/notifications/attachments/20190308/57dae01d/attachment.html>

More information about the notifications mailing list