From 4389f6638ec0c8cd8d4b1bba09a6a58e43488b5a Mon Sep 17 00:00:00 2001 From: Jeff Handley Date: Fri, 20 Feb 2026 00:11:50 -0800 Subject: [PATCH 1/2] Add .NET 11.0 Preview 2 API diff Original Prompt: Create the next API Diff Command: cd release-notes .\RunApiDiff.ps1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../Microsoft.AspNetCore.App/11.0-preview2.md | 8 ++++ ...crosoft.AspNetCore.Components.Endpoints.md | 27 ++++++++++++ ...iew2_Microsoft.Extensions.Identity.Core.md | 11 +++++ ...w2_Microsoft.Extensions.Identity.Stores.md | 11 +++++ .../Microsoft.NETCore.App/11.0-preview2.md | 13 ++++++ .../11.0-preview2_System.Console.md | 13 ++++++ ...1.0-preview2_System.Diagnostics.Process.md | 14 +++++++ .../11.0-preview2_System.Formats.Tar.md | 14 +++++++ .../11.0-preview2_System.Net.Primitives.md | 11 +++++ ...preview2_System.Runtime.InteropServices.md | 11 +++++ ...11.0-preview2_System.Runtime.Intrinsics.md | 41 +++++++++++++++++++ .../11.0-preview2_System.Runtime.md | 31 ++++++++++++++ .../11.0-preview2_System.Text.Json.md | 12 ++++++ .../11.0-preview2.md | 5 +++ .../11.0/preview/preview2/api-diff/README.md | 7 ++++ 15 files changed, 229 insertions(+) create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.AspNetCore.Components.Endpoints.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Core.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Stores.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Console.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Diagnostics.Process.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Formats.Tar.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Net.Primitives.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.InteropServices.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.Intrinsics.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Text.Json.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/11.0-preview2.md create mode 100644 release-notes/11.0/preview/preview2/api-diff/README.md diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2.md new file mode 100644 index 00000000000..d4f4fa736a5 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2.md @@ -0,0 +1,8 @@ +# API difference between .NET 11.0 Preview 1 and .NET 11.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [Microsoft.AspNetCore.Components.Endpoints](11.0-preview2_Microsoft.AspNetCore.Components.Endpoints.md) +* [Microsoft.Extensions.Identity.Core](11.0-preview2_Microsoft.Extensions.Identity.Core.md) +* [Microsoft.Extensions.Identity.Stores](11.0-preview2_Microsoft.Extensions.Identity.Stores.md) diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.AspNetCore.Components.Endpoints.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.AspNetCore.Components.Endpoints.md new file mode 100644 index 00000000000..d252b60e601 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.AspNetCore.Components.Endpoints.md @@ -0,0 +1,27 @@ +# Microsoft.AspNetCore.Components.Endpoints + +```diff + namespace Microsoft.AspNetCore.Components + { ++ public interface ITempData : System.Collections.Generic.IDictionary, System.Collections.Generic.ICollection>, System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable ++ { ++ object? Get(string key); ++ void Keep(); ++ void Keep(string key); ++ object? Peek(string key); ++ } + } + namespace Microsoft.AspNetCore.Components.Endpoints + { + public sealed class RazorComponentsServiceOptions + { ++ public Microsoft.AspNetCore.Http.CookieBuilder TempDataCookie { get; set; } ++ public Microsoft.AspNetCore.Components.Endpoints.TempDataProviderType TempDataProviderType { get; set; } + } ++ public enum TempDataProviderType ++ { ++ Cookie = 0, ++ SessionStorage = 1, ++ } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Core.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Core.md new file mode 100644 index 00000000000..fecf3e97587 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Core.md @@ -0,0 +1,11 @@ +# Microsoft.Extensions.Identity.Core + +```diff + namespace Microsoft.AspNetCore.Identity + { + public sealed class UserPasskeyInfo + { ++ public byte[]? Aaguid { get; set; } + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Stores.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Stores.md new file mode 100644 index 00000000000..56030e06801 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/11.0-preview2_Microsoft.Extensions.Identity.Stores.md @@ -0,0 +1,11 @@ +# Microsoft.Extensions.Identity.Stores + +```diff + namespace Microsoft.AspNetCore.Identity + { + public class IdentityPasskeyData + { ++ public virtual byte[]? Aaguid { get; set; } + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2.md new file mode 100644 index 00000000000..6c68a1e116e --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2.md @@ -0,0 +1,13 @@ +# API difference between .NET 11.0 Preview 1 and .NET 11.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [System.Console](11.0-preview2_System.Console.md) +* [System.Diagnostics.Process](11.0-preview2_System.Diagnostics.Process.md) +* [System.Formats.Tar](11.0-preview2_System.Formats.Tar.md) +* [System.Net.Primitives](11.0-preview2_System.Net.Primitives.md) +* [System.Runtime](11.0-preview2_System.Runtime.md) +* [System.Runtime.InteropServices](11.0-preview2_System.Runtime.InteropServices.md) +* [System.Runtime.Intrinsics](11.0-preview2_System.Runtime.Intrinsics.md) +* [System.Text.Json](11.0-preview2_System.Text.Json.md) diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Console.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Console.md new file mode 100644 index 00000000000..faf0356f065 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Console.md @@ -0,0 +1,13 @@ +# System.Console + +```diff + namespace System + { + public static class Console + { ++ public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenStandardErrorHandle(); ++ public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenStandardInputHandle(); ++ public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenStandardOutputHandle(); + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Diagnostics.Process.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Diagnostics.Process.md new file mode 100644 index 00000000000..3c8b01f6f89 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Diagnostics.Process.md @@ -0,0 +1,14 @@ +# System.Diagnostics.Process + +```diff + namespace System.Diagnostics + { ++ public sealed class ProcessExitStatus ++ { ++ public ProcessExitStatus(int exitCode, bool canceled, System.Runtime.InteropServices.PosixSignal? signal = null); ++ public bool Canceled { get; } ++ public int ExitCode { get; } ++ public System.Runtime.InteropServices.PosixSignal? Signal { get; } ++ } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Formats.Tar.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Formats.Tar.md new file mode 100644 index 00000000000..462acb33d98 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Formats.Tar.md @@ -0,0 +1,14 @@ +# System.Formats.Tar + +```diff + namespace System.Formats.Tar + { + public static class TarFile + { ++ public static void CreateFromDirectory(string sourceDirectoryName, System.IO.Stream destination, bool includeBaseDirectory, System.Formats.Tar.TarEntryFormat format); ++ public static void CreateFromDirectory(string sourceDirectoryName, string destinationFileName, bool includeBaseDirectory, System.Formats.Tar.TarEntryFormat format); ++ public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, System.IO.Stream destination, bool includeBaseDirectory, System.Formats.Tar.TarEntryFormat format, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); ++ public static System.Threading.Tasks.Task CreateFromDirectoryAsync(string sourceDirectoryName, string destinationFileName, bool includeBaseDirectory, System.Formats.Tar.TarEntryFormat format, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)); + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Net.Primitives.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Net.Primitives.md new file mode 100644 index 00000000000..314ba6db729 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Net.Primitives.md @@ -0,0 +1,11 @@ +# System.Net.Primitives + +```diff + namespace System.Net + { + public enum DecompressionMethods + { ++ Zstandard = 8, + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.InteropServices.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.InteropServices.md new file mode 100644 index 00000000000..abb44c390d9 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.InteropServices.md @@ -0,0 +1,11 @@ +# System.Runtime.InteropServices + +```diff + namespace System.Runtime.InteropServices + { + public enum PosixSignal + { ++ SIGKILL = -11, + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.Intrinsics.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.Intrinsics.md new file mode 100644 index 00000000000..d2b8b4642b4 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.Intrinsics.md @@ -0,0 +1,41 @@ +# System.Runtime.Intrinsics + +```diff + namespace System.Runtime.Intrinsics.Arm + { + public abstract class Sve : System.Runtime.Intrinsics.Arm.AdvSimd + { ++ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateBreakAfterMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateBreakAfterPropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right); ++ public static System.Numerics.Vector CreateBreakAfterPropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right); ++ public static System.Numerics.Vector CreateBreakBeforeMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateBreakBeforeMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateBreakBeforePropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right); ++ public static System.Numerics.Vector CreateBreakBeforePropagateMask(System.Numerics.Vector mask, System.Numerics.Vector left, System.Numerics.Vector right); ++ public static System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateBreakPropagateMask(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateMaskForFirstActiveElement(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector CreateMaskForFirstActiveElement(System.Numerics.Vector totalMask, System.Numerics.Vector fromMask); ++ public static System.Numerics.Vector GetFfrDouble(); ++ public static System.Numerics.Vector GetFfrSingle(); ++ public static void SetFfr(System.Numerics.Vector value); ++ public static void SetFfr(System.Numerics.Vector value); ++ public static bool TestAnyTrue(System.Numerics.Vector mask, System.Numerics.Vector rightMask); ++ public static bool TestAnyTrue(System.Numerics.Vector mask, System.Numerics.Vector rightMask); ++ public static bool TestFirstTrue(System.Numerics.Vector leftMask, System.Numerics.Vector rightMask); ++ public static bool TestFirstTrue(System.Numerics.Vector leftMask, System.Numerics.Vector rightMask); ++ public static bool TestLastTrue(System.Numerics.Vector leftMask, System.Numerics.Vector rightMask); ++ public static bool TestLastTrue(System.Numerics.Vector leftMask, System.Numerics.Vector rightMask); + } + public abstract class Sve2 : System.Runtime.Intrinsics.Arm.Sve + { ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateEven(System.Numerics.Vector value, byte count); ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateEven(System.Numerics.Vector value, byte count); ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateEven(System.Numerics.Vector value, byte count); ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, byte count); ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, byte count); ++ public static System.Numerics.Vector ShiftRightLogicalNarrowingSaturateOdd(System.Numerics.Vector even, System.Numerics.Vector value, byte count); + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md new file mode 100644 index 00000000000..1c149201611 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md @@ -0,0 +1,31 @@ +# System.Runtime + +```diff + namespace System + { + public class Uri : System.IEquatable, System.IFormattable, System.ISpanFormattable, System.Runtime.Serialization.ISerializable + { +- [System.ObsoleteAttribute("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")] ++ [System.ObsoleteAttribute("This constructor has been deprecated. Use Uri(string) instead.")] + public Uri(string uriString, bool dontEscape); +- [System.ObsoleteAttribute("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")] ++ [System.ObsoleteAttribute("This constructor has been deprecated. Use Uri(Uri, string) instead.")] + public Uri(System.Uri baseUri, string? relativeUri, bool dontEscape); + } + } + namespace System.Globalization + { + public sealed class IdnMapping + { ++ public bool TryGetAscii(System.ReadOnlySpan unicode, System.Span destination, out int charsWritten); ++ public bool TryGetUnicode(System.ReadOnlySpan ascii, System.Span destination, out int charsWritten); + } + } + namespace System.IO + { + public static class File + { ++ public static Microsoft.Win32.SafeHandles.SafeFileHandle OpenNullHandle(); + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Text.Json.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Text.Json.md new file mode 100644 index 00000000000..7c31720db0f --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Text.Json.md @@ -0,0 +1,12 @@ +# System.Text.Json + +```diff + namespace System.Text.Json + { + public sealed class JsonSerializerOptions + { ++ public System.Text.Json.Serialization.Metadata.JsonTypeInfo GetTypeInfo(); ++ public bool TryGetTypeInfo(out System.Text.Json.Serialization.Metadata.JsonTypeInfo? typeInfo); + } + } +``` diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/11.0-preview2.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/11.0-preview2.md new file mode 100644 index 00000000000..961866e60c7 --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/11.0-preview2.md @@ -0,0 +1,5 @@ +# API difference between .NET 11.0 Preview 1 and .NET 11.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + diff --git a/release-notes/11.0/preview/preview2/api-diff/README.md b/release-notes/11.0/preview/preview2/api-diff/README.md new file mode 100644 index 00000000000..afdb6dbaead --- /dev/null +++ b/release-notes/11.0/preview/preview2/api-diff/README.md @@ -0,0 +1,7 @@ +# .NET 11.0 Preview 2 API Changes + +The following API changes were made in .NET 11.0 Preview 2: + +- [Microsoft.NETCore.App](./Microsoft.NETCore.App/11.0-preview2.md) +- [Microsoft.AspNetCore.App](./Microsoft.AspNetCore.App/11.0-preview2.md) +- [Microsoft.WindowsDesktop.App](./Microsoft.WindowsDesktop.App/11.0-preview2.md) From 8421274f8c5c80146c9b530fabcc34686b2893f3 Mon Sep 17 00:00:00 2001 From: Jeff Handley Date: Tue, 3 Mar 2026 23:47:34 -0800 Subject: [PATCH 2/2] Exclude changes solely from Obsolete attribute message diff --- .../11.0-preview2_System.Runtime.md | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md index 1c149201611..cd046af13de 100644 --- a/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md +++ b/release-notes/11.0/preview/preview2/api-diff/Microsoft.NETCore.App/11.0-preview2_System.Runtime.md @@ -1,18 +1,6 @@ # System.Runtime ```diff - namespace System - { - public class Uri : System.IEquatable, System.IFormattable, System.ISpanFormattable, System.Runtime.Serialization.ISerializable - { -- [System.ObsoleteAttribute("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(string) instead.")] -+ [System.ObsoleteAttribute("This constructor has been deprecated. Use Uri(string) instead.")] - public Uri(string uriString, bool dontEscape); -- [System.ObsoleteAttribute("This constructor has been deprecated; the dontEscape parameter is always false. Use Uri(Uri, string) instead.")] -+ [System.ObsoleteAttribute("This constructor has been deprecated. Use Uri(Uri, string) instead.")] - public Uri(System.Uri baseUri, string? relativeUri, bool dontEscape); - } - } namespace System.Globalization { public sealed class IdnMapping