From 4b74293ac9c9daf26bcae9aeaccd20a8465e567f Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Wed, 23 Apr 2025 17:14:05 -0700 Subject: [PATCH 01/15] bump scm version to get an alpha azure.core out --- eng/Packages.Data.props | 6 ++-- sdk/core/Azure.Core/src/AzureCoreContext.cs | 14 +++++++++ .../src/RehydrationToken.Serialization.cs | 2 +- .../Azure.Core/tests/RehydrationTokenTests.cs | 3 ++ .../tests/System.ClientModel.Tests.csproj | 1 + .../JsonModelConverterTests.cs | 31 +++---------------- .../SystemClientModelTestsInternalContext.cs | 23 ++++++++++++++ 7 files changed, 49 insertions(+), 31 deletions(-) create mode 100644 sdk/core/Azure.Core/src/AzureCoreContext.cs create mode 100644 sdk/core/System.ClientModel/tests/internal/ModelReaderWriter/SystemClientModelTestsInternalContext.cs diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index a9de404bfbbb..7367830f3d66 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -86,7 +86,7 @@ - + @@ -207,7 +207,7 @@ - + - + @@ -207,7 +207,7 @@ - + - + @@ -208,7 +208,7 @@ - + - + @@ -98,7 +98,7 @@ - + @@ -208,7 +208,7 @@ - + - + @@ -209,7 +209,7 @@ - + - + @@ -411,7 +411,7 @@ - + diff --git a/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj b/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj index 611540da825a..d90f45059336 100644 --- a/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj +++ b/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj @@ -11,7 +11,7 @@ - + diff --git a/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj b/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj index 4a0b242b7bb0..13d3d1ee5e83 100644 --- a/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj +++ b/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj @@ -4,7 +4,7 @@ true - + diff --git a/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs b/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs index f400c7f6e341..0874f9260892 100644 --- a/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs +++ b/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs @@ -17,6 +17,9 @@ ValueTask IOperationSource.CreateResultAsync(Response response, Cancellati => new ValueTask(CreateResult(response)); private T CreateResult(Response response) + //TODO: Will add an AOT compatible overload during https://github.com/Azure/azure-sdk-for-net/issues/48294 +#pragma warning disable AZC0150 // Use ModelReaderWriter overloads with ModelReaderWriterContext => ModelReaderWriter.Read(response.Content)!; +#pragma warning restore AZC0150 // Use ModelReaderWriter overloads with ModelReaderWriterContext } } diff --git a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs index e6e080d763d4..8c9722419d59 100644 --- a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs +++ b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs @@ -99,7 +99,7 @@ public static IOperation Create( // TODO: Once we remove NextLinkOperationImplementation from internal shared and make it internal to Azure.Core only in https://github.com/Azure/azure-sdk-for-net/issues/43260 // We can access the internal members from RehydrationToken directly - var data = ModelReaderWriter.Write(rehydrationToken!, ModelReaderWriterOptions.Json); + var data = ModelReaderWriter.Write(rehydrationToken!, ModelReaderWriterOptions.Json, AzureCoreContext.Default); using var document = JsonDocument.Parse(data); var lroDetails = document.RootElement; @@ -228,7 +228,7 @@ public static RehydrationToken GetRehydrationToken( {"version":"{{RehydrationTokenVersion}}","id":{{ConstructStringValue(operationId)}},"requestMethod":"{{requestMethod}}","initialUri":"{{startRequestUri.AbsoluteUri}}","nextRequestUri":"{{nextRequestUri}}","headerSource":"{{headerSource}}","finalStateVia":"{{finalStateVia}}","lastKnownLocation":{{ConstructStringValue(lastKnownLocation)}}} """; var data = new BinaryData(json); - return ModelReaderWriter.Read(data); + return ModelReaderWriter.Read(data, ModelReaderWriterOptions.Json, AzureCoreContext.Default); } private static string? ConstructStringValue(string? value) => value is null ? "null" : $"\"{value}\""; From 0361e44be63fdfb526d7eecb470f1b788f795914 Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Mon, 5 May 2025 10:26:23 -0700 Subject: [PATCH 09/15] Update Azure.AI.OpenAI.Tests.csproj --- sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj b/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj index ef08f13099ee..578ad46527cb 100644 --- a/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj +++ b/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj @@ -24,7 +24,7 @@ --> - + From 21712d83bcc027ab92c69037d2f1e61c42c2ec8b Mon Sep 17 00:00:00 2001 From: Wes Haggard Date: Mon, 5 May 2025 10:28:09 -0700 Subject: [PATCH 10/15] Update Azure.AI.OpenAI.Tests.csproj --- sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj b/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj index 578ad46527cb..de4c116aeff5 100644 --- a/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj +++ b/sdk/openai/Azure.AI.OpenAI/tests/Azure.AI.OpenAI.Tests.csproj @@ -24,7 +24,6 @@ --> - From 0dd705a75feebf9c27cd63a3d618da468c0e7552 Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Mon, 5 May 2025 10:29:55 -0700 Subject: [PATCH 11/15] remove version override --- sdk/openai/tools/TestFramework/src/OpenAI.TestFramework.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/sdk/openai/tools/TestFramework/src/OpenAI.TestFramework.csproj b/sdk/openai/tools/TestFramework/src/OpenAI.TestFramework.csproj index 6543070b5e9e..7bcaae509dab 100644 --- a/sdk/openai/tools/TestFramework/src/OpenAI.TestFramework.csproj +++ b/sdk/openai/tools/TestFramework/src/OpenAI.TestFramework.csproj @@ -20,7 +20,6 @@ - From 8e6c1ceb2cbe7a3652309b3a815d35f17dc09f9a Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Mon, 5 May 2025 13:03:03 -0700 Subject: [PATCH 12/15] temp suppress azc0150 --- sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj b/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj index c5563418be7f..0789e55c3c81 100644 --- a/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj +++ b/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj @@ -10,6 +10,8 @@ $(RequiredTargetFrameworks) true $(NoWarn);CS1591;AZC0012;AZC0102;CS8002;CS0436;AZC0112;OPENAI001;OPENAI002;AOAI001 + + $(NoWarn);AZC0150 enable preview disable @@ -25,7 +27,7 @@ - + From 2b1292bac60975d08c20e0eb1396a07ad25e2c5a Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Mon, 5 May 2025 13:46:44 -0700 Subject: [PATCH 13/15] revert new analyzer until azure.core GAs --- eng/Packages.Data.props | 2 +- .../src/Azure.Core.Experimental.csproj | 2 +- .../src/Azure.Core.TestFramework.csproj | 2 +- sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs | 3 --- .../Azure.Core/src/Shared/NextLinkOperationImplementation.cs | 4 ++-- sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj | 2 -- 6 files changed, 5 insertions(+), 10 deletions(-) diff --git a/eng/Packages.Data.props b/eng/Packages.Data.props index b5761d5c2df8..51f2c9e4e2e9 100644 --- a/eng/Packages.Data.props +++ b/eng/Packages.Data.props @@ -278,7 +278,7 @@ --> - + diff --git a/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj b/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj index d90f45059336..611540da825a 100644 --- a/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj +++ b/sdk/core/Azure.Core.Experimental/src/Azure.Core.Experimental.csproj @@ -11,7 +11,7 @@ - + diff --git a/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj b/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj index 13d3d1ee5e83..4a0b242b7bb0 100644 --- a/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj +++ b/sdk/core/Azure.Core.TestFramework/src/Azure.Core.TestFramework.csproj @@ -4,7 +4,7 @@ true - + diff --git a/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs b/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs index 0874f9260892..f400c7f6e341 100644 --- a/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs +++ b/sdk/core/Azure.Core/src/Internal/GenericOperationSource.cs @@ -17,9 +17,6 @@ ValueTask IOperationSource.CreateResultAsync(Response response, Cancellati => new ValueTask(CreateResult(response)); private T CreateResult(Response response) - //TODO: Will add an AOT compatible overload during https://github.com/Azure/azure-sdk-for-net/issues/48294 -#pragma warning disable AZC0150 // Use ModelReaderWriter overloads with ModelReaderWriterContext => ModelReaderWriter.Read(response.Content)!; -#pragma warning restore AZC0150 // Use ModelReaderWriter overloads with ModelReaderWriterContext } } diff --git a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs index 8c9722419d59..72f892348c78 100644 --- a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs +++ b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs @@ -99,7 +99,7 @@ public static IOperation Create( // TODO: Once we remove NextLinkOperationImplementation from internal shared and make it internal to Azure.Core only in https://github.com/Azure/azure-sdk-for-net/issues/43260 // We can access the internal members from RehydrationToken directly - var data = ModelReaderWriter.Write(rehydrationToken!, ModelReaderWriterOptions.Json, AzureCoreContext.Default); + var data = ModelReaderWriter.Write(rehydrationToken!, ModelReaderWriterOptions.Json); using var document = JsonDocument.Parse(data); var lroDetails = document.RootElement; @@ -228,7 +228,7 @@ public static RehydrationToken GetRehydrationToken( {"version":"{{RehydrationTokenVersion}}","id":{{ConstructStringValue(operationId)}},"requestMethod":"{{requestMethod}}","initialUri":"{{startRequestUri.AbsoluteUri}}","nextRequestUri":"{{nextRequestUri}}","headerSource":"{{headerSource}}","finalStateVia":"{{finalStateVia}}","lastKnownLocation":{{ConstructStringValue(lastKnownLocation)}}} """; var data = new BinaryData(json); - return ModelReaderWriter.Read(data, ModelReaderWriterOptions.Json, AzureCoreContext.Default); + return ModelReaderWriter.Read(data, ModelReaderWriterOptions.Json); } private static string? ConstructStringValue(string? value) => value is null ? "null" : $"\"{value}\""; diff --git a/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj b/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj index 0789e55c3c81..443ef461bf83 100644 --- a/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj +++ b/sdk/openai/Azure.AI.OpenAI/src/Azure.AI.OpenAI.csproj @@ -10,8 +10,6 @@ $(RequiredTargetFrameworks) true $(NoWarn);CS1591;AZC0012;AZC0102;CS8002;CS0436;AZC0112;OPENAI001;OPENAI002;AOAI001 - - $(NoWarn);AZC0150 enable preview disable From 646a42752013f705238c955ed158ee71af34ad87 Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Mon, 5 May 2025 14:25:22 -0700 Subject: [PATCH 14/15] revert one more context ref --- sdk/core/Azure.Core/src/RehydrationToken.Serialization.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/core/Azure.Core/src/RehydrationToken.Serialization.cs b/sdk/core/Azure.Core/src/RehydrationToken.Serialization.cs index c9a4ca9ca7c0..50e16fca3bde 100644 --- a/sdk/core/Azure.Core/src/RehydrationToken.Serialization.cs +++ b/sdk/core/Azure.Core/src/RehydrationToken.Serialization.cs @@ -140,7 +140,7 @@ BinaryData IPersistableModel.Write(ModelReaderWriterOptions op switch (format) { case "J": - return ModelReaderWriter.Write(this, options, AzureCoreContext.Default); + return ModelReaderWriter.Write(this, options); default: throw new FormatException($"The model {nameof(RehydrationToken)} does not support '{options.Format}' format."); } From 46e9d8fcac5546d8f522d79d6ae77b0d8f80ebfa Mon Sep 17 00:00:00 2001 From: m-nash <64171366+m-nash@users.noreply.github.com> Date: Tue, 6 May 2025 10:57:10 -0700 Subject: [PATCH 15/15] update proj ref swap to deal with source generation --- eng/Directory.Build.Common.targets | 8 ++++++++ .../src/Shared/NextLinkOperationImplementation.cs | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/eng/Directory.Build.Common.targets b/eng/Directory.Build.Common.targets index 66c323f37ad8..6e29541576c5 100644 --- a/eng/Directory.Build.Common.targets +++ b/eng/Directory.Build.Common.targets @@ -195,6 +195,14 @@ + + + <_DependsOnSystemClientModel Include="@(ProjectsToConvert)" Exclude="System.ClientModel" /> + diff --git a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs index 72f892348c78..e6e080d763d4 100644 --- a/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs +++ b/sdk/core/Azure.Core/src/Shared/NextLinkOperationImplementation.cs @@ -228,7 +228,7 @@ public static RehydrationToken GetRehydrationToken( {"version":"{{RehydrationTokenVersion}}","id":{{ConstructStringValue(operationId)}},"requestMethod":"{{requestMethod}}","initialUri":"{{startRequestUri.AbsoluteUri}}","nextRequestUri":"{{nextRequestUri}}","headerSource":"{{headerSource}}","finalStateVia":"{{finalStateVia}}","lastKnownLocation":{{ConstructStringValue(lastKnownLocation)}}} """; var data = new BinaryData(json); - return ModelReaderWriter.Read(data, ModelReaderWriterOptions.Json); + return ModelReaderWriter.Read(data); } private static string? ConstructStringValue(string? value) => value is null ? "null" : $"\"{value}\"";