==========================
MAJOR FEATURES + CHANGES
==========================
Change 2718441 on 2015/10/06 by Ben.Marsh@Ben.Marsh_T3245_Stream
Allow nodes to be added with an "explicit" frequency, meaning that they'll only be part of manually triggered builds (not CIS).
Change 2718698 on 2015/10/06 by Ben.Marsh@Ben.Marsh_T3245_Stream
Add a type of node that can execute an arbitrary sequence of tasks, and allow constructing graphs of such nodes from an XML file.
Change 2723013 on 2015/10/09 by Ben.Marsh@Ben.Marsh_T3245_Stream
Small utility to quickly capture a workspace, or delete files to restore the workspace to a previously captured state (and output a p4 sync list to restore it)
Change 2744521 on 2015/10/28 by Matthew.Griffin@Matthew.Griffin_G5772_BuildStream
Adding config entries to determine which platforms/configurations are available
Currently only written out as part of the Rocket Build process but could be done elsewhere for other types of installed build.
A near identical singleton class is used in both C++ and C# to load the config section and check whether configuration/platform combinations are valid.
Change 2773723 on 2015/11/19 by Ben.Marsh@Ben.Marsh_T3245_Stream
Copying UnrealGameSync into Engine/Source/Programs.
Change 2773914 on 2015/11/19 by Ben.Marsh@Ben.Marsh_T3245_Stream
PR #1687: [GitDependencies] New feature: ignore file support (.gitdepsignore) (Contributed by nbjk667)
Change 2775317 on 2015/11/20 by Ben.Marsh@Ben.Marsh_T3245_Stream
Add a -listtps option to UBT, which will find all the TPS files in any directory that's compiled into a target.
Change 2780832 on 2015/11/25 by Ben.Marsh@Ben.Marsh_T3245_Stream
Allow compiling a single file in UBT. Pass -singlefile=<Path> on command line to UBT to use.
Change 2781071 on 2015/11/25 by Ben.Marsh@Ben.Marsh_T3245_Stream
Precompile all valid engine modules for Rocket by default. Modules may set the PrecompileForTargets field to control which configurations they should be compiled for. Modules which currently fail to compile have this set to
PrecompileTargetsType.None.
#codereview Matthew.Griffin
Change 2784469 on 2015/12/01 by Matthew.Griffin@Matthew.Griffin_G5772_BuildStream
Added -FastPDB commandline parameter for UBT, so that we can make use of the /DEBUG:FASTLINK option in VS2015
Change 2784722 on 2015/12/01 by Matthew.Griffin@Matthew.Griffin_G5772_BuildStream
Made -FastPDB option part of BuildConfiguration instead of checking commandline at each place it's used. Also added option to override if someone doesn't want it automatically added to their project files.
Change 2787501 on 2015/12/02 by Ben.Marsh@Ben.Marsh_T3245_Stream
Restore change to gather VC environment directly from registry.
#lockdown Nick.Penwarden
[CL 2790002 by Ben Marsh in Main branch]
GUBP High Level
* Temp Storage is zipped into a single archive per node now. This results in ~75% reduction in temp storage usage and network traffic, not to mention the per-file overhead.
* Temp Storage is in P:\\Builds\\{Game}\\TmpStore instead of P:\\Builds\\{Game}\\GUBP (to facilitate easier cleaning of this new structure).
* Temp Storage nodes are in subdirectories of {Branch}\\{CL}\\{NodeName} now instead of a flat directory structure that was hard to manually sift through.
GUBP Mid Level
* Removed -Store= and -StoreSuffix= test parameters.
* Added -NoZipTempStorage parameter to turn off temp storage zipping if necessary.
* Created GUBP.JobInfo class that collects info about the job as a whole to be passed around by GUBP. Mostly used by any code that need to interact with TempStorage.
* Created TempStorageNodeInfo that describes the necessary parameters to find the temp storage location for a node.
* Fully XML commented TempStorage.cs, and commented internals all major functions.
* Added a bunch of telemetry data for storing, retrieving, and cleaning shared temp storage.
UAT Mid Level
* Fixed a bug in Ionic.Zip that make ExtractAll() not work on Mono, checked in new DLLs.
* Added UAT parameter -UseLocalBuildStorage that allows you to test build storage stuff completely locally. Writes to Engine\\Saved\\LocalBuilds\\...
GUBP Low Level
* Refactored some GUBP startup code so temp vars would be limited in scope. Makes it easier to track the impact of refactoring these things.
* CullNodesForPreflight is only called for preflight builds.
* Refactored TempStorage.FindTempStorageManifests to use new TmpStore structure and harden the brittle string/path parsing it was doing. See the new TempStorage FindMatchingSharedTempStorageNodeCLs().
* Refactored TempStorage Saving and Loading to use XDocument instead of older XmlDocument. Removed a bunch of redundant checks.
* Use StripBaseDirectory and MakeRerootedFilePath to remove the brittle directory manipulation code. Directories no longer require a '/' at the end.
* Removed a few redundant caching layers in cleaning temp storage that try to ensure we don't clean a folder twice. None of them were necessary.
* Removed unused single-threaded copy code from temp storage.
* Updated Temp Storage unit test, and fully commented the logic behind it.
UAT Low Level
* UAT top level exception handler is now a single log line now to help parsers find the error.
* Removed several uses of FormatException as it doesn't display the entire exception chain, and is not as good as the default exception formatter.
* Removed ExceptionToString as it used FormatException, which was not a good precedent.
* Fixed several cases of exception propagation that was not properly chaining the inner exception.
* Refactored ThreadedCopyFiles to use Parallel.For because it was just as fast (if not faster) and much simpler to maintain.
* Removed the suffix from Robust_FileExists_NoExceptions because it's sole purpose in life WAS to throw exceptions!
* Added a bunch of XML doc comments to CommandUtils.
* Modernized some container manipulation and iteration to use IEnumerable and extension methods more appropriately.
* Added several @todos for other minor cleanup stuff that should happen eventually.
* Fixed some uses of String.Compare to use invariant culture.
#codereview:ben.marsh
[CL 2644846 by Wes Hunt in Main branch]