* New tasks can be queued with a POST to /compute/{channelid}
* Status updates can be dequeued with a POST to /compute/{channelid}/updates
* ChannelId can be any series of lowercase letters, numbers, and the characters _ and -.
* Request/response objects are declared in Api.cs.
[FYI] Joe.Kirchoff
#ROBOMERGE-SOURCE: CL 17226912 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17226933 by ben marsh in ue5-release-engine-test branch]
Now allows for a stateless API and supports work-stealing between pods (via a shared task list stored in Redis). Clients now send requests for work to be executed with messages returned through a particular channel, which can be polled for outputs.
ExecuteV2 command in HordeAgent allows exercising the new code via the command line. Now mirrors the entire input directory by default, and only takes a JSON file to describe the command to perform.
#ROBOMERGE-SOURCE: CL 17171093 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17171094 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17171079 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17171080 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17171063 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17171070 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17171062 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17171066 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17162181 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17162188 by ben marsh in ue5-release-engine-test branch]
Also fix deserialized DateTime values being treated as local times rather than UTC.
#ROBOMERGE-SOURCE: CL 17161724 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17161731 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17161703 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17161709 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17161674 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17161677 by ben marsh in ue5-release-engine-test branch]
Also moves DotNETCommon/Metadata.cs to Shared/Metadata.cs
#jira none
#rb tim.smith
#ROBOMERGE-SOURCE: CL 17116964 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17116977 by jonathan adamczewski in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17096409 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17096413 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17094351 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17094356 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17094350 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17094352 by ben marsh in ue5-release-engine-test branch]
Perforce is sometimes omitting that field which causes pre-flights to fail, and it's not used by any code right now.
#ROBOMERGE-SOURCE: CL 17087306 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17087344 by ryan hummer in ue5-release-engine-test branch]
* Improve test coverage for ActionExecutor by testing missing digest scenarios
* Raise a dedicated exception for missing digests for easier detection, primarily in tests
Previous use of ParallelTask.ForEachAsync prevented exceptions from being propagated. This caused create process exceptions to occur when the binary for an action could not be found.
#ROBOMERGE-SOURCE: CL 17067435 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17067444 by carl bystrom in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17056403 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)
[CL 17056411 by jonathan adamczewski in ue5-release-engine-test branch]
Add a -Help option that prints descriptions of global options.
(Tool mode options are not available - support for those may be added in a future CL)
Example output:
Global options:
-Help : Display this help.
-Verbose : Increase output verbosity
-VeryVerbose : Increase output verbosity more
-Log : Specify a log file location instead of the default Engine/Programs/UnrealBuildTool/Log.txt
-Timestamps : Include timestamps in the log
-FromMsBuild : Format messages for msbuild
-Progress : Write progress messages in a format that can be parsed by other programs
-NoMutex : Allow more than one instance of the program to run at once
-WaitMutex : Wait for another instance to finish and then start, rather than aborting immediately
-RemoteIni : Remote tool ini directory
-Mode= : Select tool mode. One of the following (default tool mode is "Build"):
AggregateParsedTimingInfo, Build, Clean, Deploy, Execute, GenerateClangDatabase, GenerateProjectFiles,
IOSPostBuildSync, JsonExport, ParseMsvcTimingInfo, PVSGather, QueryTargets, SetupPlatforms,
ValidatePlatforms, WriteDocumentation, WriteMetadata
-Clean : Clean build products. Equivalent to -Mode=Clean
-ProjectFiles : Generate project files based on IDE preference. Equivalent to -Mode=GenerateProjectFiles
-ProjectFileFormat= : Generate project files in specified format. May be used multiple times.
-Makefile : Generate Linux Makefile
-CMakefile : Generate project files for CMake
-QMakefile : Generate project files for QMake
-KDevelopfile : Generate project files for KDevelop
-CodeliteFiles : Generate project files for Codelite
-XCodeProjectFiles : Generate project files for XCode
-EddieProjectFiles : Generate project files for Eddie
-VSCode : Generate project files for Visual Studio Code
-VSMac : Generate project files for Visual Studio Mac
-CLion : Generate project files for CLion
-Rider : Generate project files for Rider
#jira none
#ROBOMERGE-SOURCE: CL 17018675 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17018680 by jonathan adamczewski in ue5-release-engine-test branch]
* EpicGames.Horde contains all types and functionality common to server, agent, and clients of Horde.
* EpicGames.Horde.Client contains client interfaces for calling server functionality (but not server stubs for implementing those interfaces). Together with EpicGames.Horde, this defines the public interface for Horde. Note that types are still defined within the EpicGames.Horde namespace.
* HordeCommon contains functionality common to the server and agent (eg. session/lease messaging, task data structures, etc...), but which is not exposed to clients of Horde.
EpicGames.Horde.Common contains legacy REAPI functionality and will be removed once CB-REAPI is up and running.
[FYI] Joe.Kirchoff, Carl.Bystrom
#ROBOMERGE-SOURCE: CL 17012746 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17012752 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17012673 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17012674 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17012664 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17012668 by ben marsh in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 17012437 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)
[CL 17012438 by ben marsh in ue5-release-engine-test branch]