Commit Graph

455 Commits

Author SHA1 Message Date
Ben Marsh
7dae34d929 Horde: Missing file.
#preflight none

[CL 19637007 by Ben Marsh in ue5-main branch]
2022-04-05 20:25:41 -04:00
Ben Marsh
83041dec73 Horde: Add a subsystem for hosting tools on Horde.
- Each tool can have a number of deployments which are rolled out over time. Clients can specify a "phase" value indicating where in the queue they want to take updates (ie. whether they want to be early- or late-adopters), and deployments can be paused and cancelled.
- Tool channels are configured through the global configuration file. Tools can be marked "public", meaning that they do not require authentication against Horde for access. This can be useful for auto-update scenarios.
- The most recent 5 deployments are kept in the tool at any time.

The collection and controller implementation here is an experiment in reducing the amount of boilerplate currently adopted as a pattern in Horde. Notably:

- Model and collection classes are concrete rather than interfaces (since we don't generally mock them anyway).
- The same model class with annotations is used for response objects (paving the way to supporting patching and filtering using the same public model as the internal model).
- The VersionedCollection class is used to handle automatic migration of documents across schema versions, and cache document values with Redis.
- MongoDB property names are explicit and short, rather than just taking variable names.

#preflight none

[CL 19636699 by Ben Marsh in ue5-main branch]
2022-04-05 20:17:50 -04:00
Ben Marsh
965a6031d8 Horde: Add support for pushing data to Horde storage without knowing the hash in advance.
#preflight none

[CL 19628357 by Ben Marsh in ue5-main branch]
2022-04-05 14:03:07 -04:00
Tim Smith
78fa880a7f Renamed UhtBooleanProperty to UhtBoolProperty and eliminated the subclasses to reduce confusion with engine types.
#rnx
#rb none
#preflight 624c318ae434babd8a423905

[CL 19623026 by Tim Smith in ue5-main branch]
2022-04-05 08:15:16 -04:00
Tim Smith
5df0c16248 Added new property type text needed by script exporters.
Added plugin module detection and output path support for script exporters.

#rb none
#rnx
#preflight 624c266bc51908059af7b318

[CL 19622801 by Tim Smith in ue5-main branch]
2022-04-05 07:45:35 -04:00
Ben Marsh
498726433b Horde: Fix comparison of semver objects with identical pre-release fields.
#preflight none

[CL 19608867 by Ben Marsh in ue5-main branch]
2022-04-04 10:36:47 -04:00
Tim Smith
c7cbc0e103 Added "generic" property type text to provide a pattern similar to older UHT.
#rnx
#rb none
#preflight 624ae29f637925b5d3fa8aea

[CL 19607492 by Tim Smith in ue5-main branch]
2022-04-04 08:37:07 -04:00
Tim Smith
fc730080bb More cleanup of the export system. Removed the UHT specific tasks.
#rb none
#rnx
#preflight 6249988ddf7d23dbfe2d531e

[CL 19602918 by Tim Smith in ue5-main branch]
2022-04-03 08:58:25 -04:00
Ben Marsh
faeb37fd20 Horde: Add a basic executor that will extract data from a bundle.
Also add matching grpc wrapper types for namespace, bucket and ref identifiers.

#preflight none

[CL 19598907 by Ben Marsh in ue5-main branch]
2022-04-01 22:37:15 -04:00
Ben Marsh
151e320a17 C#: Add a SemVer class for parsing and comparing version strings (https://semver.org/).
#preflight none

[CL 19589975 by Ben Marsh in ue5-main branch]
2022-04-01 12:16:34 -04:00
Tim Smith
26ea2c1d51 Updated the exporter system in UHT to simplify it.
Added some basic support for UBT plugins.

#rb trivial
#rnx
#preflight 6245f7123a5a4c1622d2b55a

[CL 19576500 by Tim Smith in ue5-main branch]
2022-03-31 15:01:31 -04:00
sara schvartzman
c7b0e74c59 Controlr Rig: UI implementation of Aggregate nodes
#jira UE-146928
#rb helge.mathee
#preflight https://horde.devtools.epicgames.com/job/62433ef7dc6183e3f5e500dc

[CL 19554694 by sara schvartzman in ue5-main branch]
2022-03-30 05:21:45 -04:00
Ben Marsh
c53fea6302 Horde: Commit replication changes
- Fix uncapped growth of channel for stream updates.
- Prevent no-op changes unnecessarily triggering update iterations.
- Add functionality to AsyncEvent to support latching the event on, rather than just pulsing it.

#preflight none

[CL 19545492 by Ben Marsh in ue5-main branch]
2022-03-29 13:48:29 -04:00
jonathan adamczewski
5053cae2d8 Launch UnrealBuildTool via dotnet unrealbuildtool.dll, not unrealbuildtool.exe
#jira none
#rnx
#preflight 624261bdb6084b98321e9251

[CL 19544939 by jonathan adamczewski in ue5-main branch]
2022-03-29 13:20:46 -04:00
Joakim Lindqvist
4fde46798f Horde Storage - Added converter for aspnet ProblemDetails type to compact binary
#preflight none

[CL 19541620 by Joakim Lindqvist in ue5-main branch]
2022-03-29 10:08:38 -04:00
Ben Marsh
22ef1f2be7 Horde: Fix race condition in lease assignment caused by task sources which need to execute async operations before being able to determine if a lease is available.
The AssignLeaseAsync() method now returns a Task<Task<AgentLease>>. The outer task is awaited on each task source in priority order, and all inner tasks are awaited in parallell. Utility methods in TaskSourceBase (Skip/DrainAsync/Lease) exist to simplify creation of task objects to return.

#preflight none

[CL 19535087 by Ben Marsh in ue5-main branch]
2022-03-28 19:03:36 -04:00
Ben Marsh
c72605bcc7 Fix some analyzer warnings.
#preflight none

[CL 19535012 by Ben Marsh in ue5-main branch]
2022-03-28 18:54:42 -04:00
jonathan adamczewski
5c68d1d9ef Revert //UE5/Main/... changelist 19531725 - return to NET Core 3.1
#preflight 62422fd0470aff98e946bfce
#jira UE-119846

[CL 19534572 by jonathan adamczewski in ue5-main branch]
2022-03-28 18:25:19 -04:00
jonathan adamczewski
18ac15cbb1 Upgrade to .NET 6.0
#jira UE-119846
#preflight 6241fc06470aff98e943c035

[CL 19531725 by jonathan adamczewski in ue5-main branch]
2022-03-28 15:30:56 -04:00
Ben Marsh
f1e04dc894 Horde: Fix incorrectly named enum members, causing syncing to return invalid records.
#preflight none

[CL 19528834 by Ben Marsh in ue5-main branch]
2022-03-28 12:18:07 -04:00
Ben Marsh
b50740d5c1 Horde: Compact binary serialization improvements.
- Fix serialization of lists, directories and arrays that are set to null.
- Throw an exception when serializing a type that does not have any explicit compact binary field attributes. This is usually an error, caused by serializing a framework type with no matching converter, but can also occur when serializing an empty base class instance. To handle these situations, the class can be marked with [CbObject] to explicitly opt-in to being valid for serialization.

#fyi Joe.Kirchoff
#preflight none

[CL 19526671 by Ben Marsh in ue5-main branch]
2022-03-28 10:11:10 -04:00
Tim Smith
0f0682ee83 Adjusted UHT table initialization in preperation for plugins.
#rb none
#rnx
#preflight 6241ac18bd063ab82296cc0a

[CL 19525715 by Tim Smith in ue5-main branch]
2022-03-28 08:54:49 -04:00
Tim Smith
4f5d1c171d Changed the collection of parsing tables and configuration to be session specific and not a singleton. This is required for plugin support.
#rb none
#rnx
#preflight 623f34e5361866e20fec8e0f

[CL 19521840 by Tim Smith in ue5-main branch]
2022-03-26 12:02:18 -04:00
Ben Marsh
508c144999 Horde: Last batch (hopefully) of static analysis fixes/suppressions.
#preflight 623e144c8073508cfc117a87

[CL 19517822 by Ben Marsh in ue5-main branch]
2022-03-25 15:35:47 -04:00
Tim Smith
63bb8b7b4b Fixed issue where UHT wasn't properly renaming the output files.
Added number of written files as an informational line.

#rb trivial
#rnx
#preflight 623dcf4b4302b204a3681279

[CL 19512496 by Tim Smith in ue5-main branch]
2022-03-25 10:33:06 -04:00