
On Mon, Mar 23, 2020 at 04:24:15PM +0100, Petr Štetiar wrote:
Michal Simek michal.simek@xilinx.com [2020-03-23 14:58:55]:
Hi,
Plan is to merge all of these to one shell script because most of the content in that script is very similar.
to me it all just seems as values and templates hidden inside shell script called generator. Each of this generators uses/references 1-N variables, 1-N out-of-tree dependencies and 1-N DT sections.
So instead of cooking custom shell templating engine I took different approach[1] and simply removed the shell script generator in favor of Python based templating engine, allowing for ITS dependency tracking and values directly in Make.
Lets see what is preferred.
An example of one is never enough to see if something is generic enough for everyone. Even if you can't functional-test other platforms an initial conversion will help and allow others to test. And it'll help show if the idea is or is not cleaner.
The issue which I see is that patch above is changing current behavior which means when this is applied all travis/gitlab/azure jobs will fail because none has setup this config option.
If that is desired, then in order to keep the current behavior, I see following options:
- Disable building of boards having out-of-tree dependencies on build bot/CI
- Enable BUILDBOT_BROKEN_BINARIES=y by default
- Add detection of various build bot/CI platforms and enable BUILDBOT_BROKEN_BINARIES=y by default, which then could cause further issues when one would actually run test the binaries from build bot/CI
- Include the out-of-tree dependencies (unlikely)
Cycling back here, sorry for the delay. First, you need to make CI still work. And we can't remove boards that require something else from CI as that means basically dropping all of arm64.
What is your suggestion?
There's two sides to this. First, the problem of "all of these similar but not quite the same tools" needs a generic solution. A template based tool is probably the right direction here, yes.
But second, what would it take to modify the CI jobs to pass in an empty file or whatever so they link but not function. So that a real user would have to provide a file too. And whichever of Azure, GitLab or Travis is easier for you to test / adapt for this, I can update the others once it looks clean. Thanks!