1356 Commits

Author SHA1 Message Date
andrew phillips
1006d14bce Fixing vulnerable NuGet deps.
System.Drawing.Common 4.7.0 => 4.7.2  (https://github.com/advisories/GHSA-rxg9-xrhp-64gj)
MongoDB.Driver 2.11.5 => 2.19.0  (https://github.com/advisories/GHSA-7j9m-j397-g4wx)

#jira UE-194453
#rb francis.hurteau
#lockdown michal.valient

[CL 27715748 by andrew phillips in 5.3 branch]
2023-09-08 12:39:47 -04:00
joe kirchoff
c1f2c38921 Fix PATH separator on non-Windows platforms
#rnx
#jira UE-190551
#rb Ryan.Hummer

[CL 26469820 by joe kirchoff in 5.3 branch]
2023-07-19 16:34:01 -04:00
Tim Smith
b565037e40 Fixed issue where invalid code would be generated if all FieldNotify properties in class were marked as editor only data.
#rb self
#jira none

[CL 26410114 by Tim Smith in 5.3 branch]
2023-07-17 12:44:17 -04:00
Tim Smith
045e911f8d Fixed issue where if export code threw an exception, the build will not display the error message or fail the build.
#rb self
#jira none

[CL 26409976 by Tim Smith in 5.3 branch]
2023-07-17 12:37:29 -04:00
michael wanderson
032abfa184 Undo //UE5/Release-5.3/Engine/... changelist 26152902, this removes the per app SDK version changes accidentally cherry-picked into 5.3.
#rb josh.adams

[CL 26218519 by michael wanderson in 5.3 branch]
2023-06-23 16:40:50 -04:00
jamie dale
1b00f5ed86 Updated UHT to use the real C++ type for USTRUCT properties using a template wrapper struct
#jira
#rb Tim.Smith
#rnx

[CL 26159320 by jamie dale in 5.3 branch]
2023-06-21 15:39:37 -04:00
calvin zheng
3f9b3b622b - Moved SDK versions (MainVersion and Min/Max SDK version) from C# strings to SDK.json files in the Platform's Config folder
- Allow for per-project override in a project's platform's config folder (this is merging with my other work on per-project SDKs and validation of multi-target builds)
- More versions will move over after this
#rb david.harvey


#[robomerge][bot5] -FNMain

#ushell-cherrypick of 26150552 by josh.adams

[CL 26152902 by calvin zheng in 5.3 branch]
2023-06-21 12:34:18 -04:00
helge mathee
766fb9e999 UHT: RigVM Make sure to rely on slice index for lazy values
#rb jaime.cifuentes

[CL 26118225 by helge mathee in 5.3 branch]
2023-06-20 07:35:35 -04:00
leon huang
f19b273854 [Backout] - CL26105383
[FYI] Leon.Huang
Original CL Desc
-----------------------------------------------------------------
Unreal Build Tool:
Update PluginDescriptor to have parity with FPluginDescriptor in terms of handling custom JSON fields. The order in which the original fields are written to disk is preserved.
When saving the PluginDescriptor to disk, the same order is followed and any new entries are added to the end of the plugin file.
Note: PluginDescriptor.Save and PluginDescriptor.Save2 will exist concurrently for now. There are still parts of UBT that use PluginDescriptor.Write and the refactor to create a unified Save function will come later as a lot of testing still needs to be done.
JsonObject:
- Introduced AddOrSetFieldValue() methods overloaded on value types to add/set fields in JsonObject.
- Changed the underlying data structure of JsonObject from Dictionary<string,Object?> to OrderedDictionary to guarantee that order of all .uplugin fields (default and custom) are preserved
- Made the JsonObject constructor that takes an OrderedDictionary private to ensure type safety of values passed to JsonObject
- Introduced ToJsonString() for JsonObject that serializes the JsonObject to match the formatting of .uplugin
IMPORTANT: The ToJsonString() method uses the JavaScriptEncoder.UnsafeRelaxedJsonEscaping encoder for Utf8JsonWriter.
This allows +,<,>,&,` etc characters to be written properly for .uplugins. As per MS docs, with this encoding, none of the contents should be written to HTML or a script.
- Introduced JsonObjectTests that unit tested JsonObject to ensure previous behavior was maintained.

PluginDescriptor
- Added a JsonObject field that acts as the cache of all fields that were read from a file or parsed from a json string.
- Cached JsonObject records the order of all fields that were read and captures custom fields in the .uplugin
- Introduced Save2(), the new save algorithm that writes all fields (default and custom) to disk.
- Deleted the private default constructor because it didn't seem to be used anywhere.
- Introduced PluginDescriptorTests to ensure previous behavior is maintained. In particular when dealing with a .uplugin with only default fields, results of Save() and Save2() are the same.

Descriptor Files:
- Introduced ToJsonObject() methods to replace the previous JsonWriter patterns of writing the descriptor data.
- Introduced the UpdateJsonObject pattern which mimics the old WriteArray pattern of writing data to a JsonWriter.

#rb: Mark.Winter, Joe.Kirchoff
#jira: none
#test: Developed this in a TDD style with unit tests for all the major functions. Also reviewed output of created .uplugins and diffed them.

[CL 26111696 by leon huang in 5.3 branch]
2023-06-19 21:12:05 -04:00
leon huang
366b1bc048 Unreal Build Tool:
Update PluginDescriptor to have parity with FPluginDescriptor in terms of handling custom JSON fields. The order in which the original fields are written to disk is preserved.
When saving the PluginDescriptor to disk, the same order is followed and any new entries are added to the end of the plugin file.
Note: PluginDescriptor.Save and PluginDescriptor.Save2 will exist concurrently for now. There are still parts of UBT that use PluginDescriptor.Write and the refactor to create a unified Save function will come later as a lot of testing still needs to be done.
JsonObject:
- Introduced AddOrSetFieldValue() methods overloaded on value types to add/set fields in JsonObject.
- Changed the underlying data structure of JsonObject from Dictionary<string,Object?> to OrderedDictionary to guarantee that order of all .uplugin fields (default and custom) are preserved
- Made the JsonObject constructor that takes an OrderedDictionary private to ensure type safety of values passed to JsonObject
- Introduced ToJsonString() for JsonObject that serializes the JsonObject to match the formatting of .uplugin
IMPORTANT: The ToJsonString() method uses the JavaScriptEncoder.UnsafeRelaxedJsonEscaping encoder for Utf8JsonWriter.
This allows +,<,>,&,` etc characters to be written properly for .uplugins. As per MS docs, with this encoding, none of the contents should be written to HTML or a script.
- Introduced JsonObjectTests that unit tested JsonObject to ensure previous behavior was maintained.

PluginDescriptor
- Added a JsonObject field that acts as the cache of all fields that were read from a file or parsed from a json string.
- Cached JsonObject records the order of all fields that were read and captures custom fields in the .uplugin
- Introduced Save2(), the new save algorithm that writes all fields (default and custom) to disk.
- Deleted the private default constructor because it didn't seem to be used anywhere.
- Introduced PluginDescriptorTests to ensure previous behavior is maintained. In particular when dealing with a .uplugin with only default fields, results of Save() and Save2() are the same.

Descriptor Files:
- Introduced ToJsonObject() methods to replace the previous JsonWriter patterns of writing the descriptor data.
- Introduced the UpdateJsonObject pattern which mimics the old WriteArray pattern of writing data to a JsonWriter.

#rb: Mark.Winter, Joe.Kirchoff
#jira: none
#test: Developed this in a TDD style with unit tests for all the major functions. Also reviewed output of created .uplugins and diffed them.

[CL 26105512 by leon huang in 5.3 branch]
2023-06-19 17:03:00 -04:00
tim smith
95c61369b5 LazyObjectPtr and ObjectPtr are allowed as TMap keys in function arguments.
#rb self

[CL 26094351 by tim smith in 5.3 branch]
2023-06-19 12:48:28 -04:00
jamie dale
955d38ef87 Honor the editor-only state of sparse class data properties in their accessors
#jira
#rb Tim.Smith
#rnx

[CL 26057383 by jamie dale in 5.3 branch]
2023-06-16 12:38:51 -04:00
ben marsh
44c372d104 Horde: Allow spaces in P4 view filters.
[CL 26054588 by ben marsh in 5.3 branch]
2023-06-16 11:48:25 -04:00
ben marsh
ef8d812963 Horde: Fix un-flushed ref target being written to disk in file storage client.
Also add backoff/retry mechanism to writing refs.

[CL 26053292 by ben marsh in 5.3 branch]
2023-06-16 11:21:01 -04:00
ben marsh
385a5abbda Horde: Move response classes for the secrets endpoint into EpicGames.Horde.
[CL 26037443 by ben marsh in 5.3 branch]
2023-06-16 02:12:35 -04:00
ben marsh
3c36c5db9f Horde: Add a more detailed warning whenever there are no agents found matching the configured requirements during a remote execution lease.
[CL 26037047 by ben marsh in 5.3 branch]
2023-06-16 01:57:51 -04:00
Ben Marsh
1dd0c3c480 Horde: Start to move API definitions into EpicGames.Horde, starting with the /api/v1/projects endpoint. Exposing these classes to clients makes it much easier to write applications that communicate with the Horde server.
[CL 26002071 by Ben Marsh in ue5-main branch]
2023-06-14 22:18:34 -04:00
Ben Marsh
1d98b3ba78 UBT: Downgrade Horde compute errors to systemic warnings.
[CL 25996658 by Ben Marsh in ue5-main branch]
2023-06-14 17:24:55 -04:00
chris constantinescu
eaa0b0ae58 Allow plugins "Tests" folder that can include test target and module files.
#rb Jerome.Delattre, Dave.Haslam
#jira UE-188420

[CL 25985206 by chris constantinescu in ue5-main branch]
2023-06-14 13:23:01 -04:00
tim smith
02696889b0 Removed C++ UHT
#rb self

[CL 25928237 by tim smith in ue5-main branch]
2023-06-12 10:02:42 -04:00
Ben Marsh
e05f626f89 Horde: Fix OOB error when building directory tree.
[CL 25927091 by Ben Marsh in ue5-main branch]
2023-06-12 09:02:27 -04:00
Ben Marsh
cdadc13894 Horde: Remove unused code for creating bundles.
[CL 25911664 by Ben Marsh in ue5-main branch]
2023-06-10 19:32:01 -04:00
joe kirchoff
2d7cd8b814 EpicGames.Core: Prevent NullReferenceException in ThreadPoolWorkQueue
#rnx
#jira UE-184496

[CL 25908336 by joe kirchoff in ue5-main branch]
2023-06-09 19:28:22 -04:00
Ben Marsh
d5ffd173f9 Horde: Include a hash in node locators.
[CL 25903979 by Ben Marsh in ue5-main branch]
2023-06-09 16:45:51 -04:00
Ben Marsh
7d5e31784a Horde: Start merging implementations of blobs and nodes in IStorageClient.
* Rename NodeType -> BlobType, NodeData -> BlobData, and NodeHandle -> BlobHandle.
* Add methods to BlobHandle to allow partial reads of payload, and querying refs and type without fetching all data.

[CL 25895881 by Ben Marsh in ue5-main branch]
2023-06-09 11:57:14 -04:00