From 4d1846bbd0effb79de0dcd102af07b63698db48d Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 22 Dec 2022 17:15:08 +0100 Subject: [PATCH 1/9] moved all scriptable object to sentry.unity --- samples/unity-of-bugs/Assets/Editor.meta | 8 ---- .../SentryBuildtimeOptionsConfiguration.asset | 0 ...ryBuildtimeOptionsConfiguration.asset.meta | 0 .../SentryBuildtimeOptionsConfiguration.cs | 6 +-- ...entryBuildtimeOptionsConfiguration.cs.meta | 0 .../SentryRuntimeOptionsConfiguration.cs | 5 +-- .../OptionsConfigurationTab.cs | 40 ++++++------------- .../ScriptableSentryUnityOptionsEditor.cs | 6 ++- .../SentryScriptableObject.cs | 9 +++-- .../BuildtimeOptionsConfiguration.cs} | 6 +-- ...tion.cs => RuntimeOptionsConfiguration.cs} | 4 +- .../ScriptableSentryUnityOptions.cs | 11 ++--- .../SentryCliOptions.cs | 2 +- .../ScriptableSentryUnityOptionsTests.cs | 2 +- 14 files changed, 39 insertions(+), 60 deletions(-) delete mode 100644 samples/unity-of-bugs/Assets/Editor.meta rename samples/unity-of-bugs/Assets/{Plugins => Resources}/Sentry/SentryBuildtimeOptionsConfiguration.asset (100%) rename samples/unity-of-bugs/Assets/{Plugins => Resources}/Sentry/SentryBuildtimeOptionsConfiguration.asset.meta (100%) rename samples/unity-of-bugs/Assets/{Editor => Scripts}/SentryBuildtimeOptionsConfiguration.cs (65%) rename samples/unity-of-bugs/Assets/{Editor => Scripts}/SentryBuildtimeOptionsConfiguration.cs.meta (100%) rename src/{Sentry.Unity.Editor/ScriptableOptionsConfiguration.cs => Sentry.Unity/BuildtimeOptionsConfiguration.cs} (71%) rename src/Sentry.Unity/{ScriptableOptionsConfiguration.cs => RuntimeOptionsConfiguration.cs} (71%) rename src/{Sentry.Unity.Editor => Sentry.Unity}/SentryCliOptions.cs (98%) diff --git a/samples/unity-of-bugs/Assets/Editor.meta b/samples/unity-of-bugs/Assets/Editor.meta deleted file mode 100644 index f015e46ea..000000000 --- a/samples/unity-of-bugs/Assets/Editor.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: cd20b2f937c2a8f42941ebf4c691803f -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/samples/unity-of-bugs/Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset b/samples/unity-of-bugs/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset similarity index 100% rename from samples/unity-of-bugs/Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset rename to samples/unity-of-bugs/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset diff --git a/samples/unity-of-bugs/Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset.meta b/samples/unity-of-bugs/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset.meta similarity index 100% rename from samples/unity-of-bugs/Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset.meta rename to samples/unity-of-bugs/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset.meta diff --git a/samples/unity-of-bugs/Assets/Editor/SentryBuildtimeOptionsConfiguration.cs b/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs similarity index 65% rename from samples/unity-of-bugs/Assets/Editor/SentryBuildtimeOptionsConfiguration.cs rename to samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs index f1ccae2c2..5841a7855 100644 --- a/samples/unity-of-bugs/Assets/Editor/SentryBuildtimeOptionsConfiguration.cs +++ b/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs @@ -1,10 +1,8 @@ -using System; using UnityEngine; using Sentry.Unity; -using Sentry.Unity.Editor; -[CreateAssetMenu(fileName = "Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset", menuName = "Sentry/Assets/Plugins/Sentry/SentryBuildtimeOptionsConfiguration.asset", order = 999)] -public class SentryBuildtimeOptionsConfiguration : Sentry.Unity.Editor.ScriptableOptionsConfiguration +[CreateAssetMenu(fileName = "Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset", menuName = "Sentry/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset", order = 999)] +public class SentryBuildtimeOptionsConfiguration : Sentry.Unity.BuildtimeOptionsConfiguration { /// See base class for documentation. /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration diff --git a/samples/unity-of-bugs/Assets/Editor/SentryBuildtimeOptionsConfiguration.cs.meta b/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta similarity index 100% rename from samples/unity-of-bugs/Assets/Editor/SentryBuildtimeOptionsConfiguration.cs.meta rename to samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta diff --git a/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs b/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs index 1f31c36f0..19fd1d4f9 100644 --- a/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs +++ b/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs @@ -1,9 +1,8 @@ -using System; using UnityEngine; using Sentry.Unity; [CreateAssetMenu(fileName = "Assets/Resources/Sentry/SentryRuntimeOptionsConfiguration.asset", menuName = "Sentry/Assets/Resources/Sentry/SentryRuntimeOptionsConfiguration.asset", order = 999)] -public class SentryRuntimeOptionsConfiguration : Sentry.Unity.ScriptableOptionsConfiguration +public class SentryRuntimeOptionsConfiguration : Sentry.Unity.RuntimeOptionsConfiguration { /// See base class for documentation. /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration @@ -11,7 +10,7 @@ public override void Configure(SentryUnityOptions options) { Debug.Log("SentryRuntimeOptionsConfiguration::Configure() called"); - /// BeforeSend is only relevant at runtime. It wouldn't hurt to be set at build time, just wouldn't do anything. + // BeforeSend is only relevant at runtime. It wouldn't hurt to be set at build time, just wouldn't do anything. options.BeforeSend = sentryEvent => { if (sentryEvent.Tags.ContainsKey("SomeTag")) diff --git a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs index fe434ba7a..4ba6a1c84 100644 --- a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs +++ b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs @@ -3,8 +3,6 @@ using System.Text; using UnityEditor; using UnityEngine; -using RuntimeConfiguration = Sentry.Unity.ScriptableOptionsConfiguration; -using BuildtimeConfiguration = Sentry.Unity.Editor.ScriptableOptionsConfiguration; namespace Sentry.Unity.Editor.ConfigurationWindow { @@ -41,10 +39,10 @@ public static void Display(ScriptableSentryUnityOptions options) ); options.BuildtimeOptionsConfiguration = OptionsConfigurationItem.Display( - options.BuildtimeOptionsConfiguration as BuildtimeConfiguration, + options.BuildtimeOptionsConfiguration, "Buildtime Options Script", "SentryBuildtimeOptionsConfiguration" - ) as ScriptableObject; + ); } } @@ -71,21 +69,18 @@ internal static class OptionsConfigurationItem return result; } - private static string SentryAssetPath(string scriptName, bool isEditorScript) => - string.Format("Assets/{0}/Sentry/{1}.asset", isEditorScript ? "Plugins" : "Resources", scriptName); + private static string SentryAssetPath(string scriptName) => $"Assets/Resources/Sentry/{scriptName}.asset"; private static void CreateScript(string fieldName, string scriptName) { - var isEditorScript = typeof(T) == typeof(BuildtimeConfiguration); - var directory = isEditorScript ? "Assets/Editor" : "Assets/Scripts"; - + const string directory = "Assets/Scripts"; if (!AssetDatabase.IsValidFolder(directory)) { AssetDatabase.CreateFolder(Path.GetDirectoryName(directory), Path.GetFileName(directory)); } var scriptPath = EditorUtility.SaveFilePanel(fieldName, directory, scriptName, "cs"); - if (String.IsNullOrEmpty(scriptPath)) + if (string.IsNullOrEmpty(scriptPath)) { return; } @@ -99,21 +94,16 @@ private static void CreateScript(string fieldName, string scriptName) scriptName = Path.GetFileNameWithoutExtension(scriptPath); var template = new StringBuilder(); - template.AppendLine("using System;"); template.AppendLine("using UnityEngine;"); template.AppendLine("using Sentry.Unity;"); - if (isEditorScript) - { - template.AppendLine("using Sentry.Unity.Editor;"); - } template.AppendLine(); - template.AppendFormat("[CreateAssetMenu(fileName = \"{0}\", menuName = \"Sentry/{0}\", order = 999)]\n", SentryAssetPath(scriptName, isEditorScript)); + template.AppendFormat("[CreateAssetMenu(fileName = \"{0}\", menuName = \"Sentry/{0}\", order = 999)]\n", SentryAssetPath(scriptName)); template.AppendFormat("public class {0} : {1}\n", scriptName, typeof(T).FullName); template.AppendLine("{"); template.AppendLine(" /// See base class for documentation."); template.AppendLine(" /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration"); template.AppendFormat(" public override void Configure(SentryUnityOptions options{0})\n", - typeof(T) == typeof(BuildtimeConfiguration) ? ", SentryCliOptions cliOptions" : ""); + typeof(T) == typeof(BuildtimeOptionsConfiguration) ? ", SentryCliOptions cliOptions" : ""); template.AppendLine(" {"); template.AppendLine(" // TODO implement"); template.AppendLine(" }"); @@ -146,11 +136,11 @@ private static void OnScriptsReloaded() SetScript(scriptName); } - internal static void SetScript(String scriptNameWithoutExtension) + internal static void SetScript(string scriptNameWithoutExtension) { var optionsConfigurationObject = ScriptableObject.CreateInstance(scriptNameWithoutExtension); - var isEditorScript = optionsConfigurationObject is BuildtimeConfiguration; - AssetDatabase.CreateAsset(optionsConfigurationObject, SentryAssetPath(scriptNameWithoutExtension, isEditorScript)); + var isEditorScript = optionsConfigurationObject is BuildtimeOptionsConfiguration; + AssetDatabase.CreateAsset(optionsConfigurationObject, SentryAssetPath(scriptNameWithoutExtension)); AssetDatabase.Refresh(); var options = EditorWindow.GetWindow().Options; @@ -158,18 +148,12 @@ internal static void SetScript(String scriptNameWithoutExtension) if (isEditorScript) { // Don't overwrite already set OptionsConfiguration - if (options.BuildtimeOptionsConfiguration is null) - { - options.BuildtimeOptionsConfiguration = optionsConfigurationObject; - } + options.BuildtimeOptionsConfiguration ??= optionsConfigurationObject as BuildtimeOptionsConfiguration; } else { // Don't overwrite already set OptionsConfiguration - if (options.OptionsConfiguration is null) - { - options.OptionsConfiguration = optionsConfigurationObject as RuntimeConfiguration; - } + options.OptionsConfiguration ??= optionsConfigurationObject as RuntimeOptionsConfiguration; } } } diff --git a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs index 76eb97fa9..a80170718 100644 --- a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs +++ b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs @@ -71,8 +71,10 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); EditorGUILayout.LabelField("Options Configuration", EditorStyles.boldLabel); - EditorGUILayout.ObjectField(".NET (C#)", options.OptionsConfiguration, - typeof(ScriptableOptionsConfiguration), false); + EditorGUILayout.ObjectField("Runtime Configuration", options.OptionsConfiguration, + typeof(RuntimeOptionsConfiguration), false); + EditorGUILayout.ObjectField("Buildtime Configuration", options.BuildtimeOptionsConfiguration, + typeof(BuildtimeOptionsConfiguration), false); EditorGUILayout.Space(); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 1), Color.gray); diff --git a/src/Sentry.Unity.Editor/SentryScriptableObject.cs b/src/Sentry.Unity.Editor/SentryScriptableObject.cs index d9b825e8c..c26a4926e 100644 --- a/src/Sentry.Unity.Editor/SentryScriptableObject.cs +++ b/src/Sentry.Unity.Editor/SentryScriptableObject.cs @@ -37,10 +37,13 @@ internal static (SentryUnityOptions?, SentryCliOptions?) ConfiguredBuildtimeOpti if (scriptableOptions is not null) { options = scriptableOptions.ToSentryUnityOptions(isBuilding: true); - /// Must be non-nullable in the interface otherwise Unity script compilation fails... + // Must be non-nullable in the interface otherwise Unity script compilation fails... cliOptions ??= ScriptableObject.CreateInstance(); - var setupScript = scriptableOptions.BuildtimeOptionsConfiguration as Sentry.Unity.Editor.ScriptableOptionsConfiguration; - setupScript?.Configure(options, cliOptions); + var setupScript = scriptableOptions.BuildtimeOptionsConfiguration; + if (setupScript != null) + { + setupScript.Configure(options, cliOptions); + } } return (options, cliOptions); diff --git a/src/Sentry.Unity.Editor/ScriptableOptionsConfiguration.cs b/src/Sentry.Unity/BuildtimeOptionsConfiguration.cs similarity index 71% rename from src/Sentry.Unity.Editor/ScriptableOptionsConfiguration.cs rename to src/Sentry.Unity/BuildtimeOptionsConfiguration.cs index 8a2e57c6f..0db2c2532 100644 --- a/src/Sentry.Unity.Editor/ScriptableOptionsConfiguration.cs +++ b/src/Sentry.Unity/BuildtimeOptionsConfiguration.cs @@ -1,15 +1,15 @@ using UnityEngine; -namespace Sentry.Unity.Editor +namespace Sentry.Unity { - public abstract class ScriptableOptionsConfiguration : ScriptableObject + public abstract class BuildtimeOptionsConfiguration : ScriptableObject { /// /// Called during app build. Changes made here will affect build-time processing, symbol upload, etc. /// Additionally, because iOS, macOS and Android native error handling is configured at build time, /// you can make changes to these options here. /// - /// + /// public abstract void Configure(SentryUnityOptions options, SentryCliOptions cliOptions); } } diff --git a/src/Sentry.Unity/ScriptableOptionsConfiguration.cs b/src/Sentry.Unity/RuntimeOptionsConfiguration.cs similarity index 71% rename from src/Sentry.Unity/ScriptableOptionsConfiguration.cs rename to src/Sentry.Unity/RuntimeOptionsConfiguration.cs index 5645efa5a..3dfe0936c 100644 --- a/src/Sentry.Unity/ScriptableOptionsConfiguration.cs +++ b/src/Sentry.Unity/RuntimeOptionsConfiguration.cs @@ -2,14 +2,14 @@ namespace Sentry.Unity { - public abstract class ScriptableOptionsConfiguration : ScriptableObject + public abstract class RuntimeOptionsConfiguration : ScriptableObject { /// /// Called at the player startup by SentryInitialization. /// You can alter configuration for the C# error handling and also /// native error handling in platforms other than iOS, macOS and Android. /// - /// + /// public abstract void Configure(SentryUnityOptions options); } } diff --git a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs index 38c272f87..75c84c58f 100644 --- a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs +++ b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs @@ -75,10 +75,8 @@ public static string GetConfigPath(string? notDefaultConfigName = null) [field: SerializeField] public bool LinuxNativeSupportEnabled { get; set; } = true; [field: SerializeField] public bool Il2CppLineNumberSupportEnabled { get; set; } = true; - [field: SerializeField] public Sentry.Unity.ScriptableOptionsConfiguration? OptionsConfiguration { get; set; } - - // Actual type is `Sentry.Unity.Editor.ScriptableOptionsConfiguration` but we can't reference it here because we don't depend on the editor Assembly. - [field: SerializeField] public ScriptableObject? BuildtimeOptionsConfiguration { get; set; } + [field: SerializeField] public RuntimeOptionsConfiguration? OptionsConfiguration { get; set; } + [field: SerializeField] public BuildtimeOptionsConfiguration? BuildtimeOptionsConfiguration { get; set; } [field: SerializeField] public bool Debug { get; set; } = true; [field: SerializeField] public bool DebugOnlyInEditor { get; set; } = true; @@ -188,7 +186,10 @@ internal SentryUnityOptions ToSentryUnityOptions(bool isBuilding, ISentryUnityIn if (!isBuilding) { - OptionsConfiguration?.Configure(options); + if (OptionsConfiguration != null) + { + OptionsConfiguration.Configure(options); + } // Doing this after the configure callback to allow users to programmatically opt out if (options.Il2CppLineNumberSupportEnabled && unityInfo is not null) diff --git a/src/Sentry.Unity.Editor/SentryCliOptions.cs b/src/Sentry.Unity/SentryCliOptions.cs similarity index 98% rename from src/Sentry.Unity.Editor/SentryCliOptions.cs rename to src/Sentry.Unity/SentryCliOptions.cs index 3d8657ab5..4747d9439 100644 --- a/src/Sentry.Unity.Editor/SentryCliOptions.cs +++ b/src/Sentry.Unity/SentryCliOptions.cs @@ -2,7 +2,7 @@ using Sentry.Extensibility; using UnityEngine; -namespace Sentry.Unity.Editor +namespace Sentry.Unity { [Serializable] public sealed class SentryCliOptions : ScriptableObject diff --git a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs index 6bc1c4727..5150e5b71 100644 --- a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs +++ b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs @@ -20,7 +20,7 @@ class Fixture persistentDataPath: "test/persistent/data/path"); } - class TestOptionsConfiguration : ScriptableOptionsConfiguration + class TestOptionsConfiguration : RuntimeOptionsConfiguration { public bool GotCalled; public override void Configure(SentryUnityOptions options) => GotCalled = true; From 2c8b90863a017f4e25c5bbb6ddbf6ecbfb9eff40 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 28 Dec 2022 10:03:11 +0100 Subject: [PATCH 2/9] renamed runtime options config --- .../Assets/Resources/Sentry/SentryOptions.asset | 2 +- .../ConfigurationWindow/OptionsConfigurationTab.cs | 6 +++--- .../ScriptableSentryUnityOptionsEditor.cs | 2 +- src/Sentry.Unity/ScriptableSentryUnityOptions.cs | 6 +++--- .../Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/samples/unity-of-bugs/Assets/Resources/Sentry/SentryOptions.asset b/samples/unity-of-bugs/Assets/Resources/Sentry/SentryOptions.asset index e3b9a6324..c4021f72f 100644 --- a/samples/unity-of-bugs/Assets/Resources/Sentry/SentryOptions.asset +++ b/samples/unity-of-bugs/Assets/Resources/Sentry/SentryOptions.asset @@ -47,7 +47,7 @@ MonoBehaviour: k__BackingField: 1 k__BackingField: 1 k__BackingField: 1 - k__BackingField: {fileID: 11400000, guid: 407b4d5f2fef2c845bf2a3dcdf6b00fb, + k__BackingField: {fileID: 11400000, guid: 407b4d5f2fef2c845bf2a3dcdf6b00fb, type: 2} k__BackingField: {fileID: 11400000, guid: 6bcc81a646c08ce439ab03805d477458, type: 2} diff --git a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs index 4ba6a1c84..ed2c041d0 100644 --- a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs +++ b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs @@ -32,8 +32,8 @@ public static void Display(ScriptableSentryUnityOptions options) EditorGUILayout.Space(); - options.OptionsConfiguration = OptionsConfigurationItem.Display( - options.OptionsConfiguration, + options.RuntimeOptionsConfiguration = OptionsConfigurationItem.Display( + options.RuntimeOptionsConfiguration, "Runtime Options Script", "SentryRuntimeOptionsConfiguration" ); @@ -153,7 +153,7 @@ internal static void SetScript(string scriptNameWithoutExtension) else { // Don't overwrite already set OptionsConfiguration - options.OptionsConfiguration ??= optionsConfigurationObject as RuntimeOptionsConfiguration; + options.RuntimeOptionsConfiguration ??= optionsConfigurationObject as RuntimeOptionsConfiguration; } } } diff --git a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs index a80170718..f32145274 100644 --- a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs +++ b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs @@ -71,7 +71,7 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); EditorGUILayout.LabelField("Options Configuration", EditorStyles.boldLabel); - EditorGUILayout.ObjectField("Runtime Configuration", options.OptionsConfiguration, + EditorGUILayout.ObjectField("Runtime Configuration", options.RuntimeOptionsConfiguration, typeof(RuntimeOptionsConfiguration), false); EditorGUILayout.ObjectField("Buildtime Configuration", options.BuildtimeOptionsConfiguration, typeof(BuildtimeOptionsConfiguration), false); diff --git a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs index 75c84c58f..07ac6b4b6 100644 --- a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs +++ b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs @@ -75,7 +75,7 @@ public static string GetConfigPath(string? notDefaultConfigName = null) [field: SerializeField] public bool LinuxNativeSupportEnabled { get; set; } = true; [field: SerializeField] public bool Il2CppLineNumberSupportEnabled { get; set; } = true; - [field: SerializeField] public RuntimeOptionsConfiguration? OptionsConfiguration { get; set; } + [field: SerializeField] public RuntimeOptionsConfiguration? RuntimeOptionsConfiguration { get; set; } [field: SerializeField] public BuildtimeOptionsConfiguration? BuildtimeOptionsConfiguration { get; set; } [field: SerializeField] public bool Debug { get; set; } = true; @@ -186,9 +186,9 @@ internal SentryUnityOptions ToSentryUnityOptions(bool isBuilding, ISentryUnityIn if (!isBuilding) { - if (OptionsConfiguration != null) + if (RuntimeOptionsConfiguration != null) { - OptionsConfiguration.Configure(options); + RuntimeOptionsConfiguration.Configure(options); } // Doing this after the configure callback to allow users to programmatically opt out diff --git a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs index 5150e5b71..0ec17715a 100644 --- a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs +++ b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs @@ -114,7 +114,7 @@ public void ToSentryUnityOptions_HasOptionsConfiguration_GetsCalled(bool isBuild { var optionsConfiguration = ScriptableObject.CreateInstance(); var scriptableOptions = ScriptableObject.CreateInstance(); - scriptableOptions.OptionsConfiguration = optionsConfiguration; + scriptableOptions.RuntimeOptionsConfiguration = optionsConfiguration; scriptableOptions.ToSentryUnityOptions(isBuilding); From d019eff8d7cbb52a1c9fda38f35dbd980565e919 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 28 Dec 2022 10:41:03 +0100 Subject: [PATCH 3/9] updated snapshot --- test/Scripts.Tests/package-release.zip.snapshot | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/test/Scripts.Tests/package-release.zip.snapshot b/test/Scripts.Tests/package-release.zip.snapshot index 2eaab1c56..cbb5f2a9f 100644 --- a/test/Scripts.Tests/package-release.zip.snapshot +++ b/test/Scripts.Tests/package-release.zip.snapshot @@ -69,8 +69,8 @@ Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Head Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryEvent.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryException.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryFrame.h -Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryHub.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryHttpStatusCodeRange.h +Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryHub.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryId.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryIntegrationProtocol.h Plugins/iOS/Sentry.xcframework~/ios-arm64_x86_64-simulator/Sentry.framework/Headers/SentryMeasurementUnit.h @@ -134,8 +134,8 @@ Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryError.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryEvent.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryException.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryFrame.h -Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryHub.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryHttpStatusCodeRange.h +Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryHub.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryId.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryIntegrationProtocol.h Plugins/iOS/Sentry.xcframework~/ios-arm64/Sentry.framework/Headers/SentryMeasurementUnit.h @@ -237,9 +237,6 @@ Runtime/SentryInitialization.cs Runtime/SentryInitialization.cs.meta Runtime/SentryIntegrations.cs Runtime/SentryIntegrations.cs.meta -Samples~/unity-of-bugs/Editor.meta -Samples~/unity-of-bugs/Editor/SentryBuildtimeOptionsConfiguration.cs -Samples~/unity-of-bugs/Editor/SentryBuildtimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scenes.meta Samples~/unity-of-bugs/Scripts.meta Samples~/unity-of-bugs/Scenes/1_Bugfarm.unity @@ -254,11 +251,13 @@ Samples~/unity-of-bugs/Scripts/AdditionalButtons.cs Samples~/unity-of-bugs/Scripts/AdditionalButtons.cs.meta Samples~/unity-of-bugs/Scripts/BugFarmButtons.cs Samples~/unity-of-bugs/Scripts/BugFarmButtons.cs.meta -Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs -Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scripts/NativeSupport.meta Samples~/unity-of-bugs/Scripts/SceneButtons.cs Samples~/unity-of-bugs/Scripts/SceneButtons.cs.meta +Samples~/unity-of-bugs/Scripts/SentryBuildtimeOptionsConfiguration.cs +Samples~/unity-of-bugs/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta +Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs +Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scripts/ThreadingSamples.cs Samples~/unity-of-bugs/Scripts/ThreadingSamples.cs.meta Samples~/unity-of-bugs/Scripts/NativeSupport/AndroidButtons.cs From 3713799b8c88cf2f1477875b02087224fc627970 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 28 Dec 2022 11:17:48 +0100 Subject: [PATCH 4/9] prefixed configs with 'sentry' & fixed tests --- .../OptionsConfigurationTab.cs | 8 ++++---- .../ScriptableSentryUnityOptionsEditor.cs | 4 ++-- src/Sentry.Unity/ScriptableSentryUnityOptions.cs | 4 ++-- ....cs => SentryBuildtimeOptionsConfiguration.cs} | 4 ++-- ...on.cs => SentryRuntimeOptionsConfiguration.cs} | 4 ++-- .../Editor/BuildtimeOptions.cs | 2 +- .../Scripts/RuntimeOptions.cs | 2 +- .../Scripts.Integration.Test/configure-sentry.ps1 | 2 +- .../Scripts.Integration.Test/integration-test.ps1 | 15 ++++++++++----- .../ScriptableSentryUnityOptionsTests.cs | 2 +- 10 files changed, 26 insertions(+), 21 deletions(-) rename src/Sentry.Unity/{BuildtimeOptionsConfiguration.cs => SentryBuildtimeOptionsConfiguration.cs} (76%) rename src/Sentry.Unity/{RuntimeOptionsConfiguration.cs => SentryRuntimeOptionsConfiguration.cs} (73%) diff --git a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs index ed2c041d0..fb108b166 100644 --- a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs +++ b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs @@ -103,7 +103,7 @@ private static void CreateScript(string fieldName, string scriptName) template.AppendLine(" /// See base class for documentation."); template.AppendLine(" /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration"); template.AppendFormat(" public override void Configure(SentryUnityOptions options{0})\n", - typeof(T) == typeof(BuildtimeOptionsConfiguration) ? ", SentryCliOptions cliOptions" : ""); + typeof(T) == typeof(SentryBuildtimeOptionsConfiguration) ? ", SentryCliOptions cliOptions" : ""); template.AppendLine(" {"); template.AppendLine(" // TODO implement"); template.AppendLine(" }"); @@ -139,7 +139,7 @@ private static void OnScriptsReloaded() internal static void SetScript(string scriptNameWithoutExtension) { var optionsConfigurationObject = ScriptableObject.CreateInstance(scriptNameWithoutExtension); - var isEditorScript = optionsConfigurationObject is BuildtimeOptionsConfiguration; + var isEditorScript = optionsConfigurationObject is SentryBuildtimeOptionsConfiguration; AssetDatabase.CreateAsset(optionsConfigurationObject, SentryAssetPath(scriptNameWithoutExtension)); AssetDatabase.Refresh(); @@ -148,12 +148,12 @@ internal static void SetScript(string scriptNameWithoutExtension) if (isEditorScript) { // Don't overwrite already set OptionsConfiguration - options.BuildtimeOptionsConfiguration ??= optionsConfigurationObject as BuildtimeOptionsConfiguration; + options.BuildtimeOptionsConfiguration ??= optionsConfigurationObject as SentryBuildtimeOptionsConfiguration; } else { // Don't overwrite already set OptionsConfiguration - options.RuntimeOptionsConfiguration ??= optionsConfigurationObject as RuntimeOptionsConfiguration; + options.RuntimeOptionsConfiguration ??= optionsConfigurationObject as SentryRuntimeOptionsConfiguration; } } } diff --git a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs index f32145274..19fc8a050 100644 --- a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs +++ b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs @@ -72,9 +72,9 @@ public override void OnInspectorGUI() EditorGUILayout.LabelField("Options Configuration", EditorStyles.boldLabel); EditorGUILayout.ObjectField("Runtime Configuration", options.RuntimeOptionsConfiguration, - typeof(RuntimeOptionsConfiguration), false); + typeof(SentryRuntimeOptionsConfiguration), false); EditorGUILayout.ObjectField("Buildtime Configuration", options.BuildtimeOptionsConfiguration, - typeof(BuildtimeOptionsConfiguration), false); + typeof(SentryBuildtimeOptionsConfiguration), false); EditorGUILayout.Space(); EditorGUI.DrawRect(EditorGUILayout.GetControlRect(false, 1), Color.gray); diff --git a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs index 07ac6b4b6..271517dbe 100644 --- a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs +++ b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs @@ -75,8 +75,8 @@ public static string GetConfigPath(string? notDefaultConfigName = null) [field: SerializeField] public bool LinuxNativeSupportEnabled { get; set; } = true; [field: SerializeField] public bool Il2CppLineNumberSupportEnabled { get; set; } = true; - [field: SerializeField] public RuntimeOptionsConfiguration? RuntimeOptionsConfiguration { get; set; } - [field: SerializeField] public BuildtimeOptionsConfiguration? BuildtimeOptionsConfiguration { get; set; } + [field: SerializeField] public SentryRuntimeOptionsConfiguration? RuntimeOptionsConfiguration { get; set; } + [field: SerializeField] public SentryBuildtimeOptionsConfiguration? BuildtimeOptionsConfiguration { get; set; } [field: SerializeField] public bool Debug { get; set; } = true; [field: SerializeField] public bool DebugOnlyInEditor { get; set; } = true; diff --git a/src/Sentry.Unity/BuildtimeOptionsConfiguration.cs b/src/Sentry.Unity/SentryBuildtimeOptionsConfiguration.cs similarity index 76% rename from src/Sentry.Unity/BuildtimeOptionsConfiguration.cs rename to src/Sentry.Unity/SentryBuildtimeOptionsConfiguration.cs index 0db2c2532..79e53d49f 100644 --- a/src/Sentry.Unity/BuildtimeOptionsConfiguration.cs +++ b/src/Sentry.Unity/SentryBuildtimeOptionsConfiguration.cs @@ -2,14 +2,14 @@ namespace Sentry.Unity { - public abstract class BuildtimeOptionsConfiguration : ScriptableObject + public abstract class SentryBuildtimeOptionsConfiguration : ScriptableObject { /// /// Called during app build. Changes made here will affect build-time processing, symbol upload, etc. /// Additionally, because iOS, macOS and Android native error handling is configured at build time, /// you can make changes to these options here. /// - /// + /// public abstract void Configure(SentryUnityOptions options, SentryCliOptions cliOptions); } } diff --git a/src/Sentry.Unity/RuntimeOptionsConfiguration.cs b/src/Sentry.Unity/SentryRuntimeOptionsConfiguration.cs similarity index 73% rename from src/Sentry.Unity/RuntimeOptionsConfiguration.cs rename to src/Sentry.Unity/SentryRuntimeOptionsConfiguration.cs index 3dfe0936c..7f00e121f 100644 --- a/src/Sentry.Unity/RuntimeOptionsConfiguration.cs +++ b/src/Sentry.Unity/SentryRuntimeOptionsConfiguration.cs @@ -2,14 +2,14 @@ namespace Sentry.Unity { - public abstract class RuntimeOptionsConfiguration : ScriptableObject + public abstract class SentryRuntimeOptionsConfiguration : ScriptableObject { /// /// Called at the player startup by SentryInitialization. /// You can alter configuration for the C# error handling and also /// native error handling in platforms other than iOS, macOS and Android. /// - /// + /// public abstract void Configure(SentryUnityOptions options); } } diff --git a/test/Scripts.Integration.Test/Editor/BuildtimeOptions.cs b/test/Scripts.Integration.Test/Editor/BuildtimeOptions.cs index d0d2425a3..41142da27 100644 --- a/test/Scripts.Integration.Test/Editor/BuildtimeOptions.cs +++ b/test/Scripts.Integration.Test/Editor/BuildtimeOptions.cs @@ -5,7 +5,7 @@ using UnityEditor; [CreateAssetMenu(fileName = "Assets/Resources/Sentry/BuildtimeOptions.cs", menuName = "Sentry/BuildtimeOptions", order = 999)] -public class BuildtimeOptions : Sentry.Unity.Editor.ScriptableOptionsConfiguration +public class BuildtimeOptions : SentryBuildtimeOptionsConfiguration { public override void Configure(SentryUnityOptions options, SentryCliOptions cliOptions) { diff --git a/test/Scripts.Integration.Test/Scripts/RuntimeOptions.cs b/test/Scripts.Integration.Test/Scripts/RuntimeOptions.cs index 8a3d01f2a..084fe1ae9 100644 --- a/test/Scripts.Integration.Test/Scripts/RuntimeOptions.cs +++ b/test/Scripts.Integration.Test/Scripts/RuntimeOptions.cs @@ -3,7 +3,7 @@ using UnityEngine; [CreateAssetMenu(fileName = "Assets/Resources/Sentry/RuntimeOptions.cs", menuName = "Sentry/RuntimeOptions", order = 999)] -public class RuntimeOptions : ScriptableOptionsConfiguration +public class RuntimeOptions : SentryRuntimeOptionsConfiguration { public override void Configure(SentryUnityOptions options) { diff --git a/test/Scripts.Integration.Test/configure-sentry.ps1 b/test/Scripts.Integration.Test/configure-sentry.ps1 index 81bc2f050..bfbe478a1 100644 --- a/test/Scripts.Integration.Test/configure-sentry.ps1 +++ b/test/Scripts.Integration.Test/configure-sentry.ps1 @@ -27,6 +27,6 @@ function AssertPathExists([string] $Path) } AssertPathExists "$NewProjectAssetsPath/Plugins/Sentry/SentryCliOptions.asset" -AssertPathExists "$NewProjectAssetsPath/Plugins/Sentry/BuildtimeOptions.asset" +AssertPathExists "$NewProjectAssetsPath/Resources/Sentry/BuildtimeOptions.asset" AssertPathExists "$NewProjectAssetsPath/Resources/Sentry/SentryOptions.asset" AssertPathExists "$NewProjectAssetsPath/Resources/Sentry/RuntimeOptions.asset" diff --git a/test/Scripts.Integration.Test/integration-test.ps1 b/test/Scripts.Integration.Test/integration-test.ps1 index b0a5d287b..4a90e3ad4 100644 --- a/test/Scripts.Integration.Test/integration-test.ps1 +++ b/test/Scripts.Integration.Test/integration-test.ps1 @@ -20,7 +20,7 @@ If ($IsMacOS) { $UnityPath = "/Applications/Unity/Hub/Editor/$UnityVersion*/Unity.app/" } -elseif ($IsWindows) +Elseif ($IsWindows) { $UnityPath = "C:/Program Files/Unity/Hub/Editor/$UnityVersion/Editor/Unity.exe" } @@ -72,19 +72,24 @@ If (-not(Test-Path -Path "$NewProjectPath") -Or $Recreate) $buildDir = "Samples/IntegrationTest/Build" -if ($Rebuild -or -not(Test-Path -Path $buildDir)) +If ($Rebuild -or -not(Test-Path -Path $buildDir)) { Write-Host "Building Project" - ./test/Scripts.Integration.Test/build-project.ps1 -UnityPath "$UnityPath" -UnityVersion $UnityVersion -Platform $Platform - if ($Platform -eq "iOS") + + If ($Platform -eq "iOS") { + ./test/Scripts.Integration.Test/build-project.ps1 -UnityPath "$UnityPath" -UnityVersion $UnityVersion -Platform $Platform ./scripts/smoke-test-ios.ps1 Build -IsIntegrationTest -UnityVersion $UnityVersion } + Else + { + ./test/Scripts.Integration.Test/build-project.ps1 -UnityPath "$UnityPath" -CheckSymbols -UnityVersion $UnityVersion -Platform $Platform + } } Write-Host "Running tests" -switch -Regex ($Platform) +Switch -Regex ($Platform) { "^(Windows|MacOS|Linux)$" { diff --git a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs index 0ec17715a..ca8718604 100644 --- a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs +++ b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs @@ -20,7 +20,7 @@ class Fixture persistentDataPath: "test/persistent/data/path"); } - class TestOptionsConfiguration : RuntimeOptionsConfiguration + class TestOptionsConfiguration : SentryRuntimeOptionsConfiguration { public bool GotCalled; public override void Configure(SentryUnityOptions options) => GotCalled = true; From a21222eaa6a5ef11d3966cb8428fe362b2e2fb1f Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 28 Dec 2022 11:21:32 +0100 Subject: [PATCH 5/9] Updated CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bb357fee..df612b668 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixes + +- The SDK no longer creates warnings when loading the options ([#1128](https://github.com/getsentry/sentry-unity/pull/1128)) + ### Features - Mono PDB files upload during build ([#1106](https://github.com/getsentry/sentry-unity/pull/1106)) From 0404959d98ee9d9d741c438986d8bb02ec2f22b8 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 28 Dec 2022 16:19:53 +0100 Subject: [PATCH 6/9] fixed config creation menu --- ...tionsConfiguration.cs => BuildtimeOptionsConfiguration.cs} | 4 ++-- ...guration.cs.meta => BuildtimeOptionsConfiguration.cs.meta} | 0 ...OptionsConfiguration.cs => RuntimeOptionsConfiguration.cs} | 4 ++-- ...figuration.cs.meta => RuntimeOptionsConfiguration.cs.meta} | 0 .../ConfigurationWindow/OptionsConfigurationTab.cs | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) rename samples/unity-of-bugs/Assets/Scripts/{SentryBuildtimeOptionsConfiguration.cs => BuildtimeOptionsConfiguration.cs} (61%) rename samples/unity-of-bugs/Assets/Scripts/{SentryBuildtimeOptionsConfiguration.cs.meta => BuildtimeOptionsConfiguration.cs.meta} (100%) rename samples/unity-of-bugs/Assets/Scripts/{SentryRuntimeOptionsConfiguration.cs => RuntimeOptionsConfiguration.cs} (74%) rename samples/unity-of-bugs/Assets/Scripts/{SentryRuntimeOptionsConfiguration.cs.meta => RuntimeOptionsConfiguration.cs.meta} (100%) diff --git a/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs b/samples/unity-of-bugs/Assets/Scripts/BuildtimeOptionsConfiguration.cs similarity index 61% rename from samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs rename to samples/unity-of-bugs/Assets/Scripts/BuildtimeOptionsConfiguration.cs index 5841a7855..f12e74626 100644 --- a/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs +++ b/samples/unity-of-bugs/Assets/Scripts/BuildtimeOptionsConfiguration.cs @@ -1,8 +1,8 @@ using UnityEngine; using Sentry.Unity; -[CreateAssetMenu(fileName = "Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset", menuName = "Sentry/Assets/Resources/Sentry/SentryBuildtimeOptionsConfiguration.asset", order = 999)] -public class SentryBuildtimeOptionsConfiguration : Sentry.Unity.BuildtimeOptionsConfiguration +[CreateAssetMenu(fileName = "Assets/Resources/Sentry/BuildtimeOptionsConfiguration.asset", menuName = "Sentry/BuildtimeOptionsConfiguration.asset", order = 999)] +public class BuildtimeOptionsConfiguration : SentryBuildtimeOptionsConfiguration { /// See base class for documentation. /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration diff --git a/samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta b/samples/unity-of-bugs/Assets/Scripts/BuildtimeOptionsConfiguration.cs.meta similarity index 100% rename from samples/unity-of-bugs/Assets/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta rename to samples/unity-of-bugs/Assets/Scripts/BuildtimeOptionsConfiguration.cs.meta diff --git a/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs b/samples/unity-of-bugs/Assets/Scripts/RuntimeOptionsConfiguration.cs similarity index 74% rename from samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs rename to samples/unity-of-bugs/Assets/Scripts/RuntimeOptionsConfiguration.cs index 19fd1d4f9..1db5c5abe 100644 --- a/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs +++ b/samples/unity-of-bugs/Assets/Scripts/RuntimeOptionsConfiguration.cs @@ -1,8 +1,8 @@ using UnityEngine; using Sentry.Unity; -[CreateAssetMenu(fileName = "Assets/Resources/Sentry/SentryRuntimeOptionsConfiguration.asset", menuName = "Sentry/Assets/Resources/Sentry/SentryRuntimeOptionsConfiguration.asset", order = 999)] -public class SentryRuntimeOptionsConfiguration : Sentry.Unity.RuntimeOptionsConfiguration +[CreateAssetMenu(fileName = "Assets/Resources/Sentry/RuntimeOptionsConfiguration.asset", menuName = "Sentry/RuntimeOptionsConfiguration", order = 999)] +public class RuntimeOptionsConfiguration : SentryRuntimeOptionsConfiguration { /// See base class for documentation. /// Learn more at https://docs.sentry.io/platforms/unity/configuration/options/#programmatic-configuration diff --git a/samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs.meta b/samples/unity-of-bugs/Assets/Scripts/RuntimeOptionsConfiguration.cs.meta similarity index 100% rename from samples/unity-of-bugs/Assets/Scripts/SentryRuntimeOptionsConfiguration.cs.meta rename to samples/unity-of-bugs/Assets/Scripts/RuntimeOptionsConfiguration.cs.meta diff --git a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs index fb108b166..6f922d2c6 100644 --- a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs +++ b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs @@ -97,7 +97,7 @@ private static void CreateScript(string fieldName, string scriptName) template.AppendLine("using UnityEngine;"); template.AppendLine("using Sentry.Unity;"); template.AppendLine(); - template.AppendFormat("[CreateAssetMenu(fileName = \"{0}\", menuName = \"Sentry/{0}\", order = 999)]\n", SentryAssetPath(scriptName)); + template.AppendFormat("[CreateAssetMenu(fileName = \"{0}\", menuName = \"Sentry/{1}\", order = 999)]\n", SentryAssetPath(scriptName), scriptName); template.AppendFormat("public class {0} : {1}\n", scriptName, typeof(T).FullName); template.AppendLine("{"); template.AppendLine(" /// See base class for documentation."); From 0c25b849a5b93c851249821f3eace96d88e468ab Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Wed, 4 Jan 2023 14:04:32 +0100 Subject: [PATCH 7/9] updated snapshot --- test/Scripts.Tests/package-release.zip.snapshot | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/Scripts.Tests/package-release.zip.snapshot b/test/Scripts.Tests/package-release.zip.snapshot index cbb5f2a9f..3e6d968ea 100644 --- a/test/Scripts.Tests/package-release.zip.snapshot +++ b/test/Scripts.Tests/package-release.zip.snapshot @@ -251,13 +251,13 @@ Samples~/unity-of-bugs/Scripts/AdditionalButtons.cs Samples~/unity-of-bugs/Scripts/AdditionalButtons.cs.meta Samples~/unity-of-bugs/Scripts/BugFarmButtons.cs Samples~/unity-of-bugs/Scripts/BugFarmButtons.cs.meta +Samples~/unity-of-bugs/Scripts/BuildtimeOptionsConfiguration.cs +Samples~/unity-of-bugs/Scripts/BuildtimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scripts/NativeSupport.meta +Samples~/unity-of-bugs/Scripts/RuntimeOptionsConfiguration.cs +Samples~/unity-of-bugs/Scripts/RuntimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scripts/SceneButtons.cs Samples~/unity-of-bugs/Scripts/SceneButtons.cs.meta -Samples~/unity-of-bugs/Scripts/SentryBuildtimeOptionsConfiguration.cs -Samples~/unity-of-bugs/Scripts/SentryBuildtimeOptionsConfiguration.cs.meta -Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs -Samples~/unity-of-bugs/Scripts/SentryRuntimeOptionsConfiguration.cs.meta Samples~/unity-of-bugs/Scripts/ThreadingSamples.cs Samples~/unity-of-bugs/Scripts/ThreadingSamples.cs.meta Samples~/unity-of-bugs/Scripts/NativeSupport/AndroidButtons.cs From 033f6542bc1e3826b15fb1985597b018ad90747f Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Mon, 16 Jan 2023 12:25:58 +0100 Subject: [PATCH 8/9] reverted renaming of 'optionconfiguration' --- .../ConfigurationWindow/OptionsConfigurationTab.cs | 6 +++--- .../ScriptableSentryUnityOptionsEditor.cs | 2 +- src/Sentry.Unity/ScriptableSentryUnityOptions.cs | 7 ++++--- .../ScriptableSentryUnityOptionsTests.cs | 2 +- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs index 6f922d2c6..a05acecb4 100644 --- a/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs +++ b/src/Sentry.Unity.Editor/ConfigurationWindow/OptionsConfigurationTab.cs @@ -32,8 +32,8 @@ public static void Display(ScriptableSentryUnityOptions options) EditorGUILayout.Space(); - options.RuntimeOptionsConfiguration = OptionsConfigurationItem.Display( - options.RuntimeOptionsConfiguration, + options.OptionsConfiguration = OptionsConfigurationItem.Display( + options.OptionsConfiguration, "Runtime Options Script", "SentryRuntimeOptionsConfiguration" ); @@ -153,7 +153,7 @@ internal static void SetScript(string scriptNameWithoutExtension) else { // Don't overwrite already set OptionsConfiguration - options.RuntimeOptionsConfiguration ??= optionsConfigurationObject as SentryRuntimeOptionsConfiguration; + options.OptionsConfiguration ??= optionsConfigurationObject as SentryRuntimeOptionsConfiguration; } } } diff --git a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs index 19fc8a050..f5920ce08 100644 --- a/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs +++ b/src/Sentry.Unity.Editor/ScriptableSentryUnityOptionsEditor.cs @@ -71,7 +71,7 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); EditorGUILayout.LabelField("Options Configuration", EditorStyles.boldLabel); - EditorGUILayout.ObjectField("Runtime Configuration", options.RuntimeOptionsConfiguration, + EditorGUILayout.ObjectField("Runtime Configuration", options.OptionsConfiguration, typeof(SentryRuntimeOptionsConfiguration), false); EditorGUILayout.ObjectField("Buildtime Configuration", options.BuildtimeOptionsConfiguration, typeof(SentryBuildtimeOptionsConfiguration), false); diff --git a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs index 271517dbe..4cde9e2ba 100644 --- a/src/Sentry.Unity/ScriptableSentryUnityOptions.cs +++ b/src/Sentry.Unity/ScriptableSentryUnityOptions.cs @@ -2,6 +2,7 @@ using Sentry.Extensibility; using Sentry.Unity.Integrations; using UnityEngine; +using UnityEngine.Serialization; namespace Sentry.Unity { @@ -75,7 +76,7 @@ public static string GetConfigPath(string? notDefaultConfigName = null) [field: SerializeField] public bool LinuxNativeSupportEnabled { get; set; } = true; [field: SerializeField] public bool Il2CppLineNumberSupportEnabled { get; set; } = true; - [field: SerializeField] public SentryRuntimeOptionsConfiguration? RuntimeOptionsConfiguration { get; set; } + [field: SerializeField] public SentryRuntimeOptionsConfiguration? OptionsConfiguration { get; set; } [field: SerializeField] public SentryBuildtimeOptionsConfiguration? BuildtimeOptionsConfiguration { get; set; } [field: SerializeField] public bool Debug { get; set; } = true; @@ -186,9 +187,9 @@ internal SentryUnityOptions ToSentryUnityOptions(bool isBuilding, ISentryUnityIn if (!isBuilding) { - if (RuntimeOptionsConfiguration != null) + if (OptionsConfiguration != null) { - RuntimeOptionsConfiguration.Configure(options); + OptionsConfiguration.Configure(options); } // Doing this after the configure callback to allow users to programmatically opt out diff --git a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs index ca8718604..c256cab5d 100644 --- a/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs +++ b/test/Sentry.Unity.Tests/ScriptableSentryUnityOptionsTests.cs @@ -114,7 +114,7 @@ public void ToSentryUnityOptions_HasOptionsConfiguration_GetsCalled(bool isBuild { var optionsConfiguration = ScriptableObject.CreateInstance(); var scriptableOptions = ScriptableObject.CreateInstance(); - scriptableOptions.RuntimeOptionsConfiguration = optionsConfiguration; + scriptableOptions.OptionsConfiguration = optionsConfiguration; scriptableOptions.ToSentryUnityOptions(isBuilding); From 2420d202feadace837c74adc892a3e70d54924cc Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Mon, 16 Jan 2023 12:56:03 +0100 Subject: [PATCH 9/9] Updated CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df612b668..62bd32c70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,9 @@ ## Unreleased -### Fixes +### Breaking Changes -- The SDK no longer creates warnings when loading the options ([#1128](https://github.com/getsentry/sentry-unity/pull/1128)) +- Fixed the SDK creating warnings before initializing when loading the options. This will require you to reassign the option configuration in the editor configuration window. ([#1128](https://github.com/getsentry/sentry-unity/pull/1128)) ### Features