Build Graph failed Macro expansion only emits a warning

When build graph macro expansion fails due to missing required arguments, only a warning is emitted, which allows the graph to still execute.

This can be potentially quite dangerous, as the macro could have provided critical functionality without necessarily being a requirement for a well defined graph. For example, the macro could have provided contextually important overrides to certain properties, or validation of certain properties to prevent an unsafe action later in the graph.

On the surface it seems like these could just be bumped up to errors instead, but I wanted to see if there was any missing context as to why this is a warning before putting up a PR.

Thanks!

Steps to Reproduce
`runuat.bat buildgraph -script=MacroExample.xml -target=Example`

Hello! I’ve spoken with the team about this, and their position is that a change like this would likely only go into UE6, not UE5.

However, for UE6, our focus is on writing BuildGraph in C#, so a breaking change to the XML parsing might not be desired.

I can’t share any concrete timelines, unfortunately, but we are actively working in this area and aim to have C# BuildGraph in use across the board for the UE6 release.

I would recommend holding off until UE6 Early Access to see where the progress stands, so that we can work to ensure all our current use cases are covered.

i think i didnt attach the file correctly. second attempt

MacroExample.xml(376 Bytes)

Thanks for the response!

Typically we try to upstream changes like this to prevent future merge conflicts. It sounds like with the focus on C# build graph, that the changes us a major overhaul on your part to XML build graph is unlikely, so the conflict risk is low for us either way.

On the topic of C# build graph, is there anything you can share regarding the plans there? Specifically, whether there are there major architectural changes coming to it. We were considering adopting some usage of it, but even if we base that off of UE6-main, we’d like to understand how much of a risk we’re taking on there. I can make a new thread for this if you prefer.