Use Windows UBT on remote Mac when using remote toolchain
#jira UE-139847
#rb Josh.Adams
#preflight https://horde.devtools.epicgames.com/job/61f0e74dff453b751b51f5f5
[FYI] josh.adams
#ROBOMERGE-AUTHOR: jack.porter
#ROBOMERGE-SOURCE: CL 18735451 in //UE5/Release-5.0/... via CL 18735453 via CL 18735540
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)
[CL 18735558 by jack porter in ue5-main branch]
* Now uses a single interface for the blob and ref stores (IStorageClient).
* Added an OAuth message handler which refreshes an access token as necessary.
* Added HTTP implementation of IStorageClient.
#preflight none
[CL 18710086 by Ben Marsh in ue5-main branch]
Idea is that tools could interface with Horde Storage use this API, with concrete implementations that use HTTP, gRPC or (in the case of legacy applications within Horde.Build) communicate internally within the same process to store the data.
Errors should be surfaced using exceptions.
#preflight none
[CL 18677234 by Ben Marsh in ue5-main branch]
The base class in a hierarchy must have the [CbPolymorphic] attribute, and derived classes must have the [CbDiscriminator] attribute, giving an identifier to indicate the derived type.
#preflight none
#p4v-preflight-copy 18635755
#preflight 61e6d83a7f0c4b5aad620c89
[CL 18640150 by Ben Marsh in ue5-main branch]
The base class in a hierarchy must have the [CbPolymorphic] attribute, and derived classes must have the [CbDiscriminator] attribute, giving an identifier to indicate the derived type.
#preflight none
#preflight 61e600aa3778a195de94dc27
[CL 18635774 by Ben Marsh in ue5-main branch]
* Support for creating workspaces using native P4 client, so "ugs init" now works correctly.
* Output a list of files which need to be clobbered when syncing, and add a -Clobber option to confirm intent.
* Fix exception accessing folders that user does not have permissions to when detecting a new workspace.
#preflight none
[CL 18618091 by Ben Marsh in ue5-main branch]
- Data read from stdout/stderr is now writen to buffers posted in a Channel<T>, which correctly supports await and cancellation (unlike AsynchronousPipe).
- Public StdOut/StdErr streams are now a custom stream implementation that reads from the channel and copies data into the output buffer.
- Buffer objects are sized at 1024 bytes and pooled, which should be enough to accomodate most output lines without splitting.
- When the process is disposed, we now terminate the entire process tree. The tasks left reading from the child process terminate asynchronously.
Tested in a command line and WinForms app (by forcing SupportsJobObjects to return false) with asynchronous and synchronous reads to ensure code does not deadlock.
#preflight 61e062b3ed50181feb511e39
[CL 18601195 by Ben Marsh in ue5-main branch]