Commit Graph

148 Commits

Author SHA1 Message Date
jonathan adamczewski
2b7b866f45 Move DotNETCommon/BuildUtilities to Shared/EpicGames.Build
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]
2021-08-10 11:09:18 -04:00
andrew firth
6cb4d4d4cd [P4VUtils] - add Fast reconcile options for code + all - performs a reconcile on files in P4 that are writeable but NOT checked out
[at]Ben.Marsh [at]Brandon.Dawnson
#rb Ben.Marsh

#ROBOMERGE-SOURCE: CL 17096670 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)

[CL 17096673 by andrew firth in ue5-release-engine-test branch]
2021-08-07 22:51:41 -04:00
ben marsh
d86ad5954d Horde: Remove unnecessary dependency on LibGit2Sharp from EpicGames.Perforce.Managed.
#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]
2021-08-07 19:23:01 -04:00
ben marsh
c8da790ae1 Horde: Allow slicing lists starting at a given offset.
#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]
2021-08-07 10:43:30 -04:00
ben marsh
87b4ea8fc6 Horde: Support serialization of bool values to compact binary objects through attribute-driven serialization.
#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]
2021-08-07 10:43:23 -04:00
ryan hummer
58994ea55e Horede: Make fileSize Optional for the Perforce PrintRecord
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]
2021-08-06 16:12:43 -04:00
carl bystrom
9895bc78e9 Horde: Prevent exceptions being swallowed during REAPI sandbox setup
* 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]
2021-08-05 09:41:46 -04:00
joe kirchoff
de1e588e8b UnrealBuildTool: Clean up some intellisense suggestions, format documents, remove and sort usings, etc.
#rb trivial
#rnx

#ROBOMERGE-SOURCE: CL 17059447 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v850-17047176)

[CL 17059463 by joe kirchoff in ue5-release-engine-test branch]
2021-08-04 16:50:01 -04:00
jonathan adamczewski
2b6ba5375d Make relative, with fewer allocations
#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]
2021-08-04 14:33:52 -04:00
jonathan adamczewski
f3c823dcaa UnrealBuildTool:
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]
2021-08-02 14:45:58 -04:00
ben marsh
16c9fb5650 Horde: Rearrange public Horde classes and projects.
* 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]
2021-08-01 17:10:17 -04:00
ben marsh
1d62123a7e Missing files.
#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]
2021-08-01 16:30:41 -04:00
ben marsh
f443277309 Horde: Implement new gRPC interfaces for the blob store and ref table. Currently exist alongside the older implementations.
#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]
2021-08-01 16:28:52 -04:00
ben marsh
eb3d8b9644 Horde: Add common definitions for the ref table, blob store, and cbobject/iohash wrapper types.
#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]
2021-08-01 14:17:16 -04:00
ben marsh
2046c68c44 Horde: Add a constructor for the Requirements class.
#ROBOMERGE-SOURCE: CL 17012388 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v839-17012307)

[CL 17012395 by ben marsh in ue5-release-engine-test branch]
2021-08-01 13:54:57 -04:00
ben marsh
0df14bd0a9 Horde: Merge command with ComputeTask, and store requirements as a separate hashed object. This makes it easier to group tasks by requirements for scheduling.
#ROBOMERGE-SOURCE: CL 17010334 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17010374 by ben marsh in ue5-release-engine-test branch]
2021-07-31 09:50:13 -04:00
ben marsh
4864ad58a3 Horde: Rename Action -> ComputeTask.
#ROBOMERGE-SOURCE: CL 17010315 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17010317 by ben marsh in ue5-release-engine-test branch]
2021-07-31 09:36:09 -04:00
ben marsh
6bd138b33b Horde: Add compact-binary version of remote execution structures.
#ROBOMERGE-SOURCE: CL 17010301 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17010302 by ben marsh in ue5-release-engine-test branch]
2021-07-31 09:16:05 -04:00
ben marsh
ebcb0ef6b3 Horde: Add a framework for being able to expand CB serialization with custom converters.
CbSerializer.RegisterConverterFactory() allows registering factories that can create custom CbConverter instances for different types.

Move tagged-property IL generation into its own converter factory (CbDefaultConverterFactory). Add custom converters for list and dictionary types.

#ROBOMERGE-SOURCE: CL 17008251 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17008389 by ben marsh in ue5-release-engine-test branch]
2021-07-30 15:50:23 -04:00
ben marsh
893277ddd0 Horde: Add support for reading and writing list types to compact binary.
#ROBOMERGE-SOURCE: CL 17000074 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 17000080 by ben marsh in ue5-release-engine-test branch]
2021-07-29 15:36:45 -04:00
ben marsh
782894c48f Horde: Add IL generated serializer for reading objects. Optimized for fields ordered the same as the current class layout. Only currently supports some basic types (int, string, other objects).
#ROBOMERGE-SOURCE: CL 16997462 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16997472 by ben marsh in ue5-release-engine-test branch]
2021-07-29 13:09:39 -04:00
ben marsh
1f3c60c37e Horde: Generate dynamic methods for serializing compact binary objects.
#ROBOMERGE-SOURCE: CL 16994864 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16994870 by ben marsh in ue5-release-engine-test branch]
2021-07-29 09:21:21 -04:00
ben marsh
57d8091b79 Horde: Add a simple, attribute-based serializer for compact binary objects.
#ROBOMERGE-SOURCE: CL 16983777 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16983794 by ben marsh in ue5-release-engine-test branch]
2021-07-28 12:41:33 -04:00
ben marsh
3f942a1f30 UAT: Always include timestamps in the on-disk log, even if they aren't displayed on the console
#ROBOMERGE-SOURCE: CL 16964873 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16964891 by ben marsh in ue5-release-engine-test branch]
2021-07-26 22:11:00 -04:00
joe kirchoff
7398b01588 [Backout] - CL16961198
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
Use Microsoft.CodeAnalysis.CSharp.Workspaces for code analysis

#rb none
#rnx

#ROBOMERGE-SOURCE: CL 16961691 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v838-16927207)

[CL 16961693 by joe kirchoff in ue5-release-engine-test branch]
2021-07-26 17:59:19 -04:00