Skip to content

Commit 3d8b8c3

Browse files
dotnet-maestro[bot]javiercnBrennanConroy
authored
[release/9.0-preview4] Update dependencies from dotnet/efcore, dotnet/runtime (#55372)
* Update dependencies from https://github.com/dotnet/runtime build 20240425.7 Microsoft.Bcl.AsyncInterfaces , Microsoft.Bcl.TimeProvider , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.Diagnostics , Microsoft.Extensions.Diagnostics.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Http , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NET.Runtime.MonoAOTCompiler.Task , Microsoft.NET.Runtime.WebAssembly.Sdk , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.BrowserDebugHost.Transport , Microsoft.NETCore.Platforms , System.Collections.Immutable , System.Composition , System.Configuration.ConfigurationManager , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , System.Diagnostics.PerformanceCounter , System.DirectoryServices.Protocols , System.IO.Hashing , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.Caching , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.AccessControl , System.Threading.Channels , System.Threading.RateLimiting , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-preview.4.24222.10 -> To Version 9.0.0-preview.4.24225.7 * Update dependencies from https://github.com/dotnet/efcore build 20240426.1 dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 9.0.0-preview.5.24223.1 -> To Version 9.0.0-preview.4.24226.1 * Update the severity of CA1826 to suggestion Update the severity of CA1826 to suggestion as it's not really applicable in modern TFMs (#55361) * [Infrastructure] Unblock installer (#55358) * Fixes to analyzers and build infrastructure. * Update dependencies from https://github.com/dotnet/runtime build 20240427.4 Microsoft.Bcl.AsyncInterfaces , Microsoft.Bcl.TimeProvider , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.Diagnostics , Microsoft.Extensions.Diagnostics.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Http , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NET.Runtime.MonoAOTCompiler.Task , Microsoft.NET.Runtime.WebAssembly.Sdk , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.BrowserDebugHost.Transport , Microsoft.NETCore.Platforms , System.Collections.Immutable , System.Composition , System.Configuration.ConfigurationManager , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , System.Diagnostics.PerformanceCounter , System.DirectoryServices.Protocols , System.IO.Hashing , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.Caching , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.AccessControl , System.Threading.Channels , System.Threading.RateLimiting , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-preview.4.24222.10 -> To Version 9.0.0-preview.4.24227.4 * fix reflection * readonly * Update dependencies from https://github.com/dotnet/runtime build 20240430.10 Microsoft.Bcl.AsyncInterfaces , Microsoft.Bcl.TimeProvider , Microsoft.Extensions.Caching.Abstractions , Microsoft.Extensions.Caching.Memory , Microsoft.Extensions.Configuration , Microsoft.Extensions.Configuration.Abstractions , Microsoft.Extensions.Configuration.Binder , Microsoft.Extensions.Configuration.CommandLine , Microsoft.Extensions.Configuration.EnvironmentVariables , Microsoft.Extensions.Configuration.FileExtensions , Microsoft.Extensions.Configuration.Ini , Microsoft.Extensions.Configuration.Json , Microsoft.Extensions.Configuration.UserSecrets , Microsoft.Extensions.Configuration.Xml , Microsoft.Extensions.DependencyInjection , Microsoft.Extensions.DependencyInjection.Abstractions , Microsoft.Extensions.DependencyModel , Microsoft.Extensions.Diagnostics , Microsoft.Extensions.Diagnostics.Abstractions , Microsoft.Extensions.FileProviders.Abstractions , Microsoft.Extensions.FileProviders.Composite , Microsoft.Extensions.FileProviders.Physical , Microsoft.Extensions.FileSystemGlobbing , Microsoft.Extensions.HostFactoryResolver.Sources , Microsoft.Extensions.Hosting , Microsoft.Extensions.Hosting.Abstractions , Microsoft.Extensions.Http , Microsoft.Extensions.Logging , Microsoft.Extensions.Logging.Abstractions , Microsoft.Extensions.Logging.Configuration , Microsoft.Extensions.Logging.Console , Microsoft.Extensions.Logging.Debug , Microsoft.Extensions.Logging.EventLog , Microsoft.Extensions.Logging.EventSource , Microsoft.Extensions.Logging.TraceSource , Microsoft.Extensions.Options , Microsoft.Extensions.Options.ConfigurationExtensions , Microsoft.Extensions.Options.DataAnnotations , Microsoft.Extensions.Primitives , Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NET.Runtime.MonoAOTCompiler.Task , Microsoft.NET.Runtime.WebAssembly.Sdk , Microsoft.NETCore.App.Ref , Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm , Microsoft.NETCore.App.Runtime.win-x64 , Microsoft.NETCore.BrowserDebugHost.Transport , Microsoft.NETCore.Platforms , System.Collections.Immutable , System.Composition , System.Configuration.ConfigurationManager , System.Diagnostics.DiagnosticSource , System.Diagnostics.EventLog , System.Diagnostics.PerformanceCounter , System.DirectoryServices.Protocols , System.IO.Hashing , System.IO.Pipelines , System.Net.Http.Json , System.Net.Http.WinHttpHandler , System.Reflection.Metadata , System.Resources.Extensions , System.Runtime.Caching , System.Security.Cryptography.Pkcs , System.Security.Cryptography.Xml , System.Security.Permissions , System.ServiceProcess.ServiceController , System.Text.Encodings.Web , System.Text.Json , System.Threading.AccessControl , System.Threading.Channels , System.Threading.RateLimiting , Microsoft.SourceBuild.Intermediate.runtime.linux-x64 From Version 9.0.0-preview.4.24222.10 -> To Version 9.0.0-preview.4.24230.10 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Javier Calvarro Nelson <jacalvar@microsoft.com> Co-authored-by: Brennan <brecon@microsoft.com>
1 parent 4e101b9 commit 3d8b8c3

File tree

9 files changed

+283
-259
lines changed

9 files changed

+283
-259
lines changed

.editorconfig

+1-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ dotnet_diagnostic.CA1823.severity = warning
147147
dotnet_diagnostic.CA1825.severity = warning
148148

149149
# CA1826: Do not use Enumerable methods on indexable collections. Instead use the collection directly
150-
dotnet_diagnostic.CA1826.severity = warning
150+
dotnet_diagnostic.CA1826.severity = suggestion
151151

152152
# CA1827: Do not use Count() or LongCount() when Any() can be used
153153
dotnet_diagnostic.CA1827.severity = warning

eng/Version.Details.xml

+158-158
Large diffs are not rendered by default.

eng/Versions.props

+79-79
Large diffs are not rendered by default.

eng/tools/RepoTasks/RemoveSharedFrameworkDependencies.cs

+7-2
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,17 @@ private void FilterDependencies(string targetPath, ISet<string> dependencyToRemo
6464
var updatedGroup = new PackageDependencyGroup(group.TargetFramework, packages);
6565
foreach (var dependency in group.Packages)
6666
{
67-
if (dependencyToRemove.Contains(dependency.Id))
67+
// Hack to temporarily avoid using ISet.Contains
68+
if (!dependencyToRemove.Add(dependency.Id))
6869
{
6970
referencesFrameworkOnlyAssembly = true;
7071
Log.LogMessage($" Remove dependency on '{dependency.Id}'");
7172
continue;
7273
}
74+
else
75+
{
76+
dependencyToRemove.Remove(dependency.Id);
77+
}
7378

7479
packages.Add(dependency);
7580
}
@@ -107,4 +112,4 @@ private void FilterDependencies(string targetPath, ISet<string> dependencyToRemo
107112
}
108113
}
109114
}
110-
}
115+
}

src/Identity/Specification.Tests/src/UserManagerSpecificationTests.cs

+11-11
Original file line numberDiff line numberDiff line change
@@ -581,9 +581,9 @@ public async Task CanCreateUserAddLogin()
581581
var logins = await manager.GetLoginsAsync(user);
582582
Assert.NotNull(logins);
583583
Assert.Single(logins);
584-
Assert.Equal(provider, logins.First().LoginProvider);
585-
Assert.Equal(providerKey, logins.First().ProviderKey);
586-
Assert.Equal(display, logins.First().ProviderDisplayName);
584+
Assert.Equal(provider, logins[0].LoginProvider);
585+
Assert.Equal(providerKey, logins[0].ProviderKey);
586+
Assert.Equal(display, logins[0].ProviderDisplayName);
587587
}
588588

589589
/// <summary>
@@ -644,9 +644,9 @@ public async Task CanCreateUserAddRemoveLogin()
644644
var logins = await manager.GetLoginsAsync(user);
645645
Assert.NotNull(logins);
646646
Assert.Single(logins);
647-
Assert.Equal(login.LoginProvider, logins.Last().LoginProvider);
648-
Assert.Equal(login.ProviderKey, logins.Last().ProviderKey);
649-
Assert.Equal(login.ProviderDisplayName, logins.Last().ProviderDisplayName);
647+
Assert.Equal(login.LoginProvider, logins[^1].LoginProvider);
648+
Assert.Equal(login.ProviderKey, logins[^1].ProviderKey);
649+
Assert.Equal(login.ProviderDisplayName, logins[^1].ProviderDisplayName);
650650
var stamp = await manager.GetSecurityStampAsync(user);
651651
IdentityResultAssert.IsSuccess(await manager.RemoveLoginAsync(user, login.LoginProvider, login.ProviderKey));
652652
Assert.Null(await manager.FindByLoginAsync(login.LoginProvider, login.ProviderKey));
@@ -772,11 +772,11 @@ public async Task CanReplaceUserClaim()
772772
var userClaims = await manager.GetClaimsAsync(user);
773773
Assert.Equal(1, userClaims.Count);
774774
Claim claim = new Claim("c", "b");
775-
Claim oldClaim = userClaims.FirstOrDefault();
775+
Claim oldClaim = userClaims.Count == 0 ? null : userClaims[0];
776776
IdentityResultAssert.IsSuccess(await manager.ReplaceClaimAsync(user, oldClaim, claim));
777777
var newUserClaims = await manager.GetClaimsAsync(user);
778778
Assert.Equal(1, newUserClaims.Count);
779-
Claim newClaim = newUserClaims.FirstOrDefault();
779+
Claim newClaim = newUserClaims.Count == 0 ? null : newUserClaims[0];
780780
Assert.Equal(claim.Type, newClaim.Type);
781781
Assert.Equal(claim.Value, newClaim.Value);
782782
}
@@ -800,16 +800,16 @@ public async Task ReplaceUserClaimOnlyAffectsUser()
800800
var userClaims2 = await manager.GetClaimsAsync(user);
801801
Assert.Equal(1, userClaims2.Count);
802802
Claim claim = new Claim("c", "b");
803-
Claim oldClaim = userClaims.FirstOrDefault();
803+
Claim oldClaim = userClaims.Count == 0 ? null : userClaims[0];
804804
IdentityResultAssert.IsSuccess(await manager.ReplaceClaimAsync(user, oldClaim, claim));
805805
var newUserClaims = await manager.GetClaimsAsync(user);
806806
Assert.Equal(1, newUserClaims.Count);
807-
Claim newClaim = newUserClaims.FirstOrDefault();
807+
Claim newClaim = newUserClaims.Count == 0 ? null : newUserClaims[0];
808808
Assert.Equal(claim.Type, newClaim.Type);
809809
Assert.Equal(claim.Value, newClaim.Value);
810810
userClaims2 = await manager.GetClaimsAsync(user2);
811811
Assert.Equal(1, userClaims2.Count);
812-
Claim oldClaim2 = userClaims2.FirstOrDefault();
812+
Claim oldClaim2 = userClaims2.Count == 0 ? null : userClaims2[0];
813813
Assert.Equal("c", oldClaim2.Type);
814814
Assert.Equal("a", oldClaim2.Value);
815815
}

src/Mvc/Mvc.Core/src/ApplicationModels/ActionAttributeRouteModel.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public static IEnumerable<SelectorModel> FlattenSelectors(ActionModel actionMode
3131
//
3232
// This is fragile wrt application model customizing the data - but no one has
3333
// run into an issue with this and its pretty esoteric.
34-
additionalSelector = new SelectorModel(actionModel.Controller.Selectors.First());
34+
additionalSelector = new SelectorModel(actionModel.Controller.Selectors[0]);
3535
additionalSelector.AttributeRouteModel = null;
3636

3737
for (var i = additionalSelector.ActionConstraints.Count - 1; i >= 0; i--)

src/Servers/Kestrel/Core/src/KestrelServerOptions.cs

+2-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System.Diagnostics;
5-
using System.Linq;
65
using System.Net;
76
using System.Security.Cryptography.X509Certificates;
87
using System.Text;
@@ -376,9 +375,9 @@ internal void Serialize(Utf8JsonWriter writer)
376375
{
377376
try
378377
{
379-
var cert = CertificateManager.Instance.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: true, requireExportable: false)
380-
.FirstOrDefault();
378+
var certs = CertificateManager.Instance.ListCertificates(StoreName.My, StoreLocation.CurrentUser, isValid: true, requireExportable: false);
381379

380+
var cert = certs.Count > 0 ? certs[0] : null;
382381
if (cert is null)
383382
{
384383
logger.UnableToLocateDevelopmentCertificate();

src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs

+14-4
Original file line numberDiff line numberDiff line change
@@ -829,12 +829,22 @@ private void LaunchStreams(ConnectionState connectionState, Dictionary<string, o
829829
{
830830
_ = _sendIAsyncStreamItemsMethod
831831
.MakeGenericMethod(reader.GetType().GetInterface("IAsyncEnumerable`1")!.GetGenericArguments())
832-
.Invoke(this, new object[] { connectionState, kvp.Key.ToString(), reader, cts });
832+
.Invoke(this, [connectionState, kvp.Key.ToString(), reader, cts]);
833833
continue;
834834
}
835-
_ = _sendStreamItemsMethod
836-
.MakeGenericMethod(reader.GetType().GetGenericArguments())
837-
.Invoke(this, new object[] { connectionState, kvp.Key.ToString(), reader, cts });
835+
else
836+
{
837+
if (ReflectionHelper.TryGetStreamType(reader.GetType(), out var channelGenericType))
838+
{
839+
_ = _sendStreamItemsMethod
840+
.MakeGenericMethod(channelGenericType)
841+
.Invoke(this, [connectionState, kvp.Key.ToString(), reader, cts]);
842+
continue;
843+
}
844+
845+
// Should never get here, we should have already verified the stream types when the user initially calls send/invoke
846+
throw new InvalidOperationException($"{reader.GetType()} is not a {typeof(ChannelReader<>).Name}.");
847+
}
838848
}
839849
}
840850

src/SignalR/common/Shared/ReflectionHelper.cs

+10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
// The .NET Foundation licenses this file to you under the MIT license.
33

44
using System;
5+
using System.Collections.Concurrent;
56
using System.Collections.Generic;
7+
using System.Diagnostics;
68
using System.Diagnostics.CodeAnalysis;
79
using System.Linq;
810
using System.Threading.Channels;
@@ -11,6 +13,8 @@ namespace Microsoft.AspNetCore.SignalR;
1113

1214
internal static class ReflectionHelper
1315
{
16+
private static readonly ConcurrentDictionary<Type, Type> _streamTypeLookup = new();
17+
1418
// mustBeDirectType - Hub methods must use the base 'stream' type and not be a derived class that just implements the 'stream' type
1519
// and 'stream' types from the client are allowed to inherit from accepted 'stream' types
1620
public static bool IsStreamingType([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.Interfaces)] Type type, bool mustBeDirectType = false)
@@ -28,6 +32,9 @@ public static bool IsStreamingType([DynamicallyAccessedMembers(DynamicallyAccess
2832
{
2933
if (nullableType.IsGenericType && nullableType.GetGenericTypeDefinition() == typeof(ChannelReader<>))
3034
{
35+
Debug.Assert(nullableType.GetGenericArguments().Length == 1);
36+
37+
_streamTypeLookup.GetOrAdd(type, nullableType.GetGenericArguments()[0]);
3138
return true;
3239
}
3340

@@ -59,4 +66,7 @@ public static bool IsIAsyncEnumerable([DynamicallyAccessedMembers(DynamicallyAcc
5966
}
6067
});
6168
}
69+
70+
public static bool TryGetStreamType(Type stream, [NotNullWhen(true)] out Type? streamType)
71+
=> _streamTypeLookup.TryGetValue(stream, out streamType);
6272
}

0 commit comments

Comments
 (0)