From d7674e6b7e812ca692f2a2daaa66b4acaeae0dd7 Mon Sep 17 00:00:00 2001 From: Aidas Motuzas Date: Mon, 29 Jan 2024 12:44:45 +0200 Subject: [PATCH] Release 11.4.0 --- com.unity.asset-store-tools/CHANGELOG.md | 19 ++ .../Editor/AssetStoreTools.cs | 7 + .../Editor/Uploader/AssetStoreUploader.cs | 1 + .../Editor/Uploader/Scripts/AssetStoreAPI.cs | 24 +- .../Uploader/Scripts/Data/ASAnalytics.cs | 36 ++- .../Scripts/UI Elements/Upload/PackageView.cs | 21 ++ .../Workflows/FolderUploadWorkflowView.cs | 3 +- .../HybridPackageUploadWorkflowView.cs | 3 +- .../Upload/Workflows/UploadWorkflowView.cs | 30 +++ .../Editor/Utility/ASToolsPreferences.cs | 18 ++ .../Editor/Utility/ASToolsUpdater.cs | 251 ++++++++++++++++++ .../Editor/Utility/ASToolsUpdater.cs.meta | 11 + .../Editor/Utility/FileUtility.cs | 101 ++++++- .../Editor/Utility/StyleSelector.cs | 14 +- .../Editor/Utility/Styles.meta | 8 + .../Editor/Utility/Styles/Updater.meta | 8 + .../Utility/Styles/Updater/Updater_Dark.uss | 7 + .../Styles/Updater/Updater_Dark.uss.meta | 11 + .../Utility/Styles/Updater/Updater_Light.uss | 7 + .../Styles/Updater/Updater_Light.uss.meta | 11 + .../Utility/Styles/Updater/Updater_Main.uss | 76 ++++++ .../Styles/Updater/Updater_Main.uss.meta | 11 + .../Editor/Validator/AssetStoreValidator.cs | 4 +- .../Scripts/Tests/Check Animation Clips.asset | 26 ++ .../Tests/Check Animation Clips.asset.meta | 8 + .../Scripts/Tests/Check Audio Clipping.asset | 3 +- .../Tests/Check Model Import Logs.asset | 29 ++ .../Tests/Check Model Import Logs.asset.meta | 8 + .../Scripts/Tests/Check Package Size.asset | 24 ++ .../Tests/Check Package Size.asset.meta | 8 + .../Tests/Test Methods/CheckAnimationClips.cs | 57 ++++ .../Test Methods/CheckAnimationClips.cs.meta | 11 + .../Tests/Test Methods/CheckDemoScenes.cs | 9 + .../Test Methods/CheckModelImportLogs.cs | 53 ++++ .../Test Methods/CheckModelImportLogs.cs.meta | 11 + .../Tests/Test Methods/CheckPackageSize.cs | 65 +++++ .../Test Methods/CheckPackageSize.cs.meta | 11 + .../Test Methods/CheckParticleSystems.cs | 5 + .../Test Methods/Utility/ModelUtility.cs | 143 ++++++++++ .../Test Methods/Utility/ModelUtility.cs.meta | 11 + .../UI Elements/AutomatedTestElement.cs | 7 + .../UI Elements/AutomatedTestsGroup.cs | 3 +- com.unity.asset-store-tools/LICENSE.md | 2 +- com.unity.asset-store-tools/package.json | 2 +- 44 files changed, 1165 insertions(+), 13 deletions(-) create mode 100644 com.unity.asset-store-tools/Editor/Utility/ASToolsUpdater.cs create mode 100644 com.unity.asset-store-tools/Editor/Utility/ASToolsUpdater.cs.meta create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles.meta create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater.meta create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Dark.uss create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Dark.uss.meta create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Light.uss create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Light.uss.meta create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Main.uss create mode 100644 com.unity.asset-store-tools/Editor/Utility/Styles/Updater/Updater_Main.uss.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Animation Clips.asset create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Animation Clips.asset.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Model Import Logs.asset create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Model Import Logs.asset.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Package Size.asset create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Check Package Size.asset.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckAnimationClips.cs create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckAnimationClips.cs.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckModelImportLogs.cs create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckModelImportLogs.cs.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckPackageSize.cs create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/CheckPackageSize.cs.meta create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/Utility/ModelUtility.cs create mode 100644 com.unity.asset-store-tools/Editor/Validator/Scripts/Tests/Test Methods/Utility/ModelUtility.cs.meta diff --git a/com.unity.asset-store-tools/CHANGELOG.md b/com.unity.asset-store-tools/CHANGELOG.md index 0a2d59c..509252c 100644 --- a/com.unity.asset-store-tools/CHANGELOG.md +++ b/com.unity.asset-store-tools/CHANGELOG.md @@ -1,6 +1,25 @@ # Changelog All notable changes to this package will be documented in this file. +## [11.4.0] - 2024-01-23 + +### Uploader Changes +- Added prevention of uploading packages larger than 6 GB +- Added a prompt to allow automatically generating meta files within hidden folders +- Fixed some obsolete API usage warnings in newer Unity versions + +### Validator Changes +- Added validation tests for: + - Animation Clip take names + - Model import logs + - Uncompressed Package size +- Updated the fail severity of Audio Clipping validation test +- Updated the Demo Scene test to treat default scenes with custom skyboxes as valid demo scenes +- Fixed some obsolete API usage warnings in newer Unity versions + +### Other +- Added an option to check for Asset Store Publishing Tools updates + ## [11.3.1] - 2023-08-14 ### Uploader Changes diff --git a/com.unity.asset-store-tools/Editor/AssetStoreTools.cs b/com.unity.asset-store-tools/Editor/AssetStoreTools.cs index 25a0a83..e9b51c4 100644 --- a/com.unity.asset-store-tools/Editor/AssetStoreTools.cs +++ b/com.unity.asset-store-tools/Editor/AssetStoreTools.cs @@ -44,6 +44,13 @@ public static void OpenFeedback() Application.OpenURL("https://forum.unity.com/threads/new-asset-store-tools-version-coming-july-20th-2022.1310939/"); } + [MenuItem("Asset Store Tools/Check for Updates", false, 45)] + public static void OpenUpdateChecker() + { + var wnd = GetWindowWithRect(new Rect(Screen.width / 2, Screen.height / 2, 400, 150), true); + wnd.Show(); + } + [MenuItem("Asset Store Tools/Settings", false, 50)] public static void OpenSettings() { diff --git a/com.unity.asset-store-tools/Editor/Uploader/AssetStoreUploader.cs b/com.unity.asset-store-tools/Editor/Uploader/AssetStoreUploader.cs index f40f3a8..d8b0c4b 100644 --- a/com.unity.asset-store-tools/Editor/Uploader/AssetStoreUploader.cs +++ b/com.unity.asset-store-tools/Editor/Uploader/AssetStoreUploader.cs @@ -14,6 +14,7 @@ namespace AssetStoreTools.Uploader internal class AssetStoreUploader : AssetStoreToolsWindow { public const string MinRequiredPackageVersion = "2021.3"; + public const long MaxPackageSizeBytes = 6442450944; // 6 GB private const string MainWindowVisualTree = "Packages/com.unity.asset-store-tools/Editor/Uploader/Styles/Base/BaseWindow_Main"; private const string DebugPhrase = "debug"; diff --git a/com.unity.asset-store-tools/Editor/Uploader/Scripts/AssetStoreAPI.cs b/com.unity.asset-store-tools/Editor/Uploader/Scripts/AssetStoreAPI.cs index 11c3c8b..a2cb723 100644 --- a/com.unity.asset-store-tools/Editor/Uploader/Scripts/AssetStoreAPI.cs +++ b/com.unity.asset-store-tools/Editor/Uploader/Scripts/AssetStoreAPI.cs @@ -22,7 +22,7 @@ namespace AssetStoreTools.Uploader /// internal static class AssetStoreAPI { - public const string ToolVersion = "V6.3.1"; + public const string ToolVersion = "V6.4.0"; private const string UnauthSessionId = "26c4202eb475d02864b40827dfff11a14657aa41"; private const string KharmaSessionId = "kharma.sessionid"; @@ -556,6 +556,28 @@ public static void AbortPackageUpload(string packageId) #endregion #region Utility Methods + + public static async Task GetLatestAssetStoreToolsVersion() + { + try + { + var url = "https://api.assetstore.unity3d.com/package/latest-version/115"; + var result = await httpClient.GetAsync(url); + + result.EnsureSuccessStatusCode(); + + var resultStr = await result.Content.ReadAsStringAsync(); + + var json = JSONParser.SimpleParse(resultStr); + + return new APIResult() { Success = true, Response = json }; + } + catch (Exception e) + { + return new APIResult() { Success = false, Error = ASError.GetGenericError(e) }; + } + } + private static string GetLicenseHash() { return UnityEditorInternal.InternalEditorUtility.GetAuthToken().Substring(0, 40); diff --git a/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/ASAnalytics.cs b/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/ASAnalytics.cs index a91b18e..b809abb 100644 --- a/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/ASAnalytics.cs +++ b/com.unity.asset-store-tools/Editor/Uploader/Scripts/Data/ASAnalytics.cs @@ -1,4 +1,5 @@ -using UnityEditor; +using System; +using UnityEditor; using UnityEngine.Analytics; namespace AssetStoreTools.Uploader.Data @@ -14,12 +15,19 @@ internal static class ASAnalytics static bool EnableAnalytics() { +#if UNITY_2023_2_OR_NEWER + return true; +#else var result = EditorAnalytics.RegisterEventWithLimit(EventName, MaxEventsPerHour, MaxNumberOfElements, VendorKey, VersionId); return result == AnalyticsResult.Ok; +#endif } [System.Serializable] public struct AnalyticsData +#if UNITY_2023_2_OR_NEWER + : IAnalytic.IData +#endif { public string ToolVersion; public string PackageId; @@ -33,6 +41,26 @@ public struct AnalyticsData public string EndpointUrl; } +#if UNITY_2023_2_OR_NEWER + [AnalyticInfo(eventName: EventName, vendorKey: VendorKey, version: VersionId, maxEventsPerHour: MaxEventsPerHour, maxNumberOfElements: MaxNumberOfElements)] + private class AssetStoreToolsAnalytic : IAnalytic + { + private AnalyticsData _data; + + public AssetStoreToolsAnalytic(AnalyticsData data) + { + _data = data; + } + + public bool TryGatherData(out IAnalytic.IData data, out Exception error) + { + error = null; + data = _data; + return data != null; + } + } +#endif + public static void SendUploadingEvent(AnalyticsData data) { if (!EditorAnalytics.enabled) @@ -40,7 +68,13 @@ public static void SendUploadingEvent(AnalyticsData data) if (!EnableAnalytics()) return; + +#if UNITY_2023_2_OR_NEWER + var analytic = new AssetStoreToolsAnalytic(data); + EditorAnalytics.SendAnalytic(analytic); +#else EditorAnalytics.SendEventWithLimit(EventName, data, VersionId); +#endif } } } \ No newline at end of file diff --git a/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/PackageView.cs b/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/PackageView.cs index cf50420..eab295b 100644 --- a/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/PackageView.cs +++ b/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/PackageView.cs @@ -442,6 +442,24 @@ private async Task ExportPackage(string outputPath) return exportResult; } + private bool ValidatePackageSize(string packagePath) + { + long packageSize = new FileInfo(packagePath).Length; + long packageSizeLimit = AssetStoreUploader.MaxPackageSizeBytes; + float packageSizeInGB = packageSize / (1024f * 1024f * 1024f); + float maxPackageSizeInGB = packageSizeLimit / (1024f * 1024f * 1024f); + + if (packageSizeInGB - maxPackageSizeInGB < 0.1f) + return true; + + var message = $"The size of your package ({packageSizeInGB:0.#} GB) exceeds the maximum allowed package size of {maxPackageSizeInGB:0.#} GB.\n\n" + + $"Please reduce the size of your package."; + + EditorUtility.DisplayDialog("Asset Store Tools", message, "OK"); + + return false; + } + private bool ValidateUnityVersionsForUpload() { if (!AssetStoreUploader.ShowPackageVersionDialog) @@ -488,6 +506,9 @@ private async void PreparePackageUpload() return; } + if (!ValidatePackageSize(exportResult.ExportedPath)) + return; + if (!ValidateUnityVersionsForUpload()) return; diff --git a/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/Workflows/FolderUploadWorkflowView.cs b/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/Workflows/FolderUploadWorkflowView.cs index 5f5ca79..8cbced9 100644 --- a/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/Workflows/FolderUploadWorkflowView.cs +++ b/com.unity.asset-store-tools/Editor/Uploader/Scripts/UI Elements/Upload/Workflows/FolderUploadWorkflowView.cs @@ -299,7 +299,8 @@ private void HandleFolderUploadPathSelection(string relativeExportPath, List