From b771197d669faa7ec786aba8a7fd96ffde2524a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20S=C3=A1nchez=20L=C3=B3pez?= <1175054+carlossanlop@users.noreply.github.com> Date: Mon, 10 Mar 2025 12:27:09 -0700 Subject: [PATCH] API diff between .NET 10 Preview1 and .NET 10 Preview2 (#9771) * Readme * AspNetCore * NETCore * WindowsDesktop * Fix table of contents title, sort the assemblies * Updated the tool to remove method and property bodies as requested. Also removed private dummy fields. * Fix the fully qualified names --- .../Microsoft.AspNetCore.App/10.0-preview2.md | 8 +++ ...ew2_Microsoft.AspNetCore.Components.Web.md | 11 +++ ...iew2_Microsoft.Extensions.Identity.Core.md | 12 ++++ .../Microsoft.NETCore.App/10.0-preview2.md | 13 ++++ ...0-preview2_System.Collections.Immutable.md | 11 +++ ....0-preview2_System.Linq.AsyncEnumerable.md | 11 +++ .../10.0-preview2_System.Linq.Queryable.md | 11 +++ .../10.0-preview2_System.Linq.md | 11 +++ .../10.0-preview2_System.Numerics.Vectors.md | 15 ++++ ...0.0-preview2_System.Reflection.Metadata.md | 20 ++++++ .../10.0-preview2_System.Runtime.md | 68 +++++++++++++++++++ .../10.0-preview2.md | 8 +++ ....0-preview2_System.Windows.Forms.Design.md | 14 ++++ .../10.0-preview2_System.Windows.Forms.md | 24 +++++++ .../10.0/preview/preview2/api-diff/README.md | 7 ++ 15 files changed, 244 insertions(+) create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.AspNetCore.Components.Web.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.Extensions.Identity.Core.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Collections.Immutable.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.AsyncEnumerable.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.Queryable.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Numerics.Vectors.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Reflection.Metadata.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Runtime.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.Design.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.md create mode 100644 release-notes/10.0/preview/preview2/api-diff/README.md diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2.md new file mode 100644 index 0000000000..3f3f28acbe --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2.md @@ -0,0 +1,8 @@ +# API difference between .NET 10.0 Preview 1 and .NET 10.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [Microsoft.AspNetCore.Components.Web](10.0-preview2_Microsoft.AspNetCore.Components.Web.md) +* [Microsoft.Extensions.Identity.Core](10.0-preview2_Microsoft.Extensions.Identity.Core.md) + diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.AspNetCore.Components.Web.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.AspNetCore.Components.Web.md new file mode 100644 index 0000000000..45c436621a --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.AspNetCore.Components.Web.md @@ -0,0 +1,11 @@ +# Microsoft.AspNetCore.Components.Web + +```diff + namespace Microsoft.AspNetCore.Components.Routing + { + public class NavLink : Microsoft.AspNetCore.Components.ComponentBase + { ++ protected virtual bool ShouldMatch(string currentUriAbsolute); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.Extensions.Identity.Core.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.Extensions.Identity.Core.md new file mode 100644 index 0000000000..d57acb7cd5 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.AspNetCore.App/10.0-preview2_Microsoft.Extensions.Identity.Core.md @@ -0,0 +1,12 @@ +# Microsoft.Extensions.Identity.Core + +```diff + namespace Microsoft.AspNetCore.Identity + { + public class UserLoginInfo + { +- public UserLoginInfo(string loginProvider, string providerKey, string? displayName); ++ public UserLoginInfo(string loginProvider, string providerKey, string? providerDisplayName); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2.md new file mode 100644 index 0000000000..8d8e052ea5 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2.md @@ -0,0 +1,13 @@ +# API difference between .NET 10.0 Preview 1 and .NET 10.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [System.Collections.Immutable](10.0-preview2_System.Collections.Immutable.md) +* [System.Linq](10.0-preview2_System.Linq.md) +* [System.Linq.AsyncEnumerable](10.0-preview2_System.Linq.AsyncEnumerable.md) +* [System.Linq.Queryable](10.0-preview2_System.Linq.Queryable.md) +* [System.Numerics.Vectors](10.0-preview2_System.Numerics.Vectors.md) +* [System.Reflection.Metadata](10.0-preview2_System.Reflection.Metadata.md) +* [System.Runtime](10.0-preview2_System.Runtime.md) + diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Collections.Immutable.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Collections.Immutable.md new file mode 100644 index 0000000000..08fb788a3f --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Collections.Immutable.md @@ -0,0 +1,11 @@ +# System.Collections.Immutable + +```diff + namespace System.Runtime.InteropServices + { + public static class ImmutableCollectionsMarshal + { ++ public static System.Memory AsMemory(System.Collections.Immutable.ImmutableArray.Builder? builder); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.AsyncEnumerable.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.AsyncEnumerable.md new file mode 100644 index 0000000000..5bbd1087ba --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.AsyncEnumerable.md @@ -0,0 +1,11 @@ +# System.Linq.AsyncEnumerable + +```diff + namespace System.Linq + { + public static class AsyncEnumerable + { ++ public static System.Collections.Generic.IAsyncEnumerable Shuffle(this System.Collections.Generic.IAsyncEnumerable source); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.Queryable.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.Queryable.md new file mode 100644 index 0000000000..b00900a23f --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.Queryable.md @@ -0,0 +1,11 @@ +# System.Linq.Queryable + +```diff + namespace System.Linq + { + public static class Queryable + { ++ public static System.Linq.IQueryable Shuffle(this System.Linq.IQueryable source); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.md new file mode 100644 index 0000000000..50d628c06b --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Linq.md @@ -0,0 +1,11 @@ +# System.Linq + +```diff + namespace System.Linq + { + public static class Enumerable + { ++ public static System.Collections.Generic.IEnumerable Shuffle(this System.Collections.Generic.IEnumerable source); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Numerics.Vectors.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Numerics.Vectors.md new file mode 100644 index 0000000000..47c2e8e578 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Numerics.Vectors.md @@ -0,0 +1,15 @@ +# System.Numerics.Vectors + +```diff + namespace System.Numerics + { + public struct Vector2 : System.IEquatable, System.IFormattable + { ++ public static float Cross(System.Numerics.Vector2 value1, System.Numerics.Vector2 value2); + } + public struct Vector4 : System.IEquatable, System.IFormattable + { ++ public static System.Numerics.Vector4 Cross(System.Numerics.Vector4 vector1, System.Numerics.Vector4 vector2); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Reflection.Metadata.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Reflection.Metadata.md new file mode 100644 index 0000000000..9c725b24ee --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Reflection.Metadata.md @@ -0,0 +1,20 @@ +# System.Reflection.Metadata + +```diff + namespace System.Reflection.Metadata + { + public readonly struct EventDefinition + { ++ public readonly System.Reflection.Metadata.TypeDefinitionHandle GetDeclaringType(); + } + public readonly struct PropertyDefinition + { ++ public readonly System.Reflection.Metadata.TypeDefinitionHandle GetDeclaringType(); + } + public sealed class TypeName + { ++ public static string Unescape(string name); ++ public string Namespace { get; } + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Runtime.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Runtime.md new file mode 100644 index 0000000000..04d76effb2 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.NETCore.App/10.0-preview2_System.Runtime.md @@ -0,0 +1,68 @@ +# System.Runtime + +```diff + namespace System.Runtime.CompilerServices + { + public sealed class ConditionalWeakTable : System.Collections.Generic.IEnumerable>, System.Collections.IEnumerable where TKey : class where TValue : class + { ++ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public TValue GetOrCreateValue(TKey key); ++ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public TValue GetValue(TKey key, System.Runtime.CompilerServices.ConditionalWeakTable.CreateValueCallback createValueCallback); ++ [System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)] + public delegate TValue CreateValueCallback(TKey key); ++ public TValue GetOrAdd(TKey key, TValue value); ++ public TValue GetOrAdd(TKey key, System.Func valueFactory); ++ public TValue GetOrAdd(TKey key, System.Func valueFactory, TArg factoryArgument); + } + } + namespace System.Runtime.InteropServices + { ++ public struct GCHandle : System.IDisposable, System.IEquatable> where T : class ++ { ++ public GCHandle(T target); ++ public void Dispose(); ++ public override readonly bool Equals(object? obj); ++ public readonly bool Equals(System.Runtime.InteropServices.GCHandle other); ++ public static System.Runtime.InteropServices.GCHandle FromIntPtr(nint value); ++ public override readonly int GetHashCode(); ++ public static nint ToIntPtr(System.Runtime.InteropServices.GCHandle value); ++ public bool IsAllocated { get; } ++ public T Target { get; set; } ++ } ++ public static class GCHandleExtensions ++ { ++ [System.CLSCompliantAttribute(false)] ++ public static unsafe T* GetAddressOfArrayData(this System.Runtime.InteropServices.PinnedGCHandle handle); ++ [System.CLSCompliantAttribute(false)] ++ public static unsafe char* GetAddressOfStringData(this System.Runtime.InteropServices.PinnedGCHandle handle); ++ } ++ public struct PinnedGCHandle : System.IDisposable, System.IEquatable> where T : class ++ { ++ public PinnedGCHandle(T target); ++ public void Dispose(); ++ public override readonly bool Equals(object? obj); ++ public readonly bool Equals(System.Runtime.InteropServices.PinnedGCHandle other); ++ public static System.Runtime.InteropServices.PinnedGCHandle FromIntPtr(nint value); ++ [System.CLSCompliantAttribute(false)] ++ public readonly unsafe void* GetAddressOfObjectData(); ++ public override readonly int GetHashCode(); ++ public static nint ToIntPtr(System.Runtime.InteropServices.PinnedGCHandle value); ++ public bool IsAllocated { get; } ++ public T Target { get; set; } ++ } ++ public struct WeakGCHandle : System.IDisposable, System.IEquatable> where T : class ++ { ++ public WeakGCHandle(T target, bool trackResurrection = false); ++ public void Dispose(); ++ public override readonly bool Equals(object? obj); ++ public readonly bool Equals(System.Runtime.InteropServices.WeakGCHandle other); ++ public static System.Runtime.InteropServices.WeakGCHandle FromIntPtr(nint value); ++ public override readonly int GetHashCode(); ++ public readonly void SetTarget(T target); ++ public static nint ToIntPtr(System.Runtime.InteropServices.WeakGCHandle value); ++ public readonly bool TryGetTarget(out T? target); ++ public bool IsAllocated { get; } ++ } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2.md new file mode 100644 index 0000000000..acee2a1517 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2.md @@ -0,0 +1,8 @@ +# API difference between .NET 10.0 Preview 1 and .NET 10.0 Preview 2 + +API listing follows standard diff formatting. +Lines preceded by a '+' are additions and a '-' indicates removal. + +* [System.Windows.Forms](10.0-preview2_System.Windows.Forms.md) +* [System.Windows.Forms.Design](10.0-preview2_System.Windows.Forms.Design.md) + diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.Design.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.Design.md new file mode 100644 index 0000000000..7612ea400b --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.Design.md @@ -0,0 +1,14 @@ +# System.Windows.Forms.Design + +```diff + namespace System.ComponentModel.Design + { + public class ArrayEditor : System.ComponentModel.Design.CollectionEditor + { +- protected override object[] GetItems(object editValue); +- protected override object SetItems(object editValue, object[] value); ++ protected override object[] GetItems(object? editValue); ++ protected override object? SetItems(object? editValue, object[]? value); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.md b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.md new file mode 100644 index 0000000000..1fbccb49b0 --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/Microsoft.WindowsDesktop.App/10.0-preview2_System.Windows.Forms.md @@ -0,0 +1,24 @@ +# System.Windows.Forms + +```diff + namespace System.Windows.Forms + { + public static class Clipboard + { +- public static bool TryGetData(string format, System.Func resolver, out T data); ++ public static bool TryGetData(string format, System.Func resolver, out T data); + } + public class DataObject : System.Windows.Forms.ITypedDataObject, System.Windows.Forms.IDataObject + { +- public bool TryGetData(string format, System.Func resolver, bool autoConvert, out T data); +- protected virtual bool TryGetDataCore(string format, System.Func? resolver, bool autoConvert, out T data); ++ public bool TryGetData(string format, System.Func resolver, bool autoConvert, out T data); ++ protected virtual bool TryGetDataCore(string format, System.Func? resolver, bool autoConvert, out T data); + } + public static class DataObjectExtensions + { +- public static bool TryGetData(this System.Windows.Forms.IDataObject dataObject, string format, System.Func resolver, bool autoConvert, out T data); ++ public static bool TryGetData(this System.Windows.Forms.IDataObject dataObject, string format, System.Func resolver, bool autoConvert, out T data); + } + } +``` diff --git a/release-notes/10.0/preview/preview2/api-diff/README.md b/release-notes/10.0/preview/preview2/api-diff/README.md new file mode 100644 index 0000000000..1e6691c05c --- /dev/null +++ b/release-notes/10.0/preview/preview2/api-diff/README.md @@ -0,0 +1,7 @@ +# .NET 10.0 Preview 2 API Changes + +The following API changes were made in .NET 10.0 Preview 2: + +- [Microsoft.NETCore.App](./Microsoft.NETCore.App/10.0-preview2.md) +- [Microsoft.AspNetCore.App](./Microsoft.AspNetCore.App/10.0-preview2.md) +- [Microsoft.WindowsDesktop.App](./Microsoft.WindowsDesktop.App/10.0-preview2.md)