==========================
MAJOR FEATURES + CHANGES
==========================
Change 2963214 on 2016/05/02 by Ben.Marsh
BuildGraph: Allow specifying optional dependencies for a node, indicating that the build products from an upstream node are desired, but should not block the node from running.
Change 2972295 on 2016/05/10 by Ben.Marsh
EC: Remove spacing in notification emails to reduce size, and help prevent gmail from truncating messages. Also allow mailing notification emails when doing a dry run, and reading stream settings from another branch.
Change 2976096 on 2016/05/12 by Ben.Marsh
EC: Store properties for the last succeeded builds, including the list of users that were notified about it.
Change 2976390 on 2016/05/12 by Ben.Marsh
EC: Add a separate line to the notification email summary with a link to edit settings, and pass the missing ec-update parameter to set the last build status.
Change 2976441 on 2016/05/12 by Ben.Marsh
UAT: Remove log file copy on builders after UAT failure. This is done outside the EC step that originally did it now.
Change 2976456 on 2016/05/12 by Ben.Marsh
BuildGraph: Catch exceptions thrown by child processes failing when building or running UAT commands, and return failure normally without dumping callstacks.
Change 2978440 on 2016/05/16 by Ben.Marsh
EC: Age out entries from the "latest builds" list after a week. There's no obvious way to tell if a node has been removed, but a periodic cleanup should keep the build notifications list in check.
Change 2979446 on 2016/05/16 by Ben.Marsh
Rename ambiguous headers which exist with the same name in different paths.
Change 2979839 on 2016/05/16 by Ben.Marsh
UE4: Renaming HTML5 SocketSubsystem files to eliminate ambiguities.
Change 2979852 on 2016/05/16 by Ben.Marsh
UE4: Use explicit relative paths for public headers in PortalServiceInterfaces modules which do not have unique names
Change 2980113 on 2016/05/17 by Ben.Marsh
UE4: Fix include paths for HTML5 SocketSubsystem files.
Change 2980117 on 2016/05/17 by Ben.Marsh
UE4: Remove reference to private PCH from Oculus common code.
Change 2980186 on 2016/05/17 by Ben.Marsh
UAT: Add a -StopOnErrors parameter to UE4Build, which is propagated to XGE.
Change 2980879 on 2016/05/17 by Ben.Marsh
UE4: Fixup Lightmass to use LightmassPCH.h rather than stdafx.h
Change 2981117 on 2016/05/17 by Ben.Marsh
Portal: Use a unique name for the Portal PCH, rather than just calling it PrivatePCH.h
Change 2981839 on 2016/05/18 by Ben.Marsh
Replace ambiguous D3D11/D3D12 includes with direct includes for the current platform.
#lockdown Nick.Penwarden
[CL 2982178 by Ben Marsh in Main branch]
* As of .NET 4.5, the default for Any CPU is to "prefer 32-bit process", and you need to explicitly turn this off to require the process be run as 64-bit.
* See http://blogs.microsoft.co.il/sasha/2012/04/04/what-anycpu-really-means-as-of-net-45-and-visual-studio-11/ for details.
* UAT will now assert when Environment.Is64BitProcess is false on startup, as we essentially require 64-bit for certain scripts, and that's how we ran it before upgrading to .NET4.5.
* Also set default optimization options for the project, which were changed at some point.
* Finally, rolled back CL#2633880, which was trying to work around the fact that UAT was running 32-bit.
#codereview:richard.fawcett, ben.marsh
[CL 2634273 by Wes Hunt in Main branch]
UEB-261 - Ensure that compiling AutomationTool in VS will compile all other Automation Projects
* Just set AutomationTool as your startup project and pass the command to execute.
* VS will build the script modules at build time, instead of every time at runtime.
* To make this happen, "UBT.exe -ProjectFiles" now generates a companion AutomationTool.csproj.References that make AutomationTool depend on all Automation modules.
* AutomationTool.exe defaults to not building script modules at runtime. Pass -compile if you want to dynamically build them.
* Without the .references file, AutomationTool will only build itself and you will need to pass -compile.
* RunUAT.bat still works that same, defaulting to runtime compilation and supporting -nocompile flag. It then passes -compile (or nothing) to AutomationTool.
Other
* All Automation projects target .Net 4.5. Some already were and had hard dependencies on them (Rocket and SyncGithub -> Octokit). Now that AutomationTool directly depends on them, everything had to use .Net 4.5.
* Decoupled logic for -NoCompile and -NoCompileEditor. The flags are still confusing, but -NoCompile is no longer linked to -NoCompileEditor.
* Had to leave in stub support in UAT for -NoCompile else RunUAT.bat passes it along and UAT complains that it doesn't understand it.
* Added a CommandUtils.Run option to support run command, but still output the run duration.
* Reduced the verbosity when UAT.proj is run from dozens of lines per module to a single Module -> Output line. It was looking like there were problems, but it was just msbuild spew.
#codereview:ben.marsh
[CL 2615060 by Wes Hunt in Main branch]