From e6f6176176a5cbe9d20b605026c07b9f821b12d4 Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Wed, 7 Jun 2023 12:06:04 -0700 Subject: [PATCH 001/128] Update branding to 6.0.19 (#48643) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 9ac58198d9fe..696641326f1f 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,7 +8,7 @@ 6 0 - 18 + 19 false - + - @@ -25,10 +24,8 @@ - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1fe89a302f9c..51b12799c580 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -217,9 +217,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + e37fab9fc9f7bce120a7165491ed392a73f8ab51 diff --git a/eng/Versions.props b/eng/Versions.props index 696641326f1f..0b563149f06a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18-servicing.23269.7 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19-servicing.23318.6 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.18-servicing.23269.7 + 6.0.19-servicing.23318.6 6.0.1 6.0.0 6.0.2 @@ -113,7 +113,7 @@ 6.0.1 6.0.0 6.0.0 - 6.0.3 + 6.0.4 6.0.1 6.0.1 6.0.0 From ba56573e405cf55fe95aef74b9e326b62eee6d9f Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Sun, 18 Jun 2023 21:13:21 -0700 Subject: [PATCH 003/128] Update dependencies from efcore 182030 --- NuGet.config | 1 + eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 25 insertions(+), 24 deletions(-) diff --git a/NuGet.config b/NuGet.config index 12f646f578ed..6d58f765e839 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,6 +7,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 51b12799c580..25c58daba8da 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6482592dff6a30de0d36a2555b6b3e774ed253d2 + 6c0296b50a5af5aa6483b0b3ba89819fb0550c63 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 0b563149f06a..f50da5c08057 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.10 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 - 6.0.18 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 + 6.0.19 6.0.0-beta.23211.7 6.0.0-beta.23211.7 From cd9340856ed85215a911c97c44d52373f6cba2f9 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Sun, 18 Jun 2023 22:39:02 -0700 Subject: [PATCH 004/128] Skip helix tests --- .azure/pipelines/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml index 2c28c29324c2..e4c0c86eae6c 100644 --- a/.azure/pipelines/ci.yml +++ b/.azure/pipelines/ci.yml @@ -1,4 +1,4 @@ -# + # # See https://docs.microsoft.com/en-us/vsts/pipelines/yaml-schema for details on this file. # @@ -788,6 +788,7 @@ stages: # Helix x64 - template: jobs/default-build.yml parameters: + condition: ne(variables['SkipTests'], 'true') jobName: Helix_x64 jobDisplayName: 'Tests: Helix x64' agentOs: Windows From d530c7e55d7bf542fae5457be45e929ee530ff12 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 6 Jul 2023 08:45:31 +0000 Subject: [PATCH 005/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore dnceng/internal/dotnet-runtime --- NuGet.config | 8 +++--- eng/Version.Details.xml | 62 ++++++++++++++++++++--------------------- eng/Versions.props | 30 ++++++++++---------- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5fe2b4af9609..bed55ad23787 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,10 @@ - + - + @@ -25,10 +25,10 @@ - + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e05d62f7680e..c7b164140a1f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 16d152f81ed675c2705aa38b8d6d4027b6525602 + 06531f7f252f34b2e6c48e3179454d36864a416d https://github.com/dotnet/runtime @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,40 +245,40 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a08d9ce2caf02455c0b825bcdc32974bdf769a80 + db1112f52a8581622202f02951e195e57421fc0f https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 9dc73dcfe989..999cc24d5443 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20-servicing.23320.17 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21-servicing.23355.12 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.20-servicing.23320.17 + 6.0.21-servicing.23355.12 6.0.1 6.0.0 6.0.2 @@ -122,14 +122,14 @@ 6.0.11 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 - 6.0.20 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 + 6.0.21 6.0.0-beta.23313.5 6.0.0-beta.23313.5 From e49d53e68b2ea8dd5e38b88fda2be587b540cace Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 6 Jul 2023 19:52:46 +0000 Subject: [PATCH 006/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index bed55ad23787..eb22c5afdc17 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c7b164140a1f..52a5f4eb7e05 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 06531f7f252f34b2e6c48e3179454d36864a416d + 54d936f07e28cfd2edda5a53de8e70739f6e9675 https://github.com/dotnet/runtime From 79a2b3a29442351143c4a514450a317faf1411f0 Mon Sep 17 00:00:00 2001 From: Brennan Conroy Date: Thu, 6 Jul 2023 20:12:44 +0000 Subject: [PATCH 007/128] Merged PR 31898: Avoid Redis pattern matching Avoid Redis pattern matching --- .../src/Internal/RedisChannels.cs | 3 + .../src/RedisHubLifetimeManager.cs | 20 +++--- .../StackExchangeRedis/test/RedisEndToEnd.cs | 67 +++++++++++++++++++ .../test/RedisHubLifetimeManagerTests.cs | 20 ++++++ .../test/TestConnectionMultiplexer.cs | 27 ++++++++ 5 files changed, 127 insertions(+), 10 deletions(-) diff --git a/src/SignalR/server/StackExchangeRedis/src/Internal/RedisChannels.cs b/src/SignalR/server/StackExchangeRedis/src/Internal/RedisChannels.cs index 6f973ea87ec9..2c783329b230 100644 --- a/src/SignalR/server/StackExchangeRedis/src/Internal/RedisChannels.cs +++ b/src/SignalR/server/StackExchangeRedis/src/Internal/RedisChannels.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.CompilerServices; +using StackExchange.Redis; namespace Microsoft.AspNetCore.SignalR.StackExchangeRedis.Internal { @@ -71,5 +72,7 @@ public string Ack(string serverName) { return _prefix + ":internal:ack:" + serverName; } + + public static RedisChannel GetChannel(string channelName) => new RedisChannel(channelName, RedisChannel.PatternMode.Literal); } } diff --git a/src/SignalR/server/StackExchangeRedis/src/RedisHubLifetimeManager.cs b/src/SignalR/server/StackExchangeRedis/src/RedisHubLifetimeManager.cs index ee9fa0e209fc..8007eb34f3f6 100644 --- a/src/SignalR/server/StackExchangeRedis/src/RedisHubLifetimeManager.cs +++ b/src/SignalR/server/StackExchangeRedis/src/RedisHubLifetimeManager.cs @@ -114,7 +114,7 @@ public override Task OnDisconnectedAsync(HubConnectionContext connection) var connectionChannel = _channels.Connection(connection.ConnectionId); RedisLog.Unsubscribe(_logger, connectionChannel); - tasks.Add(_bus!.UnsubscribeAsync(connectionChannel)); + tasks.Add(_bus!.UnsubscribeAsync(RedisChannels.GetChannel(connectionChannel))); var feature = connection.Features.Get()!; var groupNames = feature.Groups; @@ -315,7 +315,7 @@ private async Task PublishAsync(string channel, byte[] payload) { await EnsureRedisServerConnection(); RedisLog.PublishToChannel(_logger, channel); - await _bus!.PublishAsync(channel, payload); + await _bus!.PublishAsync(RedisChannels.GetChannel(channel), payload); } private Task AddGroupAsyncCore(HubConnectionContext connection, string groupName) @@ -347,7 +347,7 @@ private async Task RemoveGroupAsyncCore(HubConnectionContext connection, string await _groups.RemoveSubscriptionAsync(groupChannel, connection, channelName => { RedisLog.Unsubscribe(_logger, channelName); - return _bus!.UnsubscribeAsync(channelName); + return _bus!.UnsubscribeAsync(RedisChannels.GetChannel(channelName)); }); var feature = connection.Features.Get()!; @@ -379,7 +379,7 @@ private Task RemoveUserAsync(HubConnectionContext connection) return _users.RemoveSubscriptionAsync(userChannel, connection, channelName => { RedisLog.Unsubscribe(_logger, channelName); - return _bus!.UnsubscribeAsync(channelName); + return _bus!.UnsubscribeAsync(RedisChannels.GetChannel(channelName)); }); } @@ -396,7 +396,7 @@ public void Dispose() private async Task SubscribeToAll() { RedisLog.Subscribing(_logger, _channels.All); - var channel = await _bus!.SubscribeAsync(_channels.All); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(_channels.All)); channel.OnMessage(async channelMessage => { try @@ -426,7 +426,7 @@ private async Task SubscribeToAll() private async Task SubscribeToGroupManagementChannel() { - var channel = await _bus!.SubscribeAsync(_channels.GroupManagement); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(_channels.GroupManagement)); channel.OnMessage(async channelMessage => { try @@ -463,7 +463,7 @@ private async Task SubscribeToGroupManagementChannel() private async Task SubscribeToAckChannel() { // Create server specific channel in order to send an ack to a single server - var channel = await _bus!.SubscribeAsync(_channels.Ack(_serverName)); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(_channels.Ack(_serverName))); channel.OnMessage(channelMessage => { var ackId = _protocol.ReadAck((byte[])channelMessage.Message); @@ -477,7 +477,7 @@ private async Task SubscribeToConnection(HubConnectionContext connection) var connectionChannel = _channels.Connection(connection.ConnectionId); RedisLog.Subscribing(_logger, connectionChannel); - var channel = await _bus!.SubscribeAsync(connectionChannel); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(connectionChannel)); channel.OnMessage(channelMessage => { var invocation = _protocol.ReadInvocation((byte[])channelMessage.Message); @@ -492,7 +492,7 @@ private Task SubscribeToUser(HubConnectionContext connection) return _users.AddSubscriptionAsync(userChannel, connection, async (channelName, subscriptions) => { RedisLog.Subscribing(_logger, channelName); - var channel = await _bus!.SubscribeAsync(channelName); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(channelName)); channel.OnMessage(async channelMessage => { try @@ -518,7 +518,7 @@ private Task SubscribeToUser(HubConnectionContext connection) private async Task SubscribeToGroupAsync(string groupChannel, HubConnectionStore groupConnections) { RedisLog.Subscribing(_logger, groupChannel); - var channel = await _bus!.SubscribeAsync(groupChannel); + var channel = await _bus!.SubscribeAsync(RedisChannels.GetChannel(groupChannel)); channel.OnMessage(async (channelMessage) => { try diff --git a/src/SignalR/server/StackExchangeRedis/test/RedisEndToEnd.cs b/src/SignalR/server/StackExchangeRedis/test/RedisEndToEnd.cs index 2915168d27c8..c8a71ef2321d 100644 --- a/src/SignalR/server/StackExchangeRedis/test/RedisEndToEnd.cs +++ b/src/SignalR/server/StackExchangeRedis/test/RedisEndToEnd.cs @@ -149,6 +149,73 @@ public async Task CanSendAndReceiveUserMessagesWhenOneConnectionWithUserDisconne } } + [ConditionalTheory] + [SkipIfDockerNotPresent] + [MemberData(nameof(TransportTypesAndProtocolTypes))] + public async Task HubConnectionCanSendAndReceiveGroupMessagesGroupNameWithPatternIsTreatedAsLiteral(HttpTransportType transportType, string protocolName) + { + using (StartVerifiableLog()) + { + var protocol = HubProtocolHelpers.GetHubProtocol(protocolName); + + var connection = CreateConnection(_serverFixture.FirstServer.Url + "/echo", transportType, protocol, LoggerFactory); + var secondConnection = CreateConnection(_serverFixture.SecondServer.Url + "/echo", transportType, protocol, LoggerFactory); + + var tcs = new TaskCompletionSource(); + connection.On("Echo", message => tcs.TrySetResult(message)); + var tcs2 = new TaskCompletionSource(); + secondConnection.On("Echo", message => tcs2.TrySetResult(message)); + + var groupName = $"TestGroup_{transportType}_{protocolName}_{Guid.NewGuid()}"; + + await secondConnection.StartAsync().DefaultTimeout(); + await connection.StartAsync().DefaultTimeout(); + await connection.InvokeAsync("AddSelfToGroup", "*").DefaultTimeout(); + await secondConnection.InvokeAsync("AddSelfToGroup", groupName).DefaultTimeout(); + await connection.InvokeAsync("EchoGroup", groupName, "Hello, World!").DefaultTimeout(); + + Assert.Equal("Hello, World!", await tcs2.Task.DefaultTimeout()); + Assert.False(tcs.Task.IsCompleted); + + await connection.InvokeAsync("EchoGroup", "*", "Hello, World!").DefaultTimeout(); + Assert.Equal("Hello, World!", await tcs.Task.DefaultTimeout()); + + await connection.DisposeAsync().DefaultTimeout(); + } + } + + [ConditionalTheory] + [SkipIfDockerNotPresent] + [MemberData(nameof(TransportTypesAndProtocolTypes))] + public async Task CanSendAndReceiveUserMessagesUserNameWithPatternIsTreatedAsLiteral(HttpTransportType transportType, string protocolName) + { + using (StartVerifiableLog()) + { + var protocol = HubProtocolHelpers.GetHubProtocol(protocolName); + + var connection = CreateConnection(_serverFixture.FirstServer.Url + "/echo", transportType, protocol, LoggerFactory, userName: "*"); + var secondConnection = CreateConnection(_serverFixture.SecondServer.Url + "/echo", transportType, protocol, LoggerFactory, userName: "userA"); + + var tcs = new TaskCompletionSource(); + connection.On("Echo", message => tcs.TrySetResult(message)); + var tcs2 = new TaskCompletionSource(); + secondConnection.On("Echo", message => tcs2.TrySetResult(message)); + + await secondConnection.StartAsync().DefaultTimeout(); + await connection.StartAsync().DefaultTimeout(); + await connection.InvokeAsync("EchoUser", "userA", "Hello, World!").DefaultTimeout(); + + Assert.Equal("Hello, World!", await tcs2.Task.DefaultTimeout()); + Assert.False(tcs.Task.IsCompleted); + + await connection.InvokeAsync("EchoUser", "*", "Hello, World!").DefaultTimeout(); + Assert.Equal("Hello, World!", await tcs.Task.DefaultTimeout()); + + await connection.DisposeAsync().DefaultTimeout(); + await secondConnection.DisposeAsync().DefaultTimeout(); + } + } + private static HubConnection CreateConnection(string url, HttpTransportType transportType, IHubProtocol protocol, ILoggerFactory loggerFactory, string userName = null) { var hubConnectionBuilder = new HubConnectionBuilder() diff --git a/src/SignalR/server/StackExchangeRedis/test/RedisHubLifetimeManagerTests.cs b/src/SignalR/server/StackExchangeRedis/test/RedisHubLifetimeManagerTests.cs index 7d9a86ee8c0b..5a399426b7e7 100644 --- a/src/SignalR/server/StackExchangeRedis/test/RedisHubLifetimeManagerTests.cs +++ b/src/SignalR/server/StackExchangeRedis/test/RedisHubLifetimeManagerTests.cs @@ -83,6 +83,26 @@ public async Task CamelCasedJsonIsPreservedAcrossRedisBoundary() } } + // Smoke test that Debug.Asserts in TestSubscriber aren't hit + [Fact] + public async Task PatternGroupAndUser() + { + var server = new TestRedisServer(); + using (var client = new TestClient()) + { + var manager = CreateLifetimeManager(server); + + var connection = HubConnectionContextUtils.Create(client.Connection); + connection.UserIdentifier = "*"; + + await manager.OnConnectedAsync(connection).DefaultTimeout(); + + var groupName = "*"; + + await manager.AddToGroupAsync(connection.ConnectionId, groupName).DefaultTimeout(); + } + } + public override TestRedisServer CreateBackplane() { return new TestRedisServer(); diff --git a/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs b/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs index e68ace5982c2..0e21b56a52b5 100644 --- a/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs +++ b/src/SignalR/server/StackExchangeRedis/test/TestConnectionMultiplexer.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Net; using System.Reflection; @@ -11,6 +12,7 @@ using System.Threading.Tasks; using StackExchange.Redis; using StackExchange.Redis.Profiling; +using Xunit; namespace Microsoft.AspNetCore.SignalR.Tests { @@ -230,6 +232,8 @@ public class TestRedisServer public long Publish(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None) { + AssertRedisChannel(channel); + if (_subscriptions.TryGetValue(channel, out var handlers)) { foreach (var (_, handler) in handlers) @@ -243,6 +247,8 @@ public long Publish(RedisChannel channel, RedisValue message, CommandFlags flags public void Subscribe(ChannelMessageQueue messageQueue, int subscriberId, CommandFlags flags = CommandFlags.None) { + AssertRedisChannel(messageQueue.Channel); + Action handler = (channel, value) => { // Workaround for https://github.com/StackExchange/StackExchange.Redis/issues/969 @@ -260,11 +266,20 @@ public void Subscribe(ChannelMessageQueue messageQueue, int subscriberId, Comman public void Unsubscribe(RedisChannel channel, int subscriberId, CommandFlags flags = CommandFlags.None) { + AssertRedisChannel(channel); + if (_subscriptions.TryGetValue(channel, out var list)) { list.RemoveAll((item) => item.Item1 == subscriberId); } } + + internal static void AssertRedisChannel(RedisChannel channel) + { + var patternField = typeof(RedisChannel).GetField("IsPatternBased", BindingFlags.NonPublic | BindingFlags.Instance); + Assert.NotNull(patternField); + Assert.False((bool)patternField.GetValue(channel)); + } } public class TestSubscriber : ISubscriber @@ -310,11 +325,15 @@ public Task PingAsync(CommandFlags flags = CommandFlags.None) public long Publish(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + return _server.Publish(channel, message, flags); } public async Task PublishAsync(RedisChannel channel, RedisValue message, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + await Task.Yield(); return Publish(channel, message, flags); } @@ -326,6 +345,8 @@ public void Subscribe(RedisChannel channel, Action han public Task SubscribeAsync(RedisChannel channel, Action handler, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + Subscribe(channel, handler, flags); return Task.CompletedTask; } @@ -342,6 +363,8 @@ public bool TryWait(Task task) public void Unsubscribe(RedisChannel channel, Action handler = null, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + _server.Unsubscribe(channel, _id, flags); } @@ -357,6 +380,8 @@ public Task UnsubscribeAllAsync(CommandFlags flags = CommandFlags.None) public Task UnsubscribeAsync(RedisChannel channel, Action handler = null, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + Unsubscribe(channel, handler, flags); return Task.CompletedTask; } @@ -391,6 +416,8 @@ public ChannelMessageQueue Subscribe(RedisChannel channel, CommandFlags flags = public Task SubscribeAsync(RedisChannel channel, CommandFlags flags = CommandFlags.None) { + TestRedisServer.AssertRedisChannel(channel); + var t = Subscribe(channel, flags); return Task.FromResult(t); } From 311a4f964c4fc6d9a674e5befcbce30e50bb5e6c Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 11 Jul 2023 03:44:04 +0000 Subject: [PATCH 008/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/NuGet.config b/NuGet.config index eb22c5afdc17..ef73f074be4e 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 52a5f4eb7e05..646ddb1307c6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - db1112f52a8581622202f02951e195e57421fc0f + 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 999cc24d5443..f6560c1b5fa3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.21 6.0.21 6.0.21 - 6.0.21-servicing.23355.12 + 6.0.21-servicing.23360.16 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.21-servicing.23355.12 + 6.0.21-servicing.23360.16 6.0.1 6.0.0 6.0.2 From b7bd64b3744869ecdd1760d40d1f6872494a603d Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 12 Jul 2023 00:34:36 +0000 Subject: [PATCH 009/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index ef73f074be4e..898e661d5e9a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 646ddb1307c6..22d4d311255e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 54d936f07e28cfd2edda5a53de8e70739f6e9675 + 0d690b8b75b98568908726c87525c6cd4aa00362 https://github.com/dotnet/runtime From 8c5ae080d423a9d4238f47c57955ee4233bb719c Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Wed, 12 Jul 2023 22:47:22 +0000 Subject: [PATCH 010/128] Merged PR 32558: [internal/release/6.0] Merge from public Merge from public release/6.0 to internal/release/6.0 and resolve conflicts if necessary --- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 22d4d311255e..9a53a0a9992f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -280,22 +280,22 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 - + https://github.com/dotnet/arcade - 91616785a1a6578c83f7e93d98c34a1eb83d6223 + cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 - + https://github.com/dotnet/arcade - 91616785a1a6578c83f7e93d98c34a1eb83d6223 + cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 - + https://github.com/dotnet/arcade - 91616785a1a6578c83f7e93d98c34a1eb83d6223 + cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 - + https://github.com/dotnet/arcade - 91616785a1a6578c83f7e93d98c34a1eb83d6223 + cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 diff --git a/eng/Versions.props b/eng/Versions.props index dcb2136b98c9..1bdf24c11527 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,8 +131,8 @@ 6.0.21 6.0.21 - 6.0.0-beta.23313.5 - 6.0.0-beta.23313.5 + 6.0.0-beta.23361.3 + 6.0.0-beta.23361.3 - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9a53a0a9992f..c7674040cf9d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 0d690b8b75b98568908726c87525c6cd4aa00362 + fa741b8bad8eebb503bba99e078538f97aff3f5d https://github.com/dotnet/runtime From a62c85f2091a3e36e15eb9fb36e0c6806c29c95f Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Fri, 14 Jul 2023 02:14:58 +0000 Subject: [PATCH 012/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index c466d1bd5df3..65bb92f0d5be 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c7674040cf9d..8cf765e85742 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 + e40b3abf1b41621d4298642a5fd300ebf7cccf6d diff --git a/eng/Versions.props b/eng/Versions.props index 1bdf24c11527..9a77756a55fe 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.21 6.0.21 6.0.21 - 6.0.21-servicing.23360.16 + 6.0.21-servicing.23363.11 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.21-servicing.23360.16 + 6.0.21-servicing.23363.11 6.0.1 6.0.0 6.0.2 From cec88a329584349fda070f4c7346b10538210ace Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Sat, 15 Jul 2023 02:24:48 +0000 Subject: [PATCH 013/128] Merged PR 32094: [6.0] Forcibly close socket on abort Forcibly close socket when connection is aborted. --- .../Common.FunctionalTests/ShutdownTests.cs | 7 + .../Core/src/Internal/Http/Http1Connection.cs | 9 +- .../src/Internal/Http/Http1MessageBody.cs | 2 +- .../src/Internal/Http2/Http2Connection.cs | 3 +- .../Kestrel/Core/src/KestrelServerOptions.cs | 11 + .../src/Internal/ILibuvTrace.cs | 2 + .../src/Internal/LibuvConnection.cs | 60 +++- .../src/Internal/LibuvConnectionListener.cs | 26 +- .../src/Internal/LibuvTrace.cs | 3 + .../src/Internal/ListenerContext.cs | 2 +- .../src/Internal/ListenerPrimary.cs | 28 +- .../src/LibuvTransportOptions.cs | 11 + .../test/ListenerPrimaryTests.cs | 182 +++++++++++- .../src/Internal/ISocketsTrace.cs | 1 + .../src/Internal/SocketConnection.cs | 18 +- .../src/Internal/SocketsTrace.cs | 11 + .../src/SocketConnectionContextFactory.cs | 3 +- .../src/SocketConnectionFactoryOptions.cs | 4 + .../src/SocketTransportOptions.cs | 11 + .../shared/test/StreamBackedTestConnection.cs | 2 +- .../test/TransportTestHelpers/TestServer.cs | 7 +- .../FunctionalTests/Http2/ShutdownTests.cs | 53 ++++ .../test/FunctionalTests/RequestTests.cs | 266 ++++++++++++++++-- .../test/FunctionalTests/ResponseTests.cs | 180 +++++++++--- 24 files changed, 811 insertions(+), 91 deletions(-) diff --git a/src/Servers/IIS/IIS/test/Common.FunctionalTests/ShutdownTests.cs b/src/Servers/IIS/IIS/test/Common.FunctionalTests/ShutdownTests.cs index 07d723e4da87..ea0bb16a0432 100644 --- a/src/Servers/IIS/IIS/test/Common.FunctionalTests/ShutdownTests.cs +++ b/src/Servers/IIS/IIS/test/Common.FunctionalTests/ShutdownTests.cs @@ -486,8 +486,15 @@ public async Task ClosesConnectionOnServerAbortOutOfProcess() var response = await deploymentResult.HttpClient.GetAsync("/Abort").TimeoutAfter(TimeoutExtensions.DefaultTimeoutValue); Assert.Equal(HttpStatusCode.BadGateway, response.StatusCode); + +#if NEWSHIM_FUNCTIONALS + // In-proc SocketConnection isn't used and there's no abort // 0x80072f78 ERROR_HTTP_INVALID_SERVER_RESPONSE The server returned an invalid or unrecognized response Assert.Contains("0x80072f78", await response.Content.ReadAsStringAsync()); +#else + // 0x80072efe ERROR_INTERNET_CONNECTION_ABORTED The connection with the server was terminated abnormally + Assert.Contains("0x80072efe", await response.Content.ReadAsStringAsync()); +#endif } catch (HttpRequestException) { diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs index ad1ffff50e52..2a5927b901e6 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1Connection.cs @@ -93,7 +93,14 @@ protected override void OnRequestProcessingEnded() _http1Output.Dispose(); } - public void OnInputOrOutputCompleted() + void IRequestProcessor.OnInputOrOutputCompleted() + { + // Closed gracefully. + _http1Output.Abort(ServerOptions.FinOnError ? new ConnectionAbortedException(CoreStrings.ConnectionAbortedByClient) : null!); + CancelRequestAbortedToken(); + } + + void IHttpOutputAborter.OnInputOrOutputCompleted() { _http1Output.Abort(new ConnectionAbortedException(CoreStrings.ConnectionAbortedByClient)); CancelRequestAbortedToken(); diff --git a/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs b/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs index 5a3051ae56c8..b9711909eb76 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http/Http1MessageBody.cs @@ -207,7 +207,7 @@ protected void ThrowUnexpectedEndOfRequestContent() // so we call OnInputOrOutputCompleted() now to prevent a race in our tests where a 400 // response is written after observing the unexpected end of request content instead of just // closing the connection without a response as expected. - _context.OnInputOrOutputCompleted(); + ((IHttpOutputAborter)_context).OnInputOrOutputCompleted(); KestrelBadHttpRequestException.Throw(RequestRejectionReason.UnexpectedEndOfRequestContent); } diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index b197c7fccb28..ac3e9d166d4d 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -150,7 +150,8 @@ public Http2Connection(HttpConnectionContext context) public void OnInputOrOutputCompleted() { TryClose(); - _frameWriter.Abort(new ConnectionAbortedException(CoreStrings.ConnectionAbortedByClient)); + var useException = _context.ServiceContext.ServerOptions.FinOnError || _clientActiveStreamCount != 0; + _frameWriter.Abort(useException ? new ConnectionAbortedException(CoreStrings.ConnectionAbortedByClient) : null!); } public void Abort(ConnectionAbortedException ex) diff --git a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs index cf930c744cbb..f732302c251f 100644 --- a/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs +++ b/src/Servers/Kestrel/Core/src/KestrelServerOptions.cs @@ -29,9 +29,20 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Core /// public class KestrelServerOptions { + private const string FinOnErrorSwitch = "Microsoft.AspNetCore.Server.Kestrel.FinOnError"; + private static readonly bool _finOnError; + + static KestrelServerOptions() + { + AppContext.TryGetSwitch(FinOnErrorSwitch, out _finOnError); + } + // internal to fast-path header decoding when RequestHeaderEncodingSelector is unchanged. internal static readonly Func DefaultHeaderEncodingSelector = _ => null; + // Opt-out flag for back compat. Remove in 9.0 (or make public). + internal bool FinOnError { get; set; } = _finOnError; + private Func _requestHeaderEncodingSelector = DefaultHeaderEncodingSelector; private Func _responseHeaderEncodingSelector = DefaultHeaderEncodingSelector; diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs index 60966046a3a3..260657cff99b 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ILibuvTrace.cs @@ -14,6 +14,8 @@ internal interface ILibuvTrace : ILogger void ConnectionWriteFin(string connectionId, string reason); + void ConnectionWriteRst(string connectionId, string reason); + void ConnectionWrite(string connectionId, int count); void ConnectionWriteCallback(string connectionId, int status); diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs index fdfc852ba243..ca163d6d2aff 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnection.cs @@ -6,6 +6,8 @@ using System.IO; using System.IO.Pipelines; using System.Net; +using System.Net.Sockets; +using System.Reflection.Metadata; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Connections; @@ -28,6 +30,8 @@ internal partial class LibuvConnection : TransportConnection private readonly IDuplexPipe _originalTransport; private readonly CancellationTokenSource _connectionClosedTokenSource = new CancellationTokenSource(); + private readonly bool _finOnError; + private volatile ConnectionAbortedException _abortReason; private MemoryHandle _bufferHandle; @@ -43,9 +47,11 @@ public LibuvConnection(UvStreamHandle socket, PipeOptions inputOptions = null, PipeOptions outputOptions = null, long? maxReadBufferSize = null, - long? maxWriteBufferSize = null) + long? maxWriteBufferSize = null, + bool finOnError = false) { _socket = socket; + _finOnError = finOnError; LocalEndPoint = localEndPoint; RemoteEndPoint = remoteEndPoint; @@ -124,6 +130,13 @@ private async Task StartCore() { inputError ??= _abortReason ?? new ConnectionAbortedException("The libuv transport's send loop completed gracefully."); + if (!_finOnError && _abortReason is not null) + { + // When shutdown isn't clean (note that we're using _abortReason, rather than inputError, to exclude that case), + // we set the DontLinger socket option to cause libuv to send a RST and release any buffered response data. + SetDontLingerOption(_socket); + } + // Now, complete the input so that no more reads can happen Input.Complete(inputError); Output.Complete(outputError); @@ -132,8 +145,16 @@ private async Task StartCore() // on the stream handle Input.CancelPendingFlush(); - // Send a FIN - Log.ConnectionWriteFin(ConnectionId, inputError.Message); + if (!_finOnError && _abortReason is not null) + { + // Send a RST + Log.ConnectionWriteRst(ConnectionId, inputError.Message); + } + else + { + // Send a FIN + Log.ConnectionWriteFin(ConnectionId, inputError.Message); + } // We're done with the socket now _socket.Dispose(); @@ -150,6 +171,27 @@ private async Task StartCore() } } + /// + /// This should be called on before it is disposed. + /// Both and call dispose but, rather than predict + /// which will do so first (which varies), we make this method idempotent and call it in both. + /// + private static void SetDontLingerOption(UvStreamHandle socket) + { + if (!socket.IsClosed && !socket.IsInvalid) + { + var libuv = socket.Libuv; + var pSocket = IntPtr.Zero; + libuv.uv_fileno(socket, ref pSocket); + + // libuv doesn't expose setsockopt, so we take advantage of the fact that + // Socket already has a PAL + using var managedHandle = new SafeSocketHandle(pSocket, ownsHandle: false); + using var managedSocket = new Socket(managedHandle); + managedSocket.LingerState = new LingerOption(enable: true, seconds: 0); + } + } + public override void Abort(ConnectionAbortedException abortReason) { _abortReason = abortReason; @@ -157,8 +199,16 @@ public override void Abort(ConnectionAbortedException abortReason) // Cancel WriteOutputAsync loop after setting _abortReason. Output.CancelPendingRead(); - // This cancels any pending I/O. - Thread.Post(s => s.Dispose(), _socket); + Thread.Post(static (self) => + { + if (!self._finOnError) + { + SetDontLingerOption(self._socket); + } + + // This cancels any pending I/O. + self._socket.Dispose(); + }, this); } public override async ValueTask DisposeAsync() diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnectionListener.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnectionListener.cs index bdfcc2e65b58..f03f8e603097 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnectionListener.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvConnectionListener.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.Linq; using System.Net; using System.Threading; @@ -134,9 +135,24 @@ internal async Task BindAsync() { // TODO: Move thread management to LibuvTransportFactory // TODO: Split endpoint management from thread management + + // When `FinOnError` is false (the default), we need to be able to forcibly abort connections. + // On Windows, libuv 1.10.0 will call `shutdown`, preventing forcible abort, on any socket + // not flagged as `UV_HANDLE_SHARED_TCP_SOCKET`. The only way we've found to cause socket + // to be flagged as `UV_HANDLE_SHARED_TCP_SOCKET` is to share it across a named pipe (which + // must, itself, be flagged `ipc`), which naturally happens when a `ListenerPrimary` dispatches + // a connection to a `ListenerSecondary`. Therefore, in scenarios where this is required, we + // tell the `ListenerPrimary` to dispatch *all* connections to secondary and create an + // additional `ListenerSecondary` to replace the lost capacity. + var dispatchAllToSecondary = Libuv.IsWindows && !TransportContext.Options.FinOnError; + #pragma warning disable CS0618 - for (var index = 0; index < TransportOptions.ThreadCount; index++) + var threadCount = dispatchAllToSecondary + ? TransportOptions.ThreadCount + 1 + : TransportOptions.ThreadCount; #pragma warning restore CS0618 + + for (var index = 0; index < threadCount; index++) { Threads.Add(new LibuvThread(Libuv, TransportContext)); } @@ -148,10 +164,10 @@ internal async Task BindAsync() try { -#pragma warning disable CS0618 - if (TransportOptions.ThreadCount == 1) -#pragma warning restore CS0618 + if (threadCount == 1) { + Debug.Assert(!dispatchAllToSecondary, "Should have taken the primary/secondary code path"); + var listener = new Listener(TransportContext); _listeners.Add(listener); await listener.StartAsync(EndPoint, Threads[0]).ConfigureAwait(false); @@ -162,7 +178,7 @@ internal async Task BindAsync() var pipeName = (Libuv.IsWindows ? @"\\.\pipe\kestrel_" : "/tmp/kestrel_") + Guid.NewGuid().ToString("n"); var pipeMessage = Guid.NewGuid().ToByteArray(); - var listenerPrimary = new ListenerPrimary(TransportContext); + var listenerPrimary = new ListenerPrimary(TransportContext, dispatchAllToSecondary); _listeners.Add(listenerPrimary); await listenerPrimary.StartAsync(pipeName, pipeMessage, EndPoint, Threads[0]).ConfigureAwait(false); EndPoint = listenerPrimary.EndPoint; diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs index f4e4d64aafff..c360efc7bf93 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/LibuvTrace.cs @@ -27,6 +27,9 @@ public void ConnectionRead(string connectionId, int count) [LoggerMessage(7, LogLevel.Debug, @"Connection id ""{ConnectionId}"" sending FIN because: ""{Reason}""", EventName = nameof(ConnectionWriteFin))] public partial void ConnectionWriteFin(string connectionId, string reason); + [LoggerMessage(8, LogLevel.Debug, @"Connection id ""{ConnectionId}"" sending RST because: ""{Reason}""", EventName = nameof(ConnectionWriteRst))] + public partial void ConnectionWriteRst(string connectionId, string reason); + public void ConnectionWrite(string connectionId, int count) { // Don't log for now since this could be *too* verbose. diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs index 7ad346f6ea59..8ab2f5f34503 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerContext.cs @@ -110,7 +110,7 @@ protected internal void HandleConnection(UvStreamHandle socket) var options = TransportContext.Options; #pragma warning disable CS0618 - var connection = new LibuvConnection(socket, TransportContext.Log, Thread, remoteEndPoint, localEndPoint, InputOptions, OutputOptions, options.MaxReadBufferSize, options.MaxWriteBufferSize); + var connection = new LibuvConnection(socket, TransportContext.Log, Thread, remoteEndPoint, localEndPoint, InputOptions, OutputOptions, options.MaxReadBufferSize, options.MaxWriteBufferSize, options.FinOnError); #pragma warning restore CS0618 connection.Start(); diff --git a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs index 8a899c91c44e..18ae24af5adb 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/Internal/ListenerPrimary.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using System.Diagnostics; using System.IO; using System.Net; using System.Runtime.InteropServices; @@ -22,6 +23,10 @@ internal class ListenerPrimary : Listener private readonly List _dispatchPipes = new List(); // The list of pipes we've created but may not be part of _dispatchPipes private readonly List _createdPipes = new List(); + + // If true, dispatch all connections to _dispatchPipes - don't process any in the primary + private readonly bool _dispatchAll; + private int _dispatchIndex; private string _pipeName; private byte[] _pipeMessage; @@ -32,8 +37,9 @@ internal class ListenerPrimary : Listener // but it has no other functional significance private readonly ArraySegment> _dummyMessage = new ArraySegment>(new[] { new ArraySegment(new byte[] { 1, 2, 3, 4 }) }); - public ListenerPrimary(LibuvTransportContext transportContext) : base(transportContext) + public ListenerPrimary(LibuvTransportContext transportContext, bool dispatchAll) : base(transportContext) { + _dispatchAll = dispatchAll; } /// @@ -107,9 +113,27 @@ private void OnListenPipe(UvStreamHandle pipe, int status, UvException error) protected override void DispatchConnection(UvStreamHandle socket) { - var index = _dispatchIndex++ % (_dispatchPipes.Count + 1); + var modulus = _dispatchAll ? _dispatchPipes.Count : (_dispatchPipes.Count + 1); + if (modulus == 0) + { + if (_createdPipes.Count == 0) + { +#pragma warning disable CS0618 // Type or member is obsolete + Log.LogError(0, $"Connection received before listeners were initialized - see https://aka.ms/dotnet/aspnet/finonerror for possible mitigations"); +#pragma warning restore CS0618 // Type or member is obsolete + } + else + { + Log.LogError(0, "Unable to process connection since listeners failed to initialize - see https://aka.ms/dotnet/aspnet/finonerror for possible mitigations"); + } + + return; + } + + var index = _dispatchIndex++ % modulus; if (index == _dispatchPipes.Count) { + Debug.Assert(!_dispatchAll, "Should have dispatched to a secondary listener"); base.DispatchConnection(socket); } else diff --git a/src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs b/src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs index 142a2f99c4ce..9e58ac1a2d7a 100644 --- a/src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs +++ b/src/Servers/Kestrel/Transport.Libuv/src/LibuvTransportOptions.cs @@ -12,6 +12,17 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv [Obsolete("The libuv transport is obsolete and will be removed in a future release. See https://aka.ms/libuvtransport for details.", error: false)] // Remove after .NET 6. public class LibuvTransportOptions { + private const string FinOnErrorSwitch = "Microsoft.AspNetCore.Server.Kestrel.FinOnError"; + private static readonly bool _finOnError; + + static LibuvTransportOptions() + { + AppContext.TryGetSwitch(FinOnErrorSwitch, out _finOnError); + } + + // Opt-out flag for back compat. Remove in 7.0. + internal bool FinOnError { get; set; } = _finOnError; + /// /// The number of libuv I/O threads used to process requests. /// diff --git a/src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs b/src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs index 82d04cd1ac14..58d57451490e 100644 --- a/src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs +++ b/src/Servers/Kestrel/Transport.Libuv/test/ListenerPrimaryTests.cs @@ -5,11 +5,14 @@ using System.IO; using System.Linq; using System.Net; +using System.Net.Sockets; +using System.Text; using System.Threading.Tasks; using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal; using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Internal.Networking; using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.TestHelpers; using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Xunit; @@ -33,7 +36,7 @@ public async Task ConnectionsGetRoundRobinedToSecondaryListeners() // Start primary listener var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); await libuvThreadPrimary.StartAsync(); - var listenerPrimary = new ListenerPrimary(transportContextPrimary); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: false); await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); var address = GetUri(listenerPrimary.EndPoint); @@ -50,6 +53,8 @@ public async Task ConnectionsGetRoundRobinedToSecondaryListeners() } var listenerCount = listenerPrimary.UvPipeCount; + Assert.Equal(0, listenerCount); + // Add secondary listener var libuvThreadSecondary = new LibuvThread(libuv, transportContextSecondary); await libuvThreadSecondary.StartAsync(); @@ -85,6 +90,74 @@ public async Task ConnectionsGetRoundRobinedToSecondaryListeners() await listenerPrimary.DisposeAsync(); await libuvThreadPrimary.StopAsync(TimeSpan.FromSeconds(5)); } + [Theory] + [InlineData(1)] + [InlineData(2)] + [InlineData(3)] + public async Task ConnectionsGetRoundRobinedToSecondaryListeners_DispatchAll(int secondaryCount) + { + var libuv = new LibuvFunctions(); + + var endpoint = new IPEndPoint(IPAddress.Loopback, 0); + + var transportContextPrimary = new TestLibuvTransportContext(); + var transportContextSecondary = new TestLibuvTransportContext(); + + var pipeName = (libuv.IsWindows ? @"\\.\pipe\kestrel_" : "/tmp/kestrel_") + Guid.NewGuid().ToString("n"); + var pipeMessage = Guid.NewGuid().ToByteArray(); + + // Start primary listener + var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); + await libuvThreadPrimary.StartAsync(); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: true); + await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); + var address = GetUri(listenerPrimary.EndPoint); + + Assert.Equal(0, listenerPrimary.UvPipeCount); + + // Add secondary listeners + var listenerSecondaries = new ListenerSecondary[secondaryCount]; + for (int i = 0; i < secondaryCount; i++) + { + var libuvThread = new LibuvThread(libuv, transportContextSecondary); + await libuvThread.StartAsync(); + var listener = new ListenerSecondary(transportContextSecondary); + await listener.StartAsync(pipeName, pipeMessage, endpoint, libuvThread); + listenerSecondaries[i] = listener; + } + + var maxWait = Task.Delay(TestConstants.DefaultTimeout); + // wait for ListenerPrimary.ReadCallback to add the secondary pipe + while (listenerPrimary.UvPipeCount < secondaryCount) + { + var completed = await Task.WhenAny(maxWait, Task.Delay(100)); + if (ReferenceEquals(completed, maxWait)) + { + throw new TimeoutException("Timed out waiting for secondary listener to become available"); + } + } + + // Check that the secondaries are visited in order and that it wraps + // around without hitting the primary + for (int i = 0; i < secondaryCount + 1; i++) + { + var expectedTask = listenerSecondaries[i % secondaryCount].AcceptAsync().AsTask(); + + using var socket = await HttpClientSlim.GetSocket(address); + + await using var connection = await expectedTask.DefaultTimeout(); + } + + foreach (var listenerSecondary in listenerSecondaries) + { + var libuvThread = listenerSecondary.Thread; + await listenerSecondary.DisposeAsync(); + await libuvThread.StopAsync(TimeSpan.FromSeconds(5)); + } + + await listenerPrimary.DisposeAsync(); + await libuvThreadPrimary.StopAsync(TimeSpan.FromSeconds(5)); + } // https://github.com/aspnet/KestrelHttpServer/issues/1182 [Fact] @@ -103,7 +176,7 @@ public async Task NonListenerPipeConnectionsAreLoggedAndIgnored() // Start primary listener var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); await libuvThreadPrimary.StartAsync(); - var listenerPrimary = new ListenerPrimary(transportContextPrimary); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: false); await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); var address = GetUri(listenerPrimary.EndPoint); @@ -181,7 +254,6 @@ public async Task NonListenerPipeConnectionsAreLoggedAndIgnored() Assert.Equal(LogLevel.Debug, logMessage.LogLevel); } - [Fact] public async Task PipeConnectionsWithWrongMessageAreLoggedAndIgnored() { @@ -199,7 +271,7 @@ public async Task PipeConnectionsWithWrongMessageAreLoggedAndIgnored() // Start primary listener var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); await libuvThreadPrimary.StartAsync(); - var listenerPrimary = new ListenerPrimary(transportContextPrimary); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: false); await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); var address = GetUri(listenerPrimary.EndPoint); @@ -235,6 +307,108 @@ public async Task PipeConnectionsWithWrongMessageAreLoggedAndIgnored() Assert.Contains("Bad data", errorMessage.Exception.ToString()); } + [Fact] + public async Task PipeConnectionsWithWrongMessageAreLoggedAndIgnored_DispatchAllNoneRemaining() + { + var libuv = new LibuvFunctions(); + var endpoint = new IPEndPoint(IPAddress.Loopback, 0); + + var logger = new TestApplicationErrorLogger(); + + var transportContextPrimary = new TestLibuvTransportContext { Log = new LibuvTrace(logger) }; + var transportContextSecondary = new TestLibuvTransportContext(); + + var pipeName = (libuv.IsWindows ? @"\\.\pipe\kestrel_" : "/tmp/kestrel_") + Guid.NewGuid().ToString("n"); + var pipeMessage = Guid.NewGuid().ToByteArray(); + + // Start primary listener + var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); + await libuvThreadPrimary.StartAsync(); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: true); + await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); + var address = GetUri(listenerPrimary.EndPoint); + + // Add secondary listener with wrong pipe message + var libuvThreadSecondary = new LibuvThread(libuv, transportContextSecondary); + await libuvThreadSecondary.StartAsync(); + var listenerSecondary = new ListenerSecondary(transportContextSecondary); + await listenerSecondary.StartAsync(pipeName, Guid.NewGuid().ToByteArray(), endpoint, libuvThreadSecondary); + + // Wait up to 10 seconds for error to be logged + for (var i = 0; i < 10 && logger.TotalErrorsLogged == 0; i++) + { + await Task.Delay(100); + } + + Assert.Equal(1, logger.TotalErrorsLogged); + + var badDataMessage = Assert.Single(logger.Messages.Where(m => m.LogLevel == LogLevel.Error)); + Assert.IsType(badDataMessage.Exception); + Assert.Contains("Bad data", badDataMessage.Exception.ToString()); + + using var socket = await HttpClientSlim.GetSocket(address); + + var _ = listenerPrimary.AcceptAsync(); + + // Wait up to 10 seconds for error to be logged + for (var i = 0; i < 10 && logger.TotalErrorsLogged <= 1; i++) + { + await Task.Delay(100); + } + + var noSecondariesMessage = logger.Messages.Last(m => m.LogLevel == LogLevel.Error); + Assert.Null(noSecondariesMessage.Exception); + Assert.Contains("listeners failed to initialize", noSecondariesMessage.Message); + + Assert.Null(libuvThreadPrimary.FatalError); + + await listenerSecondary.DisposeAsync(); + await libuvThreadSecondary.StopAsync(TimeSpan.FromSeconds(5)); + + await listenerPrimary.DisposeAsync(); + await libuvThreadPrimary.StopAsync(TimeSpan.FromSeconds(5)); + } + + [Fact] + public async Task DispatchAllConnectionBeforeSecondaries() + { + var libuv = new LibuvFunctions(); + var endpoint = new IPEndPoint(IPAddress.Loopback, 0); + + var logger = new TestApplicationErrorLogger(); + + var transportContextPrimary = new TestLibuvTransportContext { Log = new LibuvTrace(logger) }; + var transportContextSecondary = new TestLibuvTransportContext(); + + var pipeName = (libuv.IsWindows ? @"\\.\pipe\kestrel_" : "/tmp/kestrel_") + Guid.NewGuid().ToString("n"); + var pipeMessage = Guid.NewGuid().ToByteArray(); + + // Start primary listener + var libuvThreadPrimary = new LibuvThread(libuv, transportContextPrimary); + await libuvThreadPrimary.StartAsync(); + var listenerPrimary = new ListenerPrimary(transportContextPrimary, dispatchAll: true); + await listenerPrimary.StartAsync(pipeName, pipeMessage, endpoint, libuvThreadPrimary); + var address = GetUri(listenerPrimary.EndPoint); + + using var socket = await HttpClientSlim.GetSocket(address); + + var _ = listenerPrimary.AcceptAsync(); + + // Wait up to 10 seconds for error to be logged + for (var i = 0; i < 10 && logger.TotalErrorsLogged <= 1; i++) + { + await Task.Delay(100); + } + + var noSecondariesMessage = logger.Messages.Last(m => m.LogLevel == LogLevel.Error); + Assert.Null(noSecondariesMessage.Exception); + Assert.Contains("before listeners", noSecondariesMessage.Message); + + Assert.Null(libuvThreadPrimary.FatalError); + + await listenerPrimary.DisposeAsync(); + await libuvThreadPrimary.StopAsync(TimeSpan.FromSeconds(5)); + } private static async Task AssertRoundRobin(Uri address, ListenerPrimary listenerPrimary, ListenerSecondary listenerSecondary, ListenerContext currentListener, Task expected = null, int connections = 4) { diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs index f5e5c4963786..cdd82f481e8f 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/Internal/ISocketsTrace.cs @@ -11,6 +11,7 @@ internal interface ISocketsTrace : ILogger void ConnectionReadFin(SocketConnection connection); void ConnectionWriteFin(SocketConnection connection, string reason); + void ConnectionWriteRst(SocketConnection connection, string reason); void ConnectionError(SocketConnection connection, Exception ex); diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs index f43c2e1454f1..c7f58a128a82 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketConnection.cs @@ -10,6 +10,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.Internal { + internal sealed partial class SocketConnection : TransportConnection { private static readonly int MinAllocBufferSize = PinnedBlockMemoryPool.BlockSize / 2; @@ -30,6 +31,7 @@ internal sealed partial class SocketConnection : TransportConnection private readonly TaskCompletionSource _waitForConnectionClosedTcs = new TaskCompletionSource(); private bool _connectionClosed; private readonly bool _waitForData; + private readonly bool _finOnError; internal SocketConnection(Socket socket, MemoryPool memoryPool, @@ -38,7 +40,8 @@ internal SocketConnection(Socket socket, SocketSenderPool socketSenderPool, PipeOptions inputOptions, PipeOptions outputOptions, - bool waitForData = true) + bool waitForData = true, + bool finOnError = false) { Debug.Assert(socket != null); Debug.Assert(memoryPool != null); @@ -49,6 +52,7 @@ internal SocketConnection(Socket socket, _trace = trace; _waitForData = waitForData; _socketSenderPool = socketSenderPool; + _finOnError = finOnError; LocalEndPoint = _socket.LocalEndPoint; RemoteEndPoint = _socket.RemoteEndPoint; @@ -329,11 +333,21 @@ private void Shutdown(Exception? shutdownReason) // ever observe the nondescript ConnectionAbortedException except for connection middleware attempting // to half close the connection which is currently unsupported. _shutdownReason = shutdownReason ?? new ConnectionAbortedException("The Socket transport's send loop completed gracefully."); + + // NB: not _shutdownReason since we don't want to do this on graceful completion + if (!_finOnError && shutdownReason is not null) + { + _trace.ConnectionWriteRst(this, shutdownReason.Message); + + // This forces an abortive close with linger time 0 (and implies Dispose) + _socket.Close(timeout: 0); + return; + } + _trace.ConnectionWriteFin(this, _shutdownReason.Message); try { - // Try to gracefully close the socket even for aborts to match libuv behavior. _socket.Shutdown(SocketShutdown.Both); } catch diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs index 1a48fa189a15..f4108eae678a 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/Internal/SocketsTrace.cs @@ -43,6 +43,17 @@ public void ConnectionWriteFin(SocketConnection connection, string reason) } } + [LoggerMessage(8, LogLevel.Debug, @"Connection id ""{ConnectionId}"" sending RST because: ""{Reason}""", EventName = "ConnectionWriteRst", SkipEnabledCheck = true)] + private static partial void ConnectionWriteRst(ILogger logger, string connectionId, string reason); + + public void ConnectionWriteRst(SocketConnection connection, string reason) + { + if (_logger.IsEnabled(LogLevel.Debug)) + { + ConnectionWriteRst(_logger, connection.ConnectionId, reason); + } + } + public void ConnectionWrite(SocketConnection connection, int count) { // Don't log for now since this could be *too* verbose. diff --git a/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionContextFactory.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionContextFactory.cs index 71f3cdc0fc0c..2635af9792d7 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionContextFactory.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionContextFactory.cs @@ -104,7 +104,8 @@ public ConnectionContext Create(Socket socket) setting.SocketSenderPool, setting.InputOptions, setting.OutputOptions, - waitForData: _options.WaitForDataBeforeAllocatingBuffer); + waitForData: _options.WaitForDataBeforeAllocatingBuffer, + finOnError: _options.FinOnError); connection.Start(); return connection; diff --git a/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionFactoryOptions.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionFactoryOptions.cs index d0c88c0535f3..fec0b3bef938 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionFactoryOptions.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/SocketConnectionFactoryOptions.cs @@ -23,8 +23,12 @@ internal SocketConnectionFactoryOptions(SocketTransportOptions transportOptions) MaxWriteBufferSize = transportOptions.MaxWriteBufferSize; UnsafePreferInlineScheduling = transportOptions.UnsafePreferInlineScheduling; MemoryPoolFactory = transportOptions.MemoryPoolFactory; + FinOnError = transportOptions.FinOnError; } + // Opt-out flag for back compat. Remove in 9.0 (or make public). + internal bool FinOnError { get; set; } + /// /// The number of I/O queues used to process requests. Set to 0 to directly schedule I/O to the ThreadPool. /// diff --git a/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs b/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs index 9130cb980454..4f22c079dc1f 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs +++ b/src/Servers/Kestrel/Transport.Sockets/src/SocketTransportOptions.cs @@ -13,6 +13,17 @@ namespace Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets /// public class SocketTransportOptions { + private const string FinOnErrorSwitch = "Microsoft.AspNetCore.Server.Kestrel.FinOnError"; + private static readonly bool _finOnError; + + static SocketTransportOptions() + { + AppContext.TryGetSwitch(FinOnErrorSwitch, out _finOnError); + } + + // Opt-out flag for back compat. Remove in 9.0 (or make public). + internal bool FinOnError { get; set; } = _finOnError; + /// /// The number of I/O queues used to process requests. Set to 0 to directly schedule I/O to the ThreadPool. /// diff --git a/src/Servers/Kestrel/shared/test/StreamBackedTestConnection.cs b/src/Servers/Kestrel/shared/test/StreamBackedTestConnection.cs index 5dd91c4337d9..eb4f310e7a29 100644 --- a/src/Servers/Kestrel/shared/test/StreamBackedTestConnection.cs +++ b/src/Servers/Kestrel/shared/test/StreamBackedTestConnection.cs @@ -138,7 +138,7 @@ public async Task ReceiveEnd(params string[] lines) public async Task WaitForConnectionClose() { var buffer = new byte[128]; - var bytesTransferred = await _stream.ReadAsync(buffer, 0, 128).TimeoutAfter(Timeout); + var bytesTransferred = await _stream.ReadAsync(buffer, 0, 128).ContinueWith(t => t.IsFaulted ? 0 : t.Result).TimeoutAfter(Timeout); if (bytesTransferred > 0) { diff --git a/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs b/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs index 79fc65849640..0c8109cb9952 100644 --- a/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs +++ b/src/Servers/Kestrel/shared/test/TransportTestHelpers/TestServer.cs @@ -48,7 +48,7 @@ public TestServer(RequestDelegate app, TestServiceContext context, ListenOptions { } - public TestServer(RequestDelegate app, TestServiceContext context, Action configureListenOptions) + public TestServer(RequestDelegate app, TestServiceContext context, Action configureListenOptions, Action configureServices = null) : this(app, context, options => { var listenOptions = new ListenOptions(new IPEndPoint(IPAddress.Loopback, 0)) @@ -57,7 +57,10 @@ public TestServer(RequestDelegate app, TestServiceContext context, Action { }) + }, s => + { + configureServices?.Invoke(s); + }) { } diff --git a/src/Servers/Kestrel/test/FunctionalTests/Http2/ShutdownTests.cs b/src/Servers/Kestrel/test/FunctionalTests/Http2/ShutdownTests.cs index 1a12f4629e44..ff5f06ea21a5 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/Http2/ShutdownTests.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/Http2/ShutdownTests.cs @@ -46,6 +46,59 @@ public ShutdownTests() }; } + [ConditionalFact] + public async Task ConnectionClosedWithoutActiveRequestsOrGoAwayFIN() + { + var connectionClosed = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var readFin = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var writeFin = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + + TestSink.MessageLogged += context => + { + if (context.EventId.Name == "Http2ConnectionClosed") + { + connectionClosed.SetResult(); + } + else if (context.EventId.Name == "ConnectionReadFin") + { + readFin.SetResult(); + } + else if (context.EventId.Name == "ConnectionWriteFin") + { + writeFin.SetResult(); + } + }; + + var testContext = new TestServiceContext(LoggerFactory); + + testContext.InitializeHeartbeat(); + + await using (var server = new TestServer(context => + { + return context.Response.WriteAsync("hello world " + context.Request.Protocol); + }, + testContext, + kestrelOptions => + { + kestrelOptions.Listen(IPAddress.Loopback, 0, listenOptions => + { + listenOptions.Protocols = HttpProtocols.Http2; + listenOptions.UseHttps(_x509Certificate2); + }); + })) + { + var response = await Client.GetStringAsync($"https://localhost:{server.Port}/"); + Assert.Equal("hello world HTTP/2", response); + Client.Dispose(); // Close the socket, no GoAway is sent. + + await readFin.Task.DefaultTimeout(); + await writeFin.Task.DefaultTimeout(); + await connectionClosed.Task.DefaultTimeout(); + + await server.StopAsync(); + } + } + [CollectDump] [ConditionalFact] public async Task GracefulShutdownWaitsForRequestsToFinish() diff --git a/src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs b/src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs index e10a5dc3ad3d..af391389ade3 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/RequestTests.cs @@ -21,7 +21,13 @@ using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Infrastructure; using Microsoft.AspNetCore.Server.Kestrel.FunctionalTests; +#if LIBUV +using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv; +#elif SOCKETS +using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets; +#endif using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Moq; @@ -40,6 +46,7 @@ namespace Microsoft.AspNetCore.Server.Kestrel.FunctionalTests public class RequestTests : LoggedTest { private const int _connectionStartedEventId = 1; + private const int _connectionReadFinEventId = 6; private const int _connectionResetEventId = 19; private static readonly int _semaphoreWaitTimeout = Debugger.IsAttached ? 10000 : 2500; @@ -234,6 +241,59 @@ await connection2.Receive($"HTTP/1.1 200 OK", } } + [Fact] + public async Task ConnectionClosedPriorToRequestIsLoggedAsDebug() + { + var connectionStarted = new SemaphoreSlim(0); + var connectionReadFin = new SemaphoreSlim(0); + var loggedHigherThanDebug = false; + + TestSink.MessageLogged += context => + { + if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel" && + context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Connections" && + context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" && + context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets") + { + return; + } + + if (context.EventId.Id == _connectionStartedEventId) + { + connectionStarted.Release(); + } + else if (context.EventId.Id == _connectionReadFinEventId) + { + connectionReadFin.Release(); + } + + if (context.LogLevel > LogLevel.Debug) + { + loggedHigherThanDebug = true; + } + }; + + await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory))) + { + using (var connection = server.CreateConnection()) + { + // Wait until connection is established + Assert.True(await connectionStarted.WaitAsync(TestConstants.DefaultTimeout)); + + connection.ShutdownSend(); + + // If the reset is correctly logged as Debug, the wait below should complete shortly. + // This check MUST come before disposing the server, otherwise there's a race where the RST + // is still in flight when the connection is aborted, leading to the reset never being received + // and therefore not logged. + Assert.True(await connectionReadFin.WaitAsync(TestConstants.DefaultTimeout)); + await connection.ReceiveEnd(); + } + } + + Assert.False(loggedHigherThanDebug); + } + [Fact] public async Task ConnectionResetPriorToRequestIsLoggedAsDebug() { @@ -286,6 +346,66 @@ public async Task ConnectionResetPriorToRequestIsLoggedAsDebug() Assert.False(loggedHigherThanDebug); } + [Fact] + public async Task ConnectionClosedBetweenRequestsIsLoggedAsDebug() + { + var connectionReadFin = new SemaphoreSlim(0); + var loggedHigherThanDebug = false; + + TestSink.MessageLogged += context => + { + if (context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel" && + context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv" && + context.LoggerName != "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets") + { + return; + } + + if (context.LogLevel > LogLevel.Debug) + { + loggedHigherThanDebug = true; + } + + if (context.EventId.Id == _connectionReadFinEventId) + { + connectionReadFin.Release(); + } + }; + + await using (var server = new TestServer(context => Task.CompletedTask, new TestServiceContext(LoggerFactory))) + { + using (var connection = server.CreateConnection()) + { + await connection.Send( + "GET / HTTP/1.1", + "Host:", + "", + ""); + + // Make sure the response is fully received, so a write failure (e.g. EPIPE) doesn't cause + // a more critical log message. + await connection.Receive( + "HTTP/1.1 200 OK", + "Content-Length: 0", + $"Date: {server.Context.DateHeaderValue}", + "", + ""); + + connection.ShutdownSend(); + + // If the reset is correctly logged as Debug, the wait below should complete shortly. + // This check MUST come before disposing the server, otherwise there's a race where the RST + // is still in flight when the connection is aborted, leading to the reset never being received + // and therefore not logged. + Assert.True(await connectionReadFin.WaitAsync(TestConstants.DefaultTimeout)); + + await connection.ReceiveEnd(); + } + } + + Assert.False(loggedHigherThanDebug); + } + [Fact] public async Task ConnectionResetBetweenRequestsIsLoggedAsDebug() { @@ -345,10 +465,13 @@ await connection.Receive( Assert.False(loggedHigherThanDebug); } - [Fact] - public async Task ConnectionResetMidRequestIsLoggedAsDebug() + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task ConnectionClosedOrResetMidRequestIsLoggedAsDebug(bool close) { var requestStarted = new SemaphoreSlim(0); + var connectionReadFin = new SemaphoreSlim(0); var connectionReset = new SemaphoreSlim(0); var connectionClosing = new SemaphoreSlim(0); var loggedHigherThanDebug = false; @@ -367,6 +490,11 @@ public async Task ConnectionResetMidRequestIsLoggedAsDebug() loggedHigherThanDebug = true; } + if (context.EventId.Id == _connectionReadFinEventId) + { + connectionReadFin.Release(); + } + if (context.EventId.Id == _connectionResetEventId) { connectionReset.Release(); @@ -387,15 +515,23 @@ public async Task ConnectionResetMidRequestIsLoggedAsDebug() // Wait until connection is established Assert.True(await requestStarted.WaitAsync(TestConstants.DefaultTimeout), "request should have started"); - connection.Reset(); - } + if (close) + { + connection.ShutdownSend(); + Assert.True(await connectionReadFin.WaitAsync(TestConstants.DefaultTimeout), "Connection close event should have been logged"); + } + else + { + connection.Reset(); - // If the reset is correctly logged as Debug, the wait below should complete shortly. - // This check MUST come before disposing the server, otherwise there's a race where the RST - // is still in flight when the connection is aborted, leading to the reset never being received - // and therefore not logged. - Assert.True(await connectionReset.WaitAsync(TestConstants.DefaultTimeout), "Connection reset event should have been logged"); - connectionClosing.Release(); + // If the reset is correctly logged as Debug, the wait below should complete shortly. + // This check MUST come before disposing the server, otherwise there's a race where the RST + // is still in flight when the connection is aborted, leading to the reset never being received + // and therefore not logged. + Assert.True(await connectionReset.WaitAsync(TestConstants.DefaultTimeout), "Connection reset event should have been logged"); + } + connectionClosing.Release(); + } } Assert.False(loggedHigherThanDebug, "Logged event should not have been higher than debug."); @@ -494,18 +630,43 @@ public async Task RequestAbortedTokenFiredOnClientFIN() } } - [Fact] - public async Task AbortingTheConnectionSendsFIN() + [Theory] +#if LIBUV + [InlineData(true, 1)] + [InlineData(false, 1)] + [InlineData(true, 2)] + [InlineData(false, 2)] + public async Task AbortingTheConnection(bool fin, int threadCount) +#else + [InlineData(true)] + [InlineData(false)] + public async Task AbortingTheConnection(bool fin) +#endif { + var connectionAborted = new SemaphoreSlim(0); + var builder = TransportSelector.GetHostBuilder() +#if LIBUV + .ConfigureServices(services => + { +#pragma warning disable CS0618 // Type or member is obsolete + services.Configure(options => + { + options.ThreadCount = threadCount; + }); +#pragma warning restore CS0618 // Type or member is obsolete + }) +#endif .ConfigureWebHost(webHostBuilder => { webHostBuilder + .ConfigureServices(s => SetFinOnError(s, fin)) .UseKestrel() .UseUrls("http://127.0.0.1:0") .Configure(app => app.Run(context => { context.Abort(); + connectionAborted.Release(); return Task.CompletedTask; })); }) @@ -519,8 +680,18 @@ public async Task AbortingTheConnectionSendsFIN() { socket.Connect(new IPEndPoint(IPAddress.Loopback, host.GetPort())); socket.Send(Encoding.ASCII.GetBytes("GET / HTTP/1.1\r\nHost:\r\n\r\n")); - int result = socket.Receive(new byte[32]); - Assert.Equal(0, result); + + Assert.True(await connectionAborted.WaitAsync(_semaphoreWaitTimeout)); + + if (fin) + { + int result = socket.Receive(new byte[32]); + Assert.Equal(0, result); + } + else + { + Assert.Throws(() => socket.Receive(new byte[32])); + } } await host.StopAsync(); @@ -731,16 +902,21 @@ await connection.Send("POST / HTTP/1.1", } [Theory] - [MemberData(nameof(ConnectionMiddlewareDataName))] - public async Task ServerCanAbortConnectionAfterUnobservedClose(string listenOptionsName) + [InlineData("Loopback", true)] + [InlineData("PassThrough", true)] + [InlineData("Loopback", false)] + [InlineData("PassThrough", false)] + public async Task ServerCanAbortConnectionAfterUnobservedClose(string listenOptionsName, bool fin) { const int connectionPausedEventId = 4; const int connectionFinSentEventId = 7; + const int connectionRstSentEventId = 8; const int maxRequestBufferSize = 4096; var readCallbackUnwired = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var clientClosedConnection = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var serverClosedConnection = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var serverFinConnection = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var serverRstConnection = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); TestSink.MessageLogged += context => @@ -757,7 +933,11 @@ public async Task ServerCanAbortConnectionAfterUnobservedClose(string listenOpti } else if (context.EventId == connectionFinSentEventId) { - serverClosedConnection.SetResult(); + serverFinConnection.SetResult(); + } + else if (context.EventId == connectionRstSentEventId) + { + serverRstConnection.SetResult(); } }; @@ -766,6 +946,7 @@ public async Task ServerCanAbortConnectionAfterUnobservedClose(string listenOpti { ServerOptions = { + FinOnError = fin, Limits = { MaxRequestBufferSize = maxRequestBufferSize, @@ -783,10 +964,24 @@ public async Task ServerCanAbortConnectionAfterUnobservedClose(string listenOpti context.Abort(); - await serverClosedConnection.Task; + if (fin) + { + await serverFinConnection.Task.DefaultTimeout(); + } + else + { + await serverRstConnection.Task.DefaultTimeout(); + } appFuncCompleted.SetResult(); - }, testContext, ConnectionMiddlewareData[listenOptionsName]())) + }, testContext, listen => + { + if (listenOptionsName == "PassThrough") + { + listen.UsePassThrough(); + } + }, + services => SetFinOnError(services, fin))) { using (var connection = server.CreateConnection()) { @@ -956,21 +1151,21 @@ await context.Response.WriteAsync(JsonConvert.SerializeObject(new private static async Task AssertStreamContains(Stream stream, string expectedSubstring) { var expectedBytes = Encoding.ASCII.GetBytes(expectedSubstring); - var exptectedLength = expectedBytes.Length; - var responseBuffer = new byte[exptectedLength]; + var expectedLength = expectedBytes.Length; + var responseBuffer = new byte[expectedLength]; var matchedChars = 0; - while (matchedChars < exptectedLength) + while (matchedChars < expectedLength) { - var count = await stream.ReadAsync(responseBuffer, 0, exptectedLength - matchedChars).DefaultTimeout(); + var count = await stream.ReadAsync(responseBuffer, 0, expectedLength - matchedChars).DefaultTimeout(); if (count == 0) { Assert.True(false, "Stream completed without expected substring."); } - for (var i = 0; i < count && matchedChars < exptectedLength; i++) + for (var i = 0; i < count && matchedChars < expectedLength; i++) { if (responseBuffer[i] == expectedBytes[matchedChars]) { @@ -983,5 +1178,26 @@ private static async Task AssertStreamContains(Stream stream, string expectedSub } } } + + private static void SetFinOnError(IServiceCollection services, bool finOnError) + { +#if LIBUV +#pragma warning disable CS0618 // Type or member is obsolete + services.Configure(options => + { + options.FinOnError = finOnError; + }); +#pragma warning restore CS0618 // Type or member is obsolete +#elif SOCKETS + services.Configure(o => + { + o.FinOnError = finOnError; + }); +#endif + services.Configure(o => + { + o.FinOnError = finOnError; + }); + } } } diff --git a/src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs b/src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs index 991044dbf8f0..cbda94bd05a6 100644 --- a/src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs +++ b/src/Servers/Kestrel/test/FunctionalTests/ResponseTests.cs @@ -23,7 +23,13 @@ using Microsoft.AspNetCore.Server.Kestrel.Https; using Microsoft.AspNetCore.Server.Kestrel.Https.Internal; using Microsoft.AspNetCore.Server.Kestrel.Tests; +#if LIBUV +using Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv; +#elif SOCKETS +using Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets; +#endif using Microsoft.AspNetCore.Testing; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Testing; @@ -462,8 +468,10 @@ await connection.Send( Assert.Empty(coreLogs.Where(w => w.LogLevel > LogLevel.Information)); } - [Fact] - public async Task ConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate() + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task ConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate(bool fin) { var logger = LoggerFactory.CreateLogger($"{ typeof(ResponseTests).FullName}.{ nameof(ConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate)}"); const int chunkSize = 1024; @@ -473,21 +481,35 @@ public async Task ConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate() var responseRateTimeoutMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var connectionStopMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteFinMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteRstMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var requestAborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var mockKestrelTrace = new Mock(); - mockKestrelTrace - .Setup(trace => trace.ResponseMinimumDataRateNotSatisfied(It.IsAny(), It.IsAny())) - .Callback(() => responseRateTimeoutMessageLogged.SetResult()); - mockKestrelTrace - .Setup(trace => trace.ConnectionStop(It.IsAny())) - .Callback(() => connectionStopMessageLogged.SetResult()); + TestSink.MessageLogged += context => + { + switch (context.EventId.Name) + { + case "ResponseMinimumDataRateNotSatisfied": + responseRateTimeoutMessageLogged.SetResult(); + break; + case "ConnectionStop": + connectionStopMessageLogged.SetResult(); + break; + case "ConnectionWriteFin": + connectionWriteFinMessageLogged.SetResult(); + break; + case "ConnectionWriteRst": + connectionWriteRstMessageLogged.SetResult(); + break; + } + }; - var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object) + var testContext = new TestServiceContext(LoggerFactory) { ServerOptions = { + FinOnError = fin, Limits = { MinResponseDataRate = new MinDataRate(bytesPerSecond: 1024 * 1024, gracePeriod: TimeSpan.FromSeconds(2)) @@ -533,7 +555,7 @@ async Task App(HttpContext context) } } - await using (var server = new TestServer(App, testContext)) + await using (var server = new TestServer(App, testContext, configureListenOptions: _ => { }, services => SetFinOnError(services, fin))) { using (var connection = server.CreateConnection()) { @@ -553,8 +575,16 @@ await connection.Send( await requestAborted.Task.DefaultTimeout(TimeSpan.FromSeconds(30)); await responseRateTimeoutMessageLogged.Task.DefaultTimeout(); await connectionStopMessageLogged.Task.DefaultTimeout(); + if (fin) + { + await connectionWriteFinMessageLogged.Task.DefaultTimeout(); + } + else + { + await connectionWriteRstMessageLogged.Task.DefaultTimeout(); + } await appFuncCompleted.Task.DefaultTimeout(); - await AssertStreamAborted(connection.Stream, chunkSize * chunks); + await AssertStreamAborted(connection.Stream, chunkSize * chunks, fin); sw.Stop(); logger.LogInformation("Connection was aborted after {totalMilliseconds}ms.", sw.ElapsedMilliseconds); @@ -562,8 +592,10 @@ await connection.Send( } } - [Fact] - public async Task HttpsConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate() + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task HttpsConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate(bool fin) { const int chunkSize = 1024; const int chunks = 256 * 1024; @@ -573,21 +605,35 @@ public async Task HttpsConnectionClosedWhenResponseDoesNotSatisfyMinimumDataRate var responseRateTimeoutMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var connectionStopMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteFinMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteRstMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var aborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var appFuncCompleted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var mockKestrelTrace = new Mock(); - mockKestrelTrace - .Setup(trace => trace.ResponseMinimumDataRateNotSatisfied(It.IsAny(), It.IsAny())) - .Callback(() => responseRateTimeoutMessageLogged.SetResult()); - mockKestrelTrace - .Setup(trace => trace.ConnectionStop(It.IsAny())) - .Callback(() => connectionStopMessageLogged.SetResult()); + TestSink.MessageLogged += context => + { + switch (context.EventId.Name) + { + case "ResponseMinimumDataRateNotSatisfied": + responseRateTimeoutMessageLogged.SetResult(); + break; + case "ConnectionStop": + connectionStopMessageLogged.SetResult(); + break; + case "ConnectionWriteFin": + connectionWriteFinMessageLogged.SetResult(); + break; + case "ConnectionWriteRst": + connectionWriteRstMessageLogged.SetResult(); + break; + } + }; - var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object) + var testContext = new TestServiceContext(LoggerFactory) { ServerOptions = { + FinOnError = fin, Limits = { MinResponseDataRate = new MinDataRate(bytesPerSecond: 1024 * 1024, gracePeriod: TimeSpan.FromSeconds(2)) @@ -627,7 +673,8 @@ void ConfigureListenOptions(ListenOptions listenOptions) { await aborted.Task.DefaultTimeout(); } - }, testContext, ConfigureListenOptions)) + }, testContext, ConfigureListenOptions, + services => SetFinOnError(services, fin))) { using (var connection = server.CreateConnection()) { @@ -642,16 +689,26 @@ void ConfigureListenOptions(ListenOptions listenOptions) await aborted.Task.DefaultTimeout(TimeSpan.FromSeconds(30)); await responseRateTimeoutMessageLogged.Task.DefaultTimeout(); await connectionStopMessageLogged.Task.DefaultTimeout(); + if (fin) + { + await connectionWriteFinMessageLogged.Task.DefaultTimeout(); + } + else + { + await connectionWriteRstMessageLogged.Task.DefaultTimeout(); + } await appFuncCompleted.Task.DefaultTimeout(); - await AssertStreamAborted(connection.Stream, chunkSize * chunks); + await AssertStreamAborted(connection.Stream, chunkSize * chunks, fin); } } } } - [Fact] - public async Task ConnectionClosedWhenBothRequestAndResponseExperienceBackPressure() + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task ConnectionClosedWhenBothRequestAndResponseExperienceBackPressure(bool fin) { const int bufferSize = 65536; const int bufferCount = 100; @@ -660,21 +717,35 @@ public async Task ConnectionClosedWhenBothRequestAndResponseExperienceBackPressu var responseRateTimeoutMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var connectionStopMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteFinMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); + var connectionWriteRstMessageLogged = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var requestAborted = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); var copyToAsyncCts = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - var mockKestrelTrace = new Mock(); - mockKestrelTrace - .Setup(trace => trace.ResponseMinimumDataRateNotSatisfied(It.IsAny(), It.IsAny())) - .Callback(() => responseRateTimeoutMessageLogged.SetResult()); - mockKestrelTrace - .Setup(trace => trace.ConnectionStop(It.IsAny())) - .Callback(() => connectionStopMessageLogged.SetResult()); + TestSink.MessageLogged += context => + { + switch (context.EventId.Name) + { + case "ResponseMinimumDataRateNotSatisfied": + responseRateTimeoutMessageLogged.SetResult(); + break; + case "ConnectionStop": + connectionStopMessageLogged.SetResult(); + break; + case "ConnectionWriteFin": + connectionWriteFinMessageLogged.SetResult(); + break; + case "ConnectionWriteRst": + connectionWriteRstMessageLogged.SetResult(); + break; + } + }; - var testContext = new TestServiceContext(LoggerFactory, mockKestrelTrace.Object) + var testContext = new TestServiceContext(LoggerFactory) { ServerOptions = { + FinOnError = fin, Limits = { MinResponseDataRate = new MinDataRate(bytesPerSecond: 1024 * 1024, gracePeriod: TimeSpan.FromSeconds(2)), @@ -685,8 +756,6 @@ public async Task ConnectionClosedWhenBothRequestAndResponseExperienceBackPressu testContext.InitializeHeartbeat(); - var listenOptions = new ListenOptions(new IPEndPoint(IPAddress.Loopback, 0)); - async Task App(HttpContext context) { context.RequestAborted.Register(() => @@ -711,7 +780,7 @@ async Task App(HttpContext context) copyToAsyncCts.SetException(new Exception("This shouldn't be reached.")); } - await using (var server = new TestServer(App, testContext, listenOptions)) + await using (var server = new TestServer(App, testContext, configureListenOptions: _ => { }, services => SetFinOnError(services, fin))) { using (var connection = server.CreateConnection()) { @@ -736,10 +805,18 @@ await connection.Send( await requestAborted.Task.DefaultTimeout(TimeSpan.FromSeconds(30)); await responseRateTimeoutMessageLogged.Task.DefaultTimeout(); await connectionStopMessageLogged.Task.DefaultTimeout(); + if (fin) + { + await connectionWriteFinMessageLogged.Task.DefaultTimeout(); + } + else + { + await connectionWriteRstMessageLogged.Task.DefaultTimeout(); + } // Expect OperationCanceledException instead of IOException because the server initiated the abort due to a response rate timeout. await Assert.ThrowsAnyAsync(() => copyToAsyncCts.Task).DefaultTimeout(); - await AssertStreamAborted(connection.Stream, responseSize); + await AssertStreamAborted(connection.Stream, responseSize, graceful: false); } } } @@ -985,7 +1062,7 @@ await connection.Receive( Assert.False(requestAborted); } - private async Task AssertStreamAborted(Stream stream, int totalBytes) + private async Task AssertStreamAborted(Stream stream, int totalBytes, bool graceful) { var receiveBuffer = new byte[64 * 1024]; var totalReceived = 0; @@ -998,6 +1075,8 @@ private async Task AssertStreamAborted(Stream stream, int totalBytes) if (bytes == 0) { + Assert.True(graceful, "Stream completed gracefully."); + break; } @@ -1006,7 +1085,7 @@ private async Task AssertStreamAborted(Stream stream, int totalBytes) } catch (IOException) { - // This is expected given an abort. + Assert.False(graceful, "Stream completed abortively."); } Assert.True(totalReceived < totalBytes, $"{nameof(AssertStreamAborted)} Stream completed successfully."); @@ -1080,5 +1159,26 @@ public static TheoryData NullHeaderData return dataset; } } + + private static void SetFinOnError(IServiceCollection services, bool finOnError) + { +#if LIBUV +#pragma warning disable CS0618 // Type or member is obsolete + services.Configure(options => + { + options.FinOnError = finOnError; + }); +#pragma warning restore CS0618 // Type or member is obsolete +#elif SOCKETS + services.Configure(o => + { + o.FinOnError = finOnError; + }); +#endif + services.Configure(o => + { + o.FinOnError = finOnError; + }); + } } } From 18f8ab73ad928f60289763a07b10e6bd7d6de8c4 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 18 Jul 2023 12:59:03 -0700 Subject: [PATCH 014/128] Changes to get 6.0.19 build of nuget packages for vinyl maui. refs VINYL-14964 --- AspNetCore.sln | 32 ++++----- global.json | 4 +- pack.sh.txt | 66 +++++++++++++++++++ .../src/Microsoft.AspNetCore.csproj | 2 +- .../src/Microsoft.Extensions.Features.csproj | 1 + ...t.Extensions.FileProviders.Embedded.csproj | 1 + ...oft.AspNetCore.Hosting.Abstractions.csproj | 2 +- .../src/Microsoft.AspNetCore.Hosting.csproj | 2 +- ...NetCore.Hosting.Server.Abstractions.csproj | 2 +- ...NetCore.Authentication.Abstractions.csproj | 2 +- ...soft.AspNetCore.Authentication.Core.csproj | 2 +- .../src/Microsoft.Net.Http.Headers.csproj | 2 +- ...rosoft.AspNetCore.Http.Abstractions.csproj | 2 +- ...icrosoft.AspNetCore.Http.Extensions.csproj | 2 +- .../Microsoft.AspNetCore.Http.Features.csproj | 2 +- .../Microsoft.AspNetCore.Http.Results.csproj | 2 +- .../Http/src/Microsoft.AspNetCore.Http.csproj | 2 +- .../src/Microsoft.AspNetCore.Metadata.csproj | 1 + .../Owin/src/Microsoft.AspNetCore.Owin.csproj | 1 + ...oft.AspNetCore.Routing.Abstractions.csproj | 2 +- .../src/Microsoft.AspNetCore.Routing.csproj | 2 +- .../Microsoft.AspNetCore.WebUtilities.csproj | 2 +- ...AspNetCore.Diagnostics.Abstractions.csproj | 2 +- .../Microsoft.AspNetCore.Diagnostics.csproj | 2 +- .../Microsoft.AspNetCore.HostFiltering.csproj | 2 +- .../Microsoft.AspNetCore.HttpOverrides.csproj | 2 +- .../Microsoft.AspNetCore.Localization.csproj | 2 +- ...etCore.ResponseCaching.Abstractions.csproj | 2 +- ...soft.AspNetCore.ResponseCompression.csproj | 2 +- .../src/Microsoft.AspNetCore.Rewrite.csproj | 2 +- .../Microsoft.AspNetCore.StaticFiles.csproj | 2 +- .../Microsoft.AspNetCore.WebSockets.csproj | 2 +- ...crosoft.AspNetCore.Mvc.Abstractions.csproj | 2 +- ...icrosoft.AspNetCore.Mvc.ApiExplorer.csproj | 2 +- .../src/Microsoft.AspNetCore.Mvc.Core.csproj | 2 +- .../Microsoft.Extensions.ObjectPool.csproj | 1 + ...t.AspNetCore.Authentication.Cookies.csproj | 2 +- ...Microsoft.AspNetCore.Authentication.csproj | 2 +- .../Microsoft.AspNetCore.Authorization.csproj | 1 + ...oft.AspNetCore.Authorization.Policy.csproj | 2 +- .../Microsoft.AspNetCore.CookiePolicy.csproj | 2 +- ...AspNetCore.Connections.Abstractions.csproj | 1 + .../Microsoft.AspNetCore.Server.IIS.csproj | 2 +- ...ft.AspNetCore.Server.IISIntegration.csproj | 2 +- ...soft.AspNetCore.Server.Kestrel.Core.csproj | 2 +- src/Servers/Kestrel/Kestrel.slnf | 6 -- ...Microsoft.AspNetCore.Server.Kestrel.csproj | 2 +- .../src/WebHostBuilderKestrelExtensions.cs | 2 +- ...tCore.Server.Kestrel.Transport.Quic.csproj | 2 +- .../src/WebHostBuilderQuicExtensions.cs | 2 + ...re.Server.Kestrel.Transport.Sockets.csproj | 2 +- ....AspNetCore.Http.Connections.Client.csproj | 1 + ....AspNetCore.Http.Connections.Common.csproj | 1 + ...crosoft.AspNetCore.Http.Connections.csproj | 2 +- ...t.AspNetCore.SignalR.Protocols.Json.csproj | 1 + ...tCore.SignalR.Protocols.MessagePack.csproj | 1 + ...re.SignalR.Protocols.NewtonsoftJson.csproj | 1 + ...Microsoft.AspNetCore.SignalR.Common.csproj | 1 + .../Microsoft.AspNetCore.SignalR.Core.csproj | 2 +- .../src/Microsoft.AspNetCore.SignalR.csproj | 2 +- .../Microsoft.Extensions.WebEncoders.csproj | 1 + 61 files changed, 142 insertions(+), 66 deletions(-) create mode 100644 pack.sh.txt diff --git a/AspNetCore.sln b/AspNetCore.sln index fbf4290fac83..3a5d4c142508 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -9750,22 +9750,22 @@ Global {09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x64.Build.0 = Release|Any CPU {09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x86.ActiveCfg = Release|Any CPU {09FFBC53-3EFF-45C4-9822-5D66089CD6AD}.Release|x86.Build.0 = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.ActiveCfg = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.Build.0 = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.ActiveCfg = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.Build.0 = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.ActiveCfg = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.Build.0 = Debug|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.Build.0 = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.ActiveCfg = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.Build.0 = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.ActiveCfg = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.Build.0 = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.ActiveCfg = Release|Any CPU - {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.Build.0 = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|Any CPU.Build.0 = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.ActiveCfg = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|arm64.Build.0 = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.ActiveCfg = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x64.Build.0 = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.ActiveCfg = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Debug|x86.Build.0 = Debug|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.ActiveCfg = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|Any CPU.Build.0 = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.ActiveCfg = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|arm64.Build.0 = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.ActiveCfg = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x64.Build.0 = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.ActiveCfg = Release|Any CPU +# {A1D02CE6-1077-410A-81CB-D4BD500FD765}.Release|x86.Build.0 = Release|Any CPU {3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|Any CPU.Build.0 = Debug|Any CPU {3044DFA5-DE4F-44D8-8DD8-EDF547BE513E}.Debug|arm64.ActiveCfg = Debug|Any CPU diff --git a/global.json b/global.json index 7b988f07763d..94b52be3e389 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.116" + "version": "6.0.411" }, "tools": { - "dotnet": "6.0.116", + "dotnet": "6.0.411", "runtimes": { "dotnet/x64": [ "2.1.30", diff --git a/pack.sh.txt b/pack.sh.txt new file mode 100644 index 000000000000..f9ac5300bc45 --- /dev/null +++ b/pack.sh.txt @@ -0,0 +1,66 @@ +#! /bin/zsh + +set -e + +(cd src/Servers/Kestrel && dotnet pack ./Kestrel.slnf) + +dotnet pack **/Microsoft.AspNetCore.Authentication.csproj +dotnet pack **/Microsoft.AspNetCore.Authentication.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Authentication.Cookies.csproj +dotnet pack **/Microsoft.AspNetCore.Authentication.Core.csproj +dotnet pack **/Microsoft.AspNetCore.Authorization.csproj +dotnet pack **/Microsoft.AspNetCore.CookiePolicy.csproj +dotnet pack **/Microsoft.AspNetCore.Connections.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Diagnostics.csproj +dotnet pack **/Microsoft.AspNetCore.HostFiltering.csproj +dotnet pack **/Microsoft.AspNetCore.Hosting.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Hosting.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Abstractions.csproj + +# signalR +dotnet pack **/Microsoft.AspNetCore.Authorization.Policy.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Connections.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Connections.Client.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Connections.Common.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.Common.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.Core.csproj +dotnet pack **/Microsoft.AspNetCore.SignalR.csproj +dotnet pack **/Microsoft.AspNetCore.Websockets.csproj + +# mvc minimal +dotnet pack **/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj +dotnet pack **/Microsoft.AspNetCore.Mvc.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Mvc.Core.csproj +dotnet pack **/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj + +dotnet pack **/Microsoft.AspNetCore.Http.Extensions.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Features.csproj +dotnet pack **/Microsoft.AspNetCore.Http.Results.csproj +dotnet pack **/Microsoft.AspNetCore.Http.csproj +dotnet pack **/Microsoft.AspNetCore.HttpOverrides.csproj +dotnet pack **/Microsoft.AspNetCore.Localization.csproj +dotnet pack **/Microsoft.AspNetCore.Owin.csproj +dotnet pack **/Microsoft.AspNetCore.Metadata.csproj +dotnet pack **/Microsoft.AspNetCore.ResponseCompression.csproj +dotnet pack **/Microsoft.AspNetCore.Rewrite.csproj +dotnet pack **/Microsoft.AspNetCore.Routing.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Routing.csproj +dotnet pack **/Microsoft.AspNetCore.Server.IIS.csproj +dotnet pack **/Microsoft.AspNetCore.Server.IISIntegration.csproj +dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Core.csproj +dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj +dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj +dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.csproj +dotnet pack **/Microsoft.AspNetCore.StaticFiles.csproj +dotnet pack **/Microsoft.AspNetCore.WebUtilities.csproj +dotnet pack **/Microsoft.AspNetCore.csproj +dotnet pack **/Microsoft.Extensions.Features.csproj +dotnet pack **/Microsoft.Extensions.FileProviders.Embedded.csproj +dotnet pack **/Microsoft.Extensions.ObjectPool.csproj +dotnet pack **/Microsoft.Extensions.WebEncoders.csproj +dotnet pack **/Microsoft.Net.Http.Headers.csproj diff --git a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj index 2c66a8407db3..f05e8e3f2973 100644 --- a/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj +++ b/src/DefaultBuilder/src/Microsoft.AspNetCore.csproj @@ -6,7 +6,7 @@ aspnetcore Microsoft.AspNetCore true - false + true enable diff --git a/src/Extensions/Features/src/Microsoft.Extensions.Features.csproj b/src/Extensions/Features/src/Microsoft.Extensions.Features.csproj index 695dcb3b3006..ad29143827d8 100644 --- a/src/Extensions/Features/src/Microsoft.Extensions.Features.csproj +++ b/src/Extensions/Features/src/Microsoft.Extensions.Features.csproj @@ -13,6 +13,7 @@ Microsoft.AspNetCore.Http.Features.FeatureCollection true aspnetcore enable + true diff --git a/src/FileProviders/Embedded/src/Microsoft.Extensions.FileProviders.Embedded.csproj b/src/FileProviders/Embedded/src/Microsoft.Extensions.FileProviders.Embedded.csproj index 85f462c50320..a92588b79cb4 100644 --- a/src/FileProviders/Embedded/src/Microsoft.Extensions.FileProviders.Embedded.csproj +++ b/src/FileProviders/Embedded/src/Microsoft.Extensions.FileProviders.Embedded.csproj @@ -12,6 +12,7 @@ files;filesystem true enable + true diff --git a/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj b/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj index cdcf26e2a546..2a7a34a1222e 100644 --- a/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj +++ b/src/Hosting/Abstractions/src/Microsoft.AspNetCore.Hosting.Abstractions.csproj @@ -6,7 +6,7 @@ true true aspnetcore;hosting - false + true enable diff --git a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj index 5ac8032197c4..b5555c0a1bf5 100644 --- a/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj +++ b/src/Hosting/Hosting/src/Microsoft.AspNetCore.Hosting.csproj @@ -6,7 +6,7 @@ true true aspnetcore;hosting - false + true enable diff --git a/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj b/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj index ef3ae05a8908..13a4f1dfe975 100644 --- a/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj +++ b/src/Hosting/Server.Abstractions/src/Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj @@ -6,7 +6,7 @@ true true aspnetcore;hosting - false + true enable diff --git a/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj b/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj index 5f8766455320..8ddb56516eba 100644 --- a/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj +++ b/src/Http/Authentication.Abstractions/src/Microsoft.AspNetCore.Authentication.Abstractions.csproj @@ -5,7 +5,7 @@ true true aspnetcore;authentication;security - false + true enable diff --git a/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj b/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj index 2b0b7356b953..59aba0f9e2b2 100644 --- a/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj +++ b/src/Http/Authentication.Core/src/Microsoft.AspNetCore.Authentication.Core.csproj @@ -6,7 +6,7 @@ true true aspnetcore;authentication;security - false + true enable diff --git a/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj b/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj index 5d9d0fa1ac79..03b7aac146ff 100644 --- a/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj +++ b/src/Http/Headers/src/Microsoft.Net.Http.Headers.csproj @@ -6,7 +6,7 @@ true true http - false + true enable true diff --git a/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj b/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj index 141f6816f86b..fe7afb3933a3 100644 --- a/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj +++ b/src/Http/Http.Abstractions/src/Microsoft.AspNetCore.Http.Abstractions.csproj @@ -12,7 +12,7 @@ Microsoft.AspNetCore.Http.HttpResponse true true aspnetcore - false + true enable diff --git a/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj b/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj index 06c4e0bb5fe8..5d335d840f3b 100644 --- a/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj +++ b/src/Http/Http.Extensions/src/Microsoft.AspNetCore.Http.Extensions.csproj @@ -6,7 +6,7 @@ true true aspnetcore - false + true enable diff --git a/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj b/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj index 787ed9e942ad..bc835d64b4ac 100644 --- a/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj +++ b/src/Http/Http.Features/src/Microsoft.AspNetCore.Http.Features.csproj @@ -6,7 +6,7 @@ true true aspnetcore - false + true enable diff --git a/src/Http/Http.Results/src/Microsoft.AspNetCore.Http.Results.csproj b/src/Http/Http.Results/src/Microsoft.AspNetCore.Http.Results.csproj index cfa2eb2e0da9..15a6f7dc9f31 100644 --- a/src/Http/Http.Results/src/Microsoft.AspNetCore.Http.Results.csproj +++ b/src/Http/Http.Results/src/Microsoft.AspNetCore.Http.Results.csproj @@ -6,7 +6,7 @@ true true aspnetcore - false + true enable Microsoft.AspNetCore.Http.Result diff --git a/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj b/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj index 6213aca587f1..260ccf60980c 100644 --- a/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj +++ b/src/Http/Http/src/Microsoft.AspNetCore.Http.csproj @@ -7,7 +7,7 @@ true true aspnetcore - false + true enable diff --git a/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj b/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj index 92e3d59afd5e..366d1ea6c40f 100644 --- a/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj +++ b/src/Http/Metadata/src/Microsoft.AspNetCore.Metadata.csproj @@ -8,6 +8,7 @@ aspnetcore enable true + true diff --git a/src/Http/Owin/src/Microsoft.AspNetCore.Owin.csproj b/src/Http/Owin/src/Microsoft.AspNetCore.Owin.csproj index bf57086595bb..622d90639be4 100644 --- a/src/Http/Owin/src/Microsoft.AspNetCore.Owin.csproj +++ b/src/Http/Owin/src/Microsoft.AspNetCore.Owin.csproj @@ -7,6 +7,7 @@ aspnetcore;owin disable + true diff --git a/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj b/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj index db1aa002e84f..3e026ad80d4f 100644 --- a/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj +++ b/src/Http/Routing.Abstractions/src/Microsoft.AspNetCore.Routing.Abstractions.csproj @@ -9,7 +9,7 @@ Microsoft.AspNetCore.Routing.RouteData true true aspnetcore;routing - false + true annotations diff --git a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj index 436280d15f3f..a02e9dc1e540 100644 --- a/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj +++ b/src/Http/Routing/src/Microsoft.AspNetCore.Routing.csproj @@ -12,7 +12,7 @@ true true aspnetcore;routing - false + true enable diff --git a/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj b/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj index f5ef216dccf5..7a57c8b9565b 100644 --- a/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj +++ b/src/Http/WebUtilities/src/Microsoft.AspNetCore.WebUtilities.csproj @@ -8,7 +8,7 @@ true true aspnetcore - false + true enable diff --git a/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj b/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj index 6696c7c0387a..acb47f165a69 100644 --- a/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj +++ b/src/Middleware/Diagnostics.Abstractions/src/Microsoft.AspNetCore.Diagnostics.Abstractions.csproj @@ -6,7 +6,7 @@ true true aspnetcore;diagnostics - false + true enable diff --git a/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj b/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj index 3a479bf0a025..560aaa40ca02 100644 --- a/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj +++ b/src/Middleware/Diagnostics/src/Microsoft.AspNetCore.Diagnostics.csproj @@ -6,7 +6,7 @@ true true aspnetcore;diagnostics - false + true enable diff --git a/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj index d041ad41ce04..5d15ee2d7cae 100644 --- a/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj +++ b/src/Middleware/HostFiltering/src/Microsoft.AspNetCore.HostFiltering.csproj @@ -8,7 +8,7 @@ true true aspnetcore - false + true enable diff --git a/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj index f27fe29cd711..8a8e16547d12 100644 --- a/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj +++ b/src/Middleware/HttpOverrides/src/Microsoft.AspNetCore.HttpOverrides.csproj @@ -8,7 +8,7 @@ true true aspnetcore;proxy;headers;xforwarded - false + true enable diff --git a/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj index 0824605d9c0d..9b0a588ed009 100644 --- a/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj +++ b/src/Middleware/Localization/src/Microsoft.AspNetCore.Localization.csproj @@ -7,7 +7,7 @@ true true aspnetcore;localization - false + true enable diff --git a/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj b/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj index 0fab4e01b07c..75f272dd0307 100644 --- a/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj +++ b/src/Middleware/ResponseCaching.Abstractions/src/Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj @@ -6,7 +6,7 @@ true true aspnetcore;cache;caching - false + true enable diff --git a/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj index 67ef58a98417..aba33c296681 100644 --- a/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj +++ b/src/Middleware/ResponseCompression/src/Microsoft.AspNetCore.ResponseCompression.csproj @@ -6,7 +6,7 @@ true true aspnetcore - false + true enable diff --git a/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj index f2d2f2233038..d529cd8403cc 100644 --- a/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj +++ b/src/Middleware/Rewrite/src/Microsoft.AspNetCore.Rewrite.csproj @@ -9,7 +9,7 @@ true true aspnetcore;urlrewrite;mod_rewrite - false + true enable diff --git a/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj b/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj index 7b36e43f674d..fca0a5a4d105 100644 --- a/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj +++ b/src/Middleware/StaticFiles/src/Microsoft.AspNetCore.StaticFiles.csproj @@ -6,7 +6,7 @@ true true aspnetcore;staticfiles - false + true enable diff --git a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj index 1443b5fae957..fcef243aee1a 100644 --- a/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj +++ b/src/Middleware/WebSockets/src/Microsoft.AspNetCore.WebSockets.csproj @@ -7,7 +7,7 @@ true true aspnetcore - false + true enable diff --git a/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj b/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj index b277931317a3..2d2c54bab54f 100644 --- a/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj +++ b/src/Mvc/Mvc.Abstractions/src/Microsoft.AspNetCore.Mvc.Abstractions.csproj @@ -8,7 +8,7 @@ Microsoft.AspNetCore.Mvc.IActionResult true true aspnetcore;aspnetcoremvc - false + true diff --git a/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj b/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj index b55223a8cef1..b1b2ce152410 100644 --- a/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj +++ b/src/Mvc/Mvc.ApiExplorer/src/Microsoft.AspNetCore.Mvc.ApiExplorer.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc - false + true diff --git a/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj b/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj index a0b45ab9d83a..5114ce0a90d9 100644 --- a/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj +++ b/src/Mvc/Mvc.Core/src/Microsoft.AspNetCore.Mvc.Core.csproj @@ -14,7 +14,7 @@ Microsoft.AspNetCore.Mvc.RouteAttribute true true aspnetcore;aspnetcoremvc - false + true enable diff --git a/src/ObjectPool/src/Microsoft.Extensions.ObjectPool.csproj b/src/ObjectPool/src/Microsoft.Extensions.ObjectPool.csproj index ab96bc0facee..1a4a748eeb61 100644 --- a/src/ObjectPool/src/Microsoft.Extensions.ObjectPool.csproj +++ b/src/ObjectPool/src/Microsoft.Extensions.ObjectPool.csproj @@ -7,6 +7,7 @@ pooling true enable + true diff --git a/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj b/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj index cc235c07f497..d23869ae52df 100644 --- a/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj +++ b/src/Security/Authentication/Cookies/src/Microsoft.AspNetCore.Authentication.Cookies.csproj @@ -7,7 +7,7 @@ $(DefineConstants);SECURITY true aspnetcore;authentication;security - false + true enable diff --git a/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj b/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj index 4598a5b8660c..932cbb753bfa 100644 --- a/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj +++ b/src/Security/Authentication/Core/src/Microsoft.AspNetCore.Authentication.csproj @@ -6,7 +6,7 @@ true true aspnetcore;authentication;security - false + true enable diff --git a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj index ac6336421579..3c119b3db452 100644 --- a/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj +++ b/src/Security/Authorization/Core/src/Microsoft.AspNetCore.Authorization.csproj @@ -12,6 +12,7 @@ Microsoft.AspNetCore.Authorization.AuthorizeAttribute aspnetcore;authorization enable true + true diff --git a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj index 088318e51324..9b29774438de 100644 --- a/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj +++ b/src/Security/Authorization/Policy/src/Microsoft.AspNetCore.Authorization.Policy.csproj @@ -6,7 +6,7 @@ true true aspnetcore;authorization - false + true enable diff --git a/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj b/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj index b0c5252e805e..fe7cbb944d57 100644 --- a/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj +++ b/src/Security/CookiePolicy/src/Microsoft.AspNetCore.CookiePolicy.csproj @@ -6,7 +6,7 @@ true true aspnetcore - false + true enable diff --git a/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj index b5434f188ff1..a569bc43725c 100644 --- a/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj +++ b/src/Servers/Connections.Abstractions/src/Microsoft.AspNetCore.Connections.Abstractions.csproj @@ -9,6 +9,7 @@ aspnetcore CS1591;$(NoWarn) enable + true diff --git a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj index b575db4f9f1c..2268c30ac195 100644 --- a/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj +++ b/src/Servers/IIS/IIS/src/Microsoft.AspNetCore.Server.IIS.csproj @@ -9,7 +9,7 @@ aspnetcore;iis true $(DefaultNetCoreTargetFramework) - false + true enable diff --git a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj index aa7be1b8159f..3090eb3ad1b4 100644 --- a/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj +++ b/src/Servers/IIS/IISIntegration/src/Microsoft.AspNetCore.Server.IISIntegration.csproj @@ -7,7 +7,7 @@ true aspnetcore;iis true - false + true enable diff --git a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj index bf9026ebb236..35568e34fddd 100644 --- a/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj +++ b/src/Servers/Kestrel/Core/src/Microsoft.AspNetCore.Server.Kestrel.Core.csproj @@ -8,7 +8,7 @@ aspnetcore;kestrel true CS1591;$(NoWarn) - false + true $(DefineConstants);KESTREL enable diff --git a/src/Servers/Kestrel/Kestrel.slnf b/src/Servers/Kestrel/Kestrel.slnf index f5809a62e74b..bbcc074da7c6 100644 --- a/src/Servers/Kestrel/Kestrel.slnf +++ b/src/Servers/Kestrel/Kestrel.slnf @@ -19,10 +19,6 @@ "src\\Servers\\Kestrel\\Core\\test\\Microsoft.AspNetCore.Server.Kestrel.Core.Tests.csproj", "src\\Servers\\Kestrel\\Kestrel\\src\\Microsoft.AspNetCore.Server.Kestrel.csproj", "src\\Servers\\Kestrel\\Kestrel\\test\\Microsoft.AspNetCore.Server.Kestrel.Tests.csproj", - "src\\Servers\\Kestrel\\Transport.Libuv\\src\\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.csproj", - "src\\Servers\\Kestrel\\Transport.Libuv\\test\\Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv.Tests.csproj", - "src\\Servers\\Kestrel\\Transport.Quic\\src\\Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj", - "src\\Servers\\Kestrel\\Transport.Quic\\test\\Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.Tests.csproj", "src\\Servers\\Kestrel\\Transport.Sockets\\src\\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj", "src\\Servers\\Kestrel\\perf\\Microbenchmarks\\Microsoft.AspNetCore.Server.Kestrel.Microbenchmarks.csproj", "src\\Servers\\Kestrel\\samples\\Http2SampleApp\\Http2SampleApp.csproj", @@ -35,8 +31,6 @@ "src\\Servers\\Kestrel\\samples\\http2cat\\http2cat.csproj", "src\\Servers\\Kestrel\\test\\InMemory.FunctionalTests\\InMemory.FunctionalTests.csproj", "src\\Servers\\Kestrel\\test\\Interop.FunctionalTests\\Interop.FunctionalTests.csproj", - "src\\Servers\\Kestrel\\test\\Libuv.BindTests\\Libuv.BindTests.csproj", - "src\\Servers\\Kestrel\\test\\Libuv.FunctionalTests\\Libuv.FunctionalTests.csproj", "src\\Servers\\Kestrel\\test\\Sockets.BindTests\\Sockets.BindTests.csproj", "src\\Servers\\Kestrel\\test\\Sockets.FunctionalTests\\Sockets.FunctionalTests.csproj", "src\\Servers\\Kestrel\\tools\\CodeGenerator\\CodeGenerator.csproj", diff --git a/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj index 106684e5cdf6..dbebc7aa0cf4 100644 --- a/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj +++ b/src/Servers/Kestrel/Kestrel/src/Microsoft.AspNetCore.Server.Kestrel.csproj @@ -6,7 +6,7 @@ true true aspnetcore;kestrel - false + true enable diff --git a/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs b/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs index 568115cced98..6a3c123f47de 100644 --- a/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs +++ b/src/Servers/Kestrel/Kestrel/src/WebHostBuilderKestrelExtensions.cs @@ -30,7 +30,7 @@ public static class WebHostBuilderKestrelExtensions public static IWebHostBuilder UseKestrel(this IWebHostBuilder hostBuilder) { #pragma warning disable CA2252 // Preview Features - hostBuilder.UseQuic(); + //hostBuilder.UseQuic(); #pragma warning restore CA2252 return hostBuilder.ConfigureServices(services => { diff --git a/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj b/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj index 145612775bf8..9427b91778fd 100644 --- a/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj +++ b/src/Servers/Kestrel/Transport.Quic/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj @@ -8,7 +8,7 @@ aspnetcore;kestrel true CA1416;CS1591;CS0436;$(NoWarn) - false + true enable True diff --git a/src/Servers/Kestrel/Transport.Quic/src/WebHostBuilderQuicExtensions.cs b/src/Servers/Kestrel/Transport.Quic/src/WebHostBuilderQuicExtensions.cs index 508809773554..cc48d42aeeed 100644 --- a/src/Servers/Kestrel/Transport.Quic/src/WebHostBuilderQuicExtensions.cs +++ b/src/Servers/Kestrel/Transport.Quic/src/WebHostBuilderQuicExtensions.cs @@ -18,6 +18,7 @@ public static class WebHostBuilderQuicExtensions [RequiresPreviewFeatures] public static IWebHostBuilder UseQuic(this IWebHostBuilder hostBuilder) { + /* if (QuicImplementationProviders.Default.IsSupported) { return hostBuilder.ConfigureServices(services => @@ -25,6 +26,7 @@ public static IWebHostBuilder UseQuic(this IWebHostBuilder hostBuilder) services.AddSingleton(); }); } + */ return hostBuilder; } diff --git a/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj index 785d52aa0ba3..6369c3b9a8b5 100644 --- a/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj +++ b/src/Servers/Kestrel/Transport.Sockets/src/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj @@ -8,7 +8,7 @@ aspnetcore;kestrel true CS1591;$(NoWarn) - false + true enable diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/Microsoft.AspNetCore.Http.Connections.Client.csproj b/src/SignalR/clients/csharp/Http.Connections.Client/src/Microsoft.AspNetCore.Http.Connections.Client.csproj index 48d0c41d0b1b..413e0f4d9c71 100644 --- a/src/SignalR/clients/csharp/Http.Connections.Client/src/Microsoft.AspNetCore.Http.Connections.Client.csproj +++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/Microsoft.AspNetCore.Http.Connections.Client.csproj @@ -4,6 +4,7 @@ Client for ASP.NET Core Connection Handlers $(DefaultNetCoreTargetFramework);$(DefaultNetFxTargetFramework);netstandard2.0;netstandard2.1 enable + true diff --git a/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj b/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj index e414aff297c8..55a6f46755bf 100644 --- a/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj +++ b/src/SignalR/common/Http.Connections.Common/src/Microsoft.AspNetCore.Http.Connections.Common.csproj @@ -8,6 +8,7 @@ Microsoft.AspNetCore.Http.Connections true enable + true diff --git a/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj b/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj index cd4ee8fd2d68..1e34fd407c67 100644 --- a/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj +++ b/src/SignalR/common/Http.Connections/src/Microsoft.AspNetCore.Http.Connections.csproj @@ -5,7 +5,7 @@ $(DefaultNetCoreTargetFramework) true true - false + true enable diff --git a/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj b/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj index 34a5f17dd19d..558d3089371d 100644 --- a/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj +++ b/src/SignalR/common/Protocols.Json/src/Microsoft.AspNetCore.SignalR.Protocols.Json.csproj @@ -8,6 +8,7 @@ Microsoft.AspNetCore.SignalR true enable + true diff --git a/src/SignalR/common/Protocols.MessagePack/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj b/src/SignalR/common/Protocols.MessagePack/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj index 69554b03f11a..63c2323e8360 100644 --- a/src/SignalR/common/Protocols.MessagePack/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj +++ b/src/SignalR/common/Protocols.MessagePack/src/Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj @@ -6,6 +6,7 @@ Microsoft.AspNetCore.SignalR true enable + true diff --git a/src/SignalR/common/Protocols.NewtonsoftJson/src/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj b/src/SignalR/common/Protocols.NewtonsoftJson/src/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj index 51d392697c8d..0c356d5ba3e4 100644 --- a/src/SignalR/common/Protocols.NewtonsoftJson/src/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj +++ b/src/SignalR/common/Protocols.NewtonsoftJson/src/Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj @@ -6,6 +6,7 @@ Microsoft.AspNetCore.SignalR true enable + true diff --git a/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj b/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj index 967d687ba2b7..87bb90aa1601 100644 --- a/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj +++ b/src/SignalR/common/SignalR.Common/src/Microsoft.AspNetCore.SignalR.Common.csproj @@ -8,6 +8,7 @@ Microsoft.AspNetCore.SignalR true enable + true diff --git a/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj b/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj index c5ae1cb3718f..163260c2af82 100644 --- a/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj +++ b/src/SignalR/server/Core/src/Microsoft.AspNetCore.SignalR.Core.csproj @@ -5,7 +5,7 @@ $(DefaultNetCoreTargetFramework) true Microsoft.AspNetCore.SignalR - false + true enable diff --git a/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj b/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj index bbe11c2ab0e9..88debaca1875 100644 --- a/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj +++ b/src/SignalR/server/SignalR/src/Microsoft.AspNetCore.SignalR.csproj @@ -3,7 +3,7 @@ Components for providing real-time bi-directional communication across the Web. $(DefaultNetCoreTargetFramework) true - false + true enable diff --git a/src/WebEncoders/src/Microsoft.Extensions.WebEncoders.csproj b/src/WebEncoders/src/Microsoft.Extensions.WebEncoders.csproj index 6f832eb8a11d..74938a48b60d 100644 --- a/src/WebEncoders/src/Microsoft.Extensions.WebEncoders.csproj +++ b/src/WebEncoders/src/Microsoft.Extensions.WebEncoders.csproj @@ -8,6 +8,7 @@ aspnetcore true enable + true From 71fb26ba5f95d1302ca9ffe180fdb13d3e6a742d Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 18 Jul 2023 15:15:31 -0700 Subject: [PATCH 015/128] A powershell script to build the nuget packages vinyl maui requires. --- pack.ps1 | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 pack.ps1 diff --git a/pack.ps1 b/pack.ps1 new file mode 100644 index 000000000000..86b70522bacd --- /dev/null +++ b/pack.ps1 @@ -0,0 +1,96 @@ +function Build-Project +{ + param ( + [string]$ProjectName + ) + + try { + + } + catch { + <#Do this if a terminating exception happens#> + } + $ProjectFiles = @(Get-ChildItem -Path . -Filter $ProjectName -Recurse -File) + if ($ProjectFiles.Length -eq 0) { + throw "Couldn't find project $ProjectName." + } + if ($ProjectFiles.Length -gt 1) { + throw "Too many results for project $ProjectName." + } + + $ProjectFullPath = $ProjectFiles[0].FullName + + dotnet pack $ProjectFullPath + if (!$?) { + throw "Failed to build project $ProjectFullPath." + } +} + +function Build-AspNetCore { + Push-Location -Path src/Servers/Kestrel + dotnet pack Kestrel.slnf + Pop-Location + + # Main libraries + Build-Project Microsoft.AspNetCore.Authentication.csproj + Build-Project Microsoft.AspNetCore.Authentication.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Authentication.Cookies.csproj + Build-Project Microsoft.AspNetCore.Authentication.Core.csproj + Build-Project Microsoft.AspNetCore.Authorization.csproj + Build-Project Microsoft.AspNetCore.CookiePolicy.csproj + Build-Project Microsoft.AspNetCore.Connections.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Diagnostics.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Diagnostics.csproj + Build-Project Microsoft.AspNetCore.HostFiltering.csproj + Build-Project Microsoft.AspNetCore.Hosting.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Hosting.csproj + Build-Project Microsoft.AspNetCore.Http.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Http.Extensions.csproj + Build-Project Microsoft.AspNetCore.Http.Features.csproj + Build-Project Microsoft.AspNetCore.Http.Results.csproj + Build-Project Microsoft.AspNetCore.Http.csproj + Build-Project Microsoft.AspNetCore.HttpOverrides.csproj + Build-Project Microsoft.AspNetCore.Localization.csproj + Build-Project Microsoft.AspNetCore.Owin.csproj + Build-Project Microsoft.AspNetCore.Metadata.csproj + Build-Project Microsoft.AspNetCore.ResponseCompression.csproj + Build-Project Microsoft.AspNetCore.Rewrite.csproj + Build-Project Microsoft.AspNetCore.Routing.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Routing.csproj + Build-Project Microsoft.AspNetCore.Server.IIS.csproj + Build-Project Microsoft.AspNetCore.Server.IISIntegration.csproj + Build-Project Microsoft.AspNetCore.Server.Kestrel.Core.csproj + Build-Project Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj + Build-Project Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj + Build-Project Microsoft.AspNetCore.Server.Kestrel.csproj + Build-Project Microsoft.AspNetCore.StaticFiles.csproj + Build-Project Microsoft.AspNetCore.WebUtilities.csproj + Build-Project Microsoft.AspNetCore.csproj + Build-Project Microsoft.Extensions.Features.csproj + Build-Project Microsoft.Extensions.FileProviders.Embedded.csproj + Build-Project Microsoft.Extensions.ObjectPool.csproj + Build-Project Microsoft.Extensions.WebEncoders.csproj + Build-Project Microsoft.Net.Http.Headers.csproj + + # signalR + Build-Project Microsoft.AspNetCore.Authorization.Policy.csproj + Build-Project Microsoft.AspNetCore.Http.Connections.csproj + Build-Project Microsoft.AspNetCore.Http.Connections.Client.csproj + Build-Project Microsoft.AspNetCore.Http.Connections.Common.csproj + Build-Project Microsoft.AspNetCore.SignalR.Protocols.Json.csproj + Build-Project Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj + Build-Project Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj + Build-Project Microsoft.AspNetCore.SignalR.Common.csproj + Build-Project Microsoft.AspNetCore.SignalR.Core.csproj + Build-Project Microsoft.AspNetCore.SignalR.csproj + Build-Project Microsoft.AspNetCore.Websockets.csproj + + # mvc minimal api + Build-Project Microsoft.AspNetCore.Mvc.ApiExplorer.csproj + Build-Project Microsoft.AspNetCore.Mvc.Abstractions.csproj + Build-Project Microsoft.AspNetCore.Mvc.Core.csproj + Build-Project Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj +} + +Build-AspNetCore \ No newline at end of file From c9e083ccadd8446cc7dcd34b1763abdb4aebe157 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 18 Jul 2023 15:16:04 -0700 Subject: [PATCH 016/128] I guess I missed adding this commit... refs VINYL-14964 --- AspNetCore.sln | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AspNetCore.sln b/AspNetCore.sln index 3a5d4c142508..07318c29e91f 100644 --- a/AspNetCore.sln +++ b/AspNetCore.sln @@ -11171,7 +11171,7 @@ Global {17F28812-983E-4415-A55D-842DD7EC6887} = {627BE8B3-59E6-4F1D-8C9C-76B804D41724} {A07D3B13-388B-444F-9E37-DDC0787C4690} = {17F28812-983E-4415-A55D-842DD7EC6887} {09FFBC53-3EFF-45C4-9822-5D66089CD6AD} = {17F28812-983E-4415-A55D-842DD7EC6887} - {A1D02CE6-1077-410A-81CB-D4BD500FD765} = {0508E463-0269-40C9-B5C2-3B600FB2A28B} +# {A1D02CE6-1077-410A-81CB-D4BD500FD765} = {0508E463-0269-40C9-B5C2-3B600FB2A28B} {3044DFA5-DE4F-44D8-8DD8-EDF547BE513E} = {C445B129-0A4D-41F5-8347-6534B6B12303} {4BD6F0DB-BE9C-4C54-B52A-D20B88855ED5} = {C445B129-0A4D-41F5-8347-6534B6B12303} {6CCCF618-2E70-4870-B39F-32C016FE08F0} = {088C37A5-30D2-40FB-B031-D163CFBED006} From d0fbfa868f180b85687c19ee20773400ef393c19 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 18 Jul 2023 15:19:50 -0700 Subject: [PATCH 017/128] Ensure Release config is used for nuget packages. refs VINYL-14964 --- pack.ps1 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pack.ps1 b/pack.ps1 index 86b70522bacd..eefe9a81a5da 100644 --- a/pack.ps1 +++ b/pack.ps1 @@ -1,3 +1,6 @@ +# Globals... for now. +$Configuration = "Release" + function Build-Project { param ( @@ -20,7 +23,7 @@ function Build-Project $ProjectFullPath = $ProjectFiles[0].FullName - dotnet pack $ProjectFullPath + dotnet pack -c $Configuration $ProjectFullPath if (!$?) { throw "Failed to build project $ProjectFullPath." } From a77dac8f905838e93658baecdd6778b840a061f3 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 18 Jul 2023 16:33:55 -0700 Subject: [PATCH 018/128] Downgrade sdk requirement to 6.0.7 which matches build server. refs VINYL-14964 --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 94b52be3e389..0c36880a1a04 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.411" + "version": "6.0.302" }, "tools": { - "dotnet": "6.0.411", + "dotnet": "6.0.302", "runtimes": { "dotnet/x64": [ "2.1.30", From 73d24ad1197b86dbb8fe1a0fb44bdc5772e192c1 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 19 Jul 2023 14:12:06 -0700 Subject: [PATCH 019/128] Remove IIS from projects to pack. refs VINYL-14964 --- pack.ps1 | 4 +--- pack.sh.txt | 2 -- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/pack.ps1 b/pack.ps1 index eefe9a81a5da..6b5e86afcb57 100644 --- a/pack.ps1 +++ b/pack.ps1 @@ -61,8 +61,6 @@ function Build-AspNetCore { Build-Project Microsoft.AspNetCore.Rewrite.csproj Build-Project Microsoft.AspNetCore.Routing.Abstractions.csproj Build-Project Microsoft.AspNetCore.Routing.csproj - Build-Project Microsoft.AspNetCore.Server.IIS.csproj - Build-Project Microsoft.AspNetCore.Server.IISIntegration.csproj Build-Project Microsoft.AspNetCore.Server.Kestrel.Core.csproj Build-Project Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj Build-Project Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj @@ -96,4 +94,4 @@ function Build-AspNetCore { Build-Project Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj } -Build-AspNetCore \ No newline at end of file +Build-AspNetCore diff --git a/pack.sh.txt b/pack.sh.txt index f9ac5300bc45..80ca2329acd6 100644 --- a/pack.sh.txt +++ b/pack.sh.txt @@ -50,8 +50,6 @@ dotnet pack **/Microsoft.AspNetCore.ResponseCompression.csproj dotnet pack **/Microsoft.AspNetCore.Rewrite.csproj dotnet pack **/Microsoft.AspNetCore.Routing.Abstractions.csproj dotnet pack **/Microsoft.AspNetCore.Routing.csproj -dotnet pack **/Microsoft.AspNetCore.Server.IIS.csproj -dotnet pack **/Microsoft.AspNetCore.Server.IISIntegration.csproj dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Core.csproj dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj dotnet pack **/Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj From 4865c62fb4dfb8dcb8b1ff3bc9801bed0534d26a Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 19 Jul 2023 14:31:17 -0700 Subject: [PATCH 020/128] Log which project is being built. refs VINYL-14964 --- pack.ps1 | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pack.ps1 b/pack.ps1 index 6b5e86afcb57..4fc56a37fc4e 100644 --- a/pack.ps1 +++ b/pack.ps1 @@ -7,12 +7,6 @@ function Build-Project [string]$ProjectName ) - try { - - } - catch { - <#Do this if a terminating exception happens#> - } $ProjectFiles = @(Get-ChildItem -Path . -Filter $ProjectName -Recurse -File) if ($ProjectFiles.Length -eq 0) { throw "Couldn't find project $ProjectName." @@ -23,6 +17,8 @@ function Build-Project $ProjectFullPath = $ProjectFiles[0].FullName + WriteOutput "Building $ProjectFullPath" + dotnet pack -c $Configuration $ProjectFullPath if (!$?) { throw "Failed to build project $ProjectFullPath." From 9ba756e4f130a763480b7bd96101d046c684b5a5 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 19 Jul 2023 14:38:22 -0700 Subject: [PATCH 021/128] Fix typo. refs VINYL-14964 --- pack.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pack.ps1 b/pack.ps1 index 4fc56a37fc4e..98ca2b2a4720 100644 --- a/pack.ps1 +++ b/pack.ps1 @@ -17,8 +17,8 @@ function Build-Project $ProjectFullPath = $ProjectFiles[0].FullName - WriteOutput "Building $ProjectFullPath" - + Write-Output "Building $ProjectFullPath" + dotnet pack -c $Configuration $ProjectFullPath if (!$?) { throw "Failed to build project $ProjectFullPath." From 2b28c0aa7e46c8202a61da8463215753d7ac80b4 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 19 Jul 2023 15:49:06 -0700 Subject: [PATCH 022/128] Another attempt to build... refs VINYL-14964 --- pack-list.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++ pack.sh | 11 +++++++++++ 2 files changed, 64 insertions(+) create mode 100644 pack-list.txt create mode 100755 pack.sh diff --git a/pack-list.txt b/pack-list.txt new file mode 100644 index 000000000000..63cc713bc3d6 --- /dev/null +++ b/pack-list.txt @@ -0,0 +1,53 @@ +Microsoft.AspNetCore.Authentication.csproj +Microsoft.AspNetCore.Authentication.Abstractions.csproj +Microsoft.AspNetCore.Authentication.Cookies.csproj +Microsoft.AspNetCore.Authentication.Core.csproj +Microsoft.AspNetCore.Authorization.csproj +Microsoft.AspNetCore.CookiePolicy.csproj +Microsoft.AspNetCore.Connections.Abstractions.csproj +Microsoft.AspNetCore.Diagnostics.Abstractions.csproj +Microsoft.AspNetCore.Diagnostics.csproj +Microsoft.AspNetCore.HostFiltering.csproj +Microsoft.AspNetCore.Hosting.Abstractions.csproj +Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj +Microsoft.AspNetCore.Hosting.csproj +Microsoft.AspNetCore.Http.Abstractions.csproj +Microsoft.AspNetCore.Http.Extensions.csproj +Microsoft.AspNetCore.Http.Features.csproj +Microsoft.AspNetCore.Http.Results.csproj +Microsoft.AspNetCore.Http.csproj +Microsoft.AspNetCore.HttpOverrides.csproj +Microsoft.AspNetCore.Localization.csproj +Microsoft.AspNetCore.Owin.csproj +Microsoft.AspNetCore.Metadata.csproj +Microsoft.AspNetCore.ResponseCompression.csproj +Microsoft.AspNetCore.Rewrite.csproj +Microsoft.AspNetCore.Routing.Abstractions.csproj +Microsoft.AspNetCore.Routing.csproj +Microsoft.AspNetCore.Server.Kestrel.Core.csproj +Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj +Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj +Microsoft.AspNetCore.Server.Kestrel.csproj +Microsoft.AspNetCore.StaticFiles.csproj +Microsoft.AspNetCore.WebUtilities.csproj +Microsoft.AspNetCore.csproj +Microsoft.Extensions.Features.csproj +Microsoft.Extensions.FileProviders.Embedded.csproj +Microsoft.Extensions.ObjectPool.csproj +Microsoft.Extensions.WebEncoders.csproj +Microsoft.Net.Http.Headers.csproj +Microsoft.AspNetCore.Authorization.Policy.csproj +Microsoft.AspNetCore.Http.Connections.csproj +Microsoft.AspNetCore.Http.Connections.Client.csproj +Microsoft.AspNetCore.Http.Connections.Common.csproj +Microsoft.AspNetCore.SignalR.Protocols.Json.csproj +Microsoft.AspNetCore.SignalR.Protocols.MessagePack.csproj +Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson.csproj +Microsoft.AspNetCore.SignalR.Common.csproj +Microsoft.AspNetCore.SignalR.Core.csproj +Microsoft.AspNetCore.SignalR.csproj +Microsoft.AspNetCore.Websockets.csproj +Microsoft.AspNetCore.Mvc.ApiExplorer.csproj +Microsoft.AspNetCore.Mvc.Abstractions.csproj +Microsoft.AspNetCore.Mvc.Core.csproj +Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj \ No newline at end of file diff --git a/pack.sh b/pack.sh new file mode 100755 index 000000000000..6510d2dd6476 --- /dev/null +++ b/pack.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +configuration=Release +#arch=x64,arm,arm64 + +cat pack-list.txt | while read line || [[ -n $line ]]; +do + echo $line + fullPath=$(pwd)/$(find . -iname "$line") + ./dockerbuild.sh bionic --configuration $configuration --projects $fullPath +done From 7f76f0e59dbf5bc32ed47e634c5c3c11e5b91dea Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 19 Jul 2023 16:32:52 -0700 Subject: [PATCH 023/128] Speed up docker build... refs VINYL-14964 --- dockerpack.sh | 152 ++++++++++++++++++++++++++++++++++++++++++++++++++ pack.sh | 2 +- 2 files changed, 153 insertions(+), 1 deletion(-) create mode 100755 dockerpack.sh diff --git a/dockerpack.sh b/dockerpack.sh new file mode 100755 index 000000000000..d614f81f2481 --- /dev/null +++ b/dockerpack.sh @@ -0,0 +1,152 @@ +#!/usr/bin/env bash + +set -euo pipefail + +# +# variables +# + +RESET="\033[0m" +RED="\033[0;31m" +YELLOW="\033[0;33m" +MAGENTA="\033[0;95m" +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +build_args=() +docker_args=() + +# +# Functions +# +__usage() { + echo "Usage: $(basename "${BASH_SOURCE[0]}") [options] [[--] ...]" + echo "" + echo "Arguments:" + echo " image The docker image to use." + echo " ... Arguments passed to the command. Variable number of arguments allowed." + echo "" + echo "Options:" + echo " -v, --volume An additional volume mount to add to the build container" + echo " -e, --env Additional environment variables to add to the build container" + echo "" + echo "Description:" + echo " This will run build.sh inside the dockerfile as defined in eng/docker/\$image.Dockerfile." + + if [[ "${1:-}" != '--no-exit' ]]; then + exit 2 + fi +} + + +__error() { + echo -e "${RED}error: $*${RESET}" 1>&2 +} + +__warn() { + echo -e "${YELLOW}warning: $*${RESET}" +} + +__machine_has() { + hash "$1" > /dev/null 2>&1 + return $? +} + +# +# main +# + +image="${1:-}" +shift || True + +while [[ $# -gt 0 ]]; do + case $1 in + -\?|-h|--help) + __usage --no-exit + exit 0 + ;; + -v|--volume) + shift + volume_spec="${1:-}" + [ -z "$volume_spec" ] && __error "Missing value for parameter --volume" && __usage + docker_args[${#docker_args[*]}]="--volume" + docker_args[${#docker_args[*]}]="$volume_spec" + ;; + -e|--env) + shift + env_var="${1:-}" + [ -z "$env_var" ] && __error "Missing value for parameter --env" && __usage + docker_args[${#docker_args[*]}]="-e" + docker_args[${#docker_args[*]}]="$env_var" + ;; + *) + build_args[${#build_args[*]}]="$1" + ;; + esac + shift +done + +if [ -z "$image" ]; then + __usage --no-exit + __error 'Missing required argument: image' + exit 1 +fi + +if ! __machine_has docker; then + __error 'Missing required command: docker' + exit 1 +fi + +commit_hash="$(git rev-parse HEAD || true)" + +if [ ! -z "$commit_hash" ]; then + build_args[${#build_args[*]}]="-p:SourceRevisionId=$commit_hash" +fi + +dockerfile="$DIR/eng/docker/$image.Dockerfile" +tagname="aspnetcore-build-$image" + +# Use docker pull with retries to pre-pull the image need by the dockerfile +# docker build regularly fails with TLS handshake issues for unclear reasons. +base_imagename="$(grep -E -o 'FROM (.*)' $dockerfile | cut -c 6-)" +pull_retries=3 +while [ $pull_retries -gt 0 ]; do + failed=false + docker pull $base_imagename || failed=true + if [ "$failed" = true ]; then + let pull_retries=pull_retries-1 + echo -e "${YELLOW}Failed to pull $base_imagename Retries left: $pull_retries.${RESET}" + sleep 1 + else + pull_retries=0 + fi +done + +docker build "$(dirname "$dockerfile")" \ + --build-arg "USER=$(whoami)" \ + --build-arg "USER_ID=$(id -u)" \ + --build-arg "GROUP_ID=$(id -g)" \ + --build-arg "WORKDIR=$DIR" \ + --tag $tagname \ + -f "$dockerfile" + +docker run \ + --rm \ + -t \ + -e TF_BUILD \ + -e BUILD_NUMBER \ + -e BUILD_BUILDID \ + -e SYSTEM_TEAMPROJECT \ + -e BUILD_BUILDNUMBER \ + -e BUILD_REPOSITORY_NAME \ + -e BUILD_REPOSITORY_URI \ + -e BUILD_REPOSITORY_NAME \ + -e BUILD_SOURCEVERSION \ + -e BUILD_SOURCEBRANCH \ + -e SYSTEM_DEFINITIONID \ + -e SYSTEM_TEAMFOUNDATIONCOLLECTIONURI \ + -e DOTNET_CLI_TELEMETRY_OPTOUT \ + -e Configuration \ + -v "$DIR:$DIR" \ + ${docker_args[@]+"${docker_args[@]}"} \ + $tagname \ + ./packfordocker.sh \ + ${build_args[@]+"${build_args[@]}"} diff --git a/pack.sh b/pack.sh index 6510d2dd6476..f08abc0c442f 100755 --- a/pack.sh +++ b/pack.sh @@ -7,5 +7,5 @@ cat pack-list.txt | while read line || [[ -n $line ]]; do echo $line fullPath=$(pwd)/$(find . -iname "$line") - ./dockerbuild.sh bionic --configuration $configuration --projects $fullPath + ./eng/build.sh --configuration $configuration --projects $fullPath done From d1fa5464c6b9a8cef6306159c86f1817222974b6 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 08:59:19 -0700 Subject: [PATCH 024/128] Another build attempt with docker. refs VINYL-14964 --- dockerpack.sh | 2 +- pack.sh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/dockerpack.sh b/dockerpack.sh index d614f81f2481..0d70cc4dd83b 100755 --- a/dockerpack.sh +++ b/dockerpack.sh @@ -148,5 +148,5 @@ docker run \ -v "$DIR:$DIR" \ ${docker_args[@]+"${docker_args[@]}"} \ $tagname \ - ./packfordocker.sh \ + ./pack.sh \ ${build_args[@]+"${build_args[@]}"} diff --git a/pack.sh b/pack.sh index f08abc0c442f..2d86f53aa4ef 100755 --- a/pack.sh +++ b/pack.sh @@ -1,5 +1,7 @@ #!/usr/bin/env bash +set -euo pipefail + configuration=Release #arch=x64,arm,arm64 From 5030504aeb7395411583c8a9440cea1c6f85ef31 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 09:08:26 -0700 Subject: [PATCH 025/128] Try jamming in a HOME var refs VINYL-14964 --- dockerpack.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dockerpack.sh b/dockerpack.sh index 0d70cc4dd83b..03298de73bd7 100755 --- a/dockerpack.sh +++ b/dockerpack.sh @@ -128,6 +128,7 @@ docker build "$(dirname "$dockerfile")" \ --tag $tagname \ -f "$dockerfile" +# Vinyl: Added HOME variable as the teamcity linux build agent does not have a HOME folder by default. docker run \ --rm \ -t \ @@ -145,6 +146,7 @@ docker run \ -e SYSTEM_TEAMFOUNDATIONCOLLECTIONURI \ -e DOTNET_CLI_TELEMETRY_OPTOUT \ -e Configuration \ + -e HOME="$DIR" \ -v "$DIR:$DIR" \ ${docker_args[@]+"${docker_args[@]}"} \ $tagname \ From 0a4605e2ce48657ab0b1876a4b95c0f585b30cd3 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 09:19:29 -0700 Subject: [PATCH 026/128] Another hack. refs VINYL-14964 --- eng/common/tools.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eng/common/tools.sh b/eng/common/tools.sh index e555c34269f6..14eb5a5ce6d3 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -121,7 +121,11 @@ function InitializeDotNetCli { # LTTNG is the logging infrastructure used by Core CLR. Need this variable set # so it doesn't output warnings to the console. - export LTTNG_HOME="$HOME" + # Vinyl: HOME isn't set for linux teamcity build agent... + export LTTNG_HOME="." + if [[ -v HOME -eq 1 ]]; then + export LTTNG_HOME="$HOME" + fi # Source Build uses DotNetCoreSdkDir variable if [[ -n "${DotNetCoreSdkDir:-}" ]]; then From 1da7c493c163209035f6dd07d5b172bd840e8d04 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 09:22:19 -0700 Subject: [PATCH 027/128] Another approach. refs VINYL-14964 --- eng/common/tools.sh | 6 +----- pack.sh | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/eng/common/tools.sh b/eng/common/tools.sh index 14eb5a5ce6d3..e555c34269f6 100755 --- a/eng/common/tools.sh +++ b/eng/common/tools.sh @@ -121,11 +121,7 @@ function InitializeDotNetCli { # LTTNG is the logging infrastructure used by Core CLR. Need this variable set # so it doesn't output warnings to the console. - # Vinyl: HOME isn't set for linux teamcity build agent... - export LTTNG_HOME="." - if [[ -v HOME -eq 1 ]]; then - export LTTNG_HOME="$HOME" - fi + export LTTNG_HOME="$HOME" # Source Build uses DotNetCoreSdkDir variable if [[ -n "${DotNetCoreSdkDir:-}" ]]; then diff --git a/pack.sh b/pack.sh index 2d86f53aa4ef..45ca5a62c7c8 100755 --- a/pack.sh +++ b/pack.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -set -euo pipefail +set -eo pipefail configuration=Release #arch=x64,arm,arm64 From f6d88adf6dd553e995ef8c82429931255dcdca00 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 10:42:33 -0700 Subject: [PATCH 028/128] Generate packages. refs VINYL-14964 --- pack.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pack.sh b/pack.sh index 45ca5a62c7c8..8f0aadefa897 100755 --- a/pack.sh +++ b/pack.sh @@ -9,5 +9,5 @@ cat pack-list.txt | while read line || [[ -n $line ]]; do echo $line fullPath=$(pwd)/$(find . -iname "$line") - ./eng/build.sh --configuration $configuration --projects $fullPath + ./eng/build.sh --pack --configuration $configuration --projects $fullPath done From 89afccabae3cb7fe570a5501fb46f97cc4294960 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 20 Jul 2023 12:04:49 -0700 Subject: [PATCH 029/128] Go back to the slow way of doing things. Seg faults are happening when building everything within docker container. refs VINYL-14964 --- dockerpack.sh | 4 +--- pack.sh | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/dockerpack.sh b/dockerpack.sh index 03298de73bd7..ef459ac57ab1 100755 --- a/dockerpack.sh +++ b/dockerpack.sh @@ -128,7 +128,6 @@ docker build "$(dirname "$dockerfile")" \ --tag $tagname \ -f "$dockerfile" -# Vinyl: Added HOME variable as the teamcity linux build agent does not have a HOME folder by default. docker run \ --rm \ -t \ @@ -146,9 +145,8 @@ docker run \ -e SYSTEM_TEAMFOUNDATIONCOLLECTIONURI \ -e DOTNET_CLI_TELEMETRY_OPTOUT \ -e Configuration \ - -e HOME="$DIR" \ -v "$DIR:$DIR" \ ${docker_args[@]+"${docker_args[@]}"} \ $tagname \ - ./pack.sh \ + ./eng/build.sh \ ${build_args[@]+"${build_args[@]}"} diff --git a/pack.sh b/pack.sh index 8f0aadefa897..05b2e50dd6ca 100755 --- a/pack.sh +++ b/pack.sh @@ -9,5 +9,5 @@ cat pack-list.txt | while read line || [[ -n $line ]]; do echo $line fullPath=$(pwd)/$(find . -iname "$line") - ./eng/build.sh --pack --configuration $configuration --projects $fullPath + ./dockerbuild.sh bionic --pack --configuration $configuration --projects $fullPath done From 6654e7db3803d201457556002a70b9449ab0567a Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Mon, 24 Jul 2023 14:11:24 -0700 Subject: [PATCH 030/128] Adding IIS and IISIntegration packages. refs VINYL-14964 --- pack-list.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pack-list.txt b/pack-list.txt index 63cc713bc3d6..2952febddd0c 100644 --- a/pack-list.txt +++ b/pack-list.txt @@ -24,6 +24,8 @@ Microsoft.AspNetCore.ResponseCompression.csproj Microsoft.AspNetCore.Rewrite.csproj Microsoft.AspNetCore.Routing.Abstractions.csproj Microsoft.AspNetCore.Routing.csproj +Microsoft.AspNetCore.Server.IIS.csproj +Microsoft.AspNetCore.Server.IISIntegration.csproj Microsoft.AspNetCore.Server.Kestrel.Core.csproj Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.csproj Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.csproj From 80935a445a63b845f78e875049a1d44434af7dd3 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 2 Aug 2023 03:25:30 +0000 Subject: [PATCH 031/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 8 ++++++-- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 27 insertions(+), 23 deletions(-) diff --git a/NuGet.config b/NuGet.config index 65bb92f0d5be..fe79bbc338d2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,12 @@ - + + + @@ -25,10 +27,12 @@ + + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8cf765e85742..470204c2a58c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + 5a218984448228027d0c5613fc49132e9eee7fe4 diff --git a/eng/Versions.props b/eng/Versions.props index 9a77756a55fe..ca9d29c47357 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21-servicing.23363.11 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22-servicing.23401.9 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.21-servicing.23363.11 + 6.0.22-servicing.23401.9 6.0.1 6.0.0 6.0.2 From 4a6bf8236763b0f4b245d9edcffd5c31e93d0810 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 2 Aug 2023 10:39:18 +0000 Subject: [PATCH 032/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index fe79bbc338d2..8c232bc6cb3a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -32,7 +32,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 470204c2a58c..f49eb66e78e8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5a218984448228027d0c5613fc49132e9eee7fe4 + a51eda716136f8beccac9c063818aa536939af61 diff --git a/eng/Versions.props b/eng/Versions.props index ca9d29c47357..75b4cccac11c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23401.9 + 6.0.22-servicing.23401.20 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23401.9 + 6.0.22-servicing.23401.20 6.0.1 6.0.0 6.0.2 From 45266f78484a55c1ff551eebad7f1618947bdd1e Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Wed, 2 Aug 2023 11:10:31 -0700 Subject: [PATCH 033/128] Update branding to 6.0.22 (#49778) --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index e3f38cdfb61a..a68d8be79ed6 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,8 +8,8 @@ 6 0 - 21 - true + 22 + false From cdd11ebc404b9fab68679b3352e4acc473e3123d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Aug 2023 18:48:38 +0000 Subject: [PATCH 034/128] [release/6.0] (deps): Bump src/submodules/googletest (#49770) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `be03d00` to `6f6ab42`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/be03d00f5f0cc3a997d1a368bee8a1fe93651f48...6f6ab4212aa02cfe02e480711246da4fc17b0761) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/googletest b/src/submodules/googletest index be03d00f5f0c..6f6ab4212aa0 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit be03d00f5f0cc3a997d1a368bee8a1fe93651f48 +Subproject commit 6f6ab4212aa02cfe02e480711246da4fc17b0761 From 58d572af8d4b51da9669b5aa49d4b1f2cae64e33 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 2 Aug 2023 20:04:24 +0000 Subject: [PATCH 035/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 8 ++------ eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 26 insertions(+), 30 deletions(-) diff --git a/NuGet.config b/NuGet.config index 8c232bc6cb3a..87d8756d060a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,9 +7,7 @@ - - - + @@ -27,9 +25,7 @@ - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f49eb66e78e8..99c46abbcc93 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + c62df6b705f70fd03d8ec8feba5ffddd93f35134 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index d3e691623ffa..5a3ca1d0f9b2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 + 6.0.22 6.0.0-beta.23361.3 6.0.0-beta.23361.3 From 9dbd19b1421b22c49dfd2454f44e08af9c60d78a Mon Sep 17 00:00:00 2001 From: William Godbe Date: Thu, 3 Aug 2023 13:23:38 -0700 Subject: [PATCH 036/128] Move to MacOS 13 (#49367) --- eng/targets/Helix.Common.props | 2 +- src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/targets/Helix.Common.props b/eng/targets/Helix.Common.props index ace38de8e19a..4b9a86cf4623 100644 --- a/eng/targets/Helix.Common.props +++ b/eng/targets/Helix.Common.props @@ -31,7 +31,7 @@ - + diff --git a/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs b/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs index 30e791259528..18473c3a7b35 100644 --- a/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs +++ b/src/Identity/test/Identity.Test/IdentityUIScriptsTest.cs @@ -17,7 +17,7 @@ namespace Microsoft.AspNetCore.Identity.Test { - [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/38542", Queues="OSX.1015.Amd64.Open;OSX.1015.Amd64")] //slow + [SkipOnHelix("https://github.com/dotnet/aspnetcore/issues/38542", Queues="OSX.13.Amd64.Open;OSX.13.AMD64")] //slow public class IdentityUIScriptsTest : IDisposable { private readonly ITestOutputHelper _output; From 54ce6171d4eb8a54f9682abe91f3a61a0731f23a Mon Sep 17 00:00:00 2001 From: Brennan Date: Mon, 7 Aug 2023 09:00:20 -0700 Subject: [PATCH 037/128] Update NuGet (#49872) --- eng/Versions.props | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index a68d8be79ed6..d4e7768f2d2a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -206,9 +206,9 @@ 11.1.0 1.4.0 6.10.0 - 6.0.0 - 6.0.0 - 6.0.0 + 6.0.5 + 6.0.5 + 6.0.5 5.0.0 5.0.0-alpha.20560.6 5.0.0 From 8df26a129f8cec3ac4afe429f14dc42955a4e73a Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 8 Aug 2023 11:00:08 -0700 Subject: [PATCH 038/128] Update baseline, SDK --- eng/Baseline.Designer.props | 444 ++++++++++++++++++------------------ eng/Baseline.xml | 214 ++++++++--------- eng/Versions.props | 2 +- global.json | 4 +- 4 files changed, 332 insertions(+), 332 deletions(-) diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index ae468b57d8d0..e79ad5771518 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,28 +2,28 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - - + + + @@ -34,120 +34,120 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 @@ -155,114 +155,114 @@ - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - - - + + + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - + + @@ -270,7 +270,7 @@ - 6.0.20 + 6.0.21 @@ -278,50 +278,50 @@ - 6.0.20 + 6.0.21 - + - + - + - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - - + + @@ -331,8 +331,8 @@ - - + + @@ -340,8 +340,8 @@ - - + + @@ -352,58 +352,58 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 @@ -411,71 +411,71 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 @@ -491,195 +491,195 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - - + + - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - - + + - - + + - - + + - 6.0.20 + 6.0.21 - - + + - - + + - - + + - - + + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - - - - + + + + - 6.0.20 + 6.0.21 @@ -688,69 +688,69 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 @@ -769,7 +769,7 @@ - 6.0.20 + 6.0.21 @@ -788,7 +788,7 @@ - 6.0.20 + 6.0.21 @@ -804,46 +804,46 @@ - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - - - + + + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 @@ -853,7 +853,7 @@ - 6.0.20 + 6.0.21 @@ -862,73 +862,73 @@ - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - + - + - + - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 @@ -957,11 +957,11 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 @@ -979,13 +979,13 @@ - 6.0.20 + 6.0.21 - 6.0.20 + 6.0.21 - + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 604ee1e588e2..bb265398da62 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,111 +4,111 @@ This file contains a list of all the packages and their versions which were rele Update this list when preparing for a new patch. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index 364271f41f9d..087f57c1fc1c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,7 +9,7 @@ 6 0 22 - false + true diff --git a/global.json b/global.json index b96453f5621d..90b85c957751 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.120" + "version": "6.0.121" }, "tools": { - "dotnet": "6.0.120", + "dotnet": "6.0.121", "runtimes": { "dotnet/x64": [ "2.1.30", From bb343895e35fda23d654b8e08f767a864a7eb717 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 8 Aug 2023 22:15:59 +0000 Subject: [PATCH 039/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index 87d8756d060a..9ff4c44b8aa2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 99c46abbcc93..78ff60f36111 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - c62df6b705f70fd03d8ec8feba5ffddd93f35134 + d5765348498c7e13cd8261bdab31b5d00636822b https://github.com/dotnet/runtime From 42af1fe8be1869b034feeec5aaefc0efb561564f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 9 Aug 2023 16:54:49 +0000 Subject: [PATCH 040/128] Update dependencies from https://github.com/dotnet/arcade build 20230808.5 (#49954) [release/6.0] Update dependencies from dotnet/arcade --- NuGet.config | 4 ---- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/NuGet.config b/NuGet.config index 65bb92f0d5be..1e2458c409ad 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,8 @@ - - @@ -25,10 +23,8 @@ - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8cf765e85742..daa673a9468b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -280,22 +280,22 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 - + https://github.com/dotnet/arcade - cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 + 98fd22588fbb0f407faa6a74cb1aa79031306151 - + https://github.com/dotnet/arcade - cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 + 98fd22588fbb0f407faa6a74cb1aa79031306151 - + https://github.com/dotnet/arcade - cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 + 98fd22588fbb0f407faa6a74cb1aa79031306151 - + https://github.com/dotnet/arcade - cd79d2e8f7844d0a9aca607d4d5b9b6ab78e2f34 + 98fd22588fbb0f407faa6a74cb1aa79031306151 diff --git a/eng/Versions.props b/eng/Versions.props index 087f57c1fc1c..8a33dbf1a7d0 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,8 +131,8 @@ 6.0.21 6.0.21 - 6.0.0-beta.23361.3 - 6.0.0-beta.23361.3 + 6.0.0-beta.23408.5 + 6.0.0-beta.23408.5 - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 5b06ab1e5888..1a70f5338b2d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - a51eda716136f8beccac9c063818aa536939af61 + 8eab88d043e6baba9968ea618b28aa28afcf83b4 diff --git a/eng/Versions.props b/eng/Versions.props index 1dd9ef7d0580..93beffa08a94 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23401.20 + 6.0.22-servicing.23410.5 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23401.20 + 6.0.22-servicing.23410.5 6.0.1 6.0.0 6.0.2 From 4d6037c5c1e83478b32060a60ce97d9bd77a7054 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Sat, 12 Aug 2023 06:19:21 +0000 Subject: [PATCH 042/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 0d7443d4fb61..f003b00c28eb 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1a70f5338b2d..4ced0b6af68b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8eab88d043e6baba9968ea618b28aa28afcf83b4 + 8164fed1684d41a4a5bd32379fe05e632a530a16 diff --git a/eng/Versions.props b/eng/Versions.props index 93beffa08a94..a5718db283c1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23410.5 + 6.0.22-servicing.23411.16 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23410.5 + 6.0.22-servicing.23411.16 6.0.1 6.0.0 6.0.2 From bb6c4d1d98a2a03a33f15b27a6e6872b7e0da93f Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Mon, 14 Aug 2023 12:15:20 -0700 Subject: [PATCH 043/128] Don't send telemetry during build. This might help to fix a periodic crash. VINYL-15000 --- pack.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pack.sh b/pack.sh index 05b2e50dd6ca..0d561614c311 100755 --- a/pack.sh +++ b/pack.sh @@ -2,6 +2,8 @@ set -eo pipefail +export DOTNET_CLI_TELEMETRY_OPTOUT="true" + configuration=Release #arch=x64,arm,arm64 From 9c9233d0683fb061a75c9045153e8c6d3ec82027 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Mon, 14 Aug 2023 13:18:03 -0700 Subject: [PATCH 044/128] Remove MVC packages from build list. refs VINYL-15008 --- pack-list.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/pack-list.txt b/pack-list.txt index 2952febddd0c..e7f058cd3128 100644 --- a/pack-list.txt +++ b/pack-list.txt @@ -49,7 +49,4 @@ Microsoft.AspNetCore.SignalR.Common.csproj Microsoft.AspNetCore.SignalR.Core.csproj Microsoft.AspNetCore.SignalR.csproj Microsoft.AspNetCore.Websockets.csproj -Microsoft.AspNetCore.Mvc.ApiExplorer.csproj -Microsoft.AspNetCore.Mvc.Abstractions.csproj -Microsoft.AspNetCore.Mvc.Core.csproj Microsoft.AspNetCore.ResponseCaching.Abstractions.csproj \ No newline at end of file From d64564a1514b5250cac0337fb0759c92cdaa23e6 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 15 Aug 2023 10:21:25 +0000 Subject: [PATCH 045/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index f003b00c28eb..9c526de6e200 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 4ced0b6af68b..7c0d3bbc5e68 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 8164fed1684d41a4a5bd32379fe05e632a530a16 + 0a9fee4daf8b2cf93643927a4d598a933fd04851 diff --git a/eng/Versions.props b/eng/Versions.props index a5718db283c1..375f0f1cddda 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23411.16 + 6.0.22-servicing.23414.22 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23411.16 + 6.0.22-servicing.23414.22 6.0.1 6.0.0 6.0.2 From 2313cbb5c260e55f2236b46609014a697212c1c4 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 15 Aug 2023 19:36:39 +0000 Subject: [PATCH 046/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20230815.3 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 From Version 6.0.22-servicing.23414.22 -> To Version 6.0.22-servicing.23415.3 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 9c526de6e200..3cf86380cd58 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7c0d3bbc5e68..cac926eb038d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 0a9fee4daf8b2cf93643927a4d598a933fd04851 + 683c57982ac41cf4beead6fef7f03e86a111dd3c diff --git a/eng/Versions.props b/eng/Versions.props index 375f0f1cddda..54b030f3b927 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23414.22 + 6.0.22-servicing.23415.3 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23414.22 + 6.0.22-servicing.23415.3 6.0.1 6.0.0 6.0.2 From 973557760847bcb6309ce3f79ce503f38a04cdff Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Tue, 15 Aug 2023 22:17:58 +0000 Subject: [PATCH 047/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-efcore build 20230809.7 dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 6.0.22 -> To Version 6.0.22 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index 3cf86380cd58..4a5b5ed0dc7c 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cac926eb038d..434ad4ffe8de 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - d5765348498c7e13cd8261bdab31b5d00636822b + 687fc8f9a538592b2b1494f6353293aac5da74a5 https://github.com/dotnet/runtime From f9a977fa26e4ba036bc74a60797b1de3a6e3ed07 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 16 Aug 2023 02:41:19 +0000 Subject: [PATCH 048/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 4a5b5ed0dc7c..bb141a01de8f 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 434ad4ffe8de..8908adae4e81 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 683c57982ac41cf4beead6fef7f03e86a111dd3c + ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf diff --git a/eng/Versions.props b/eng/Versions.props index 54b030f3b927..4d9d04a07475 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23415.3 + 6.0.22-servicing.23415.11 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23415.3 + 6.0.22-servicing.23415.11 6.0.1 6.0.0 6.0.2 From cec8e699eac837c5cc692569da537ca17dc85f14 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Fri, 25 Aug 2023 05:25:30 +0000 Subject: [PATCH 049/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20230824.25 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 From Version 6.0.22-servicing.23415.11 -> To Version 6.0.22-servicing.23424.25 --- NuGet.config | 6 ++++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index bb141a01de8f..9fede3245833 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,11 @@ - + + @@ -25,10 +26,11 @@ + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8908adae4e81..66cdb6dd76f1 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - ad40cc35b59e63e9e5dae830d8cd10ddcd41eddf + 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd diff --git a/eng/Versions.props b/eng/Versions.props index 4d9d04a07475..04c46827f4d4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.22 6.0.22 6.0.22 - 6.0.22-servicing.23415.11 + 6.0.22-servicing.23424.25 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23415.11 + 6.0.22-servicing.23424.25 6.0.1 6.0.0 6.0.2 From 9329a3a89fe5352914c5665721d7d82111217aa3 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Wed, 30 Aug 2023 09:12:55 -0700 Subject: [PATCH 050/128] Add razor to list of packages being generated. refs VINYL-15123 --- pack-list.txt | 3 +++ pack.sh.txt | 5 +++++ .../src/Microsoft.AspNetCore.Html.Abstractions.csproj | 2 +- .../src/Microsoft.AspNetCore.Razor.Runtime.csproj | 2 +- src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj | 2 +- 5 files changed, 11 insertions(+), 3 deletions(-) diff --git a/pack-list.txt b/pack-list.txt index e7f058cd3128..2c2fe42bef72 100644 --- a/pack-list.txt +++ b/pack-list.txt @@ -11,6 +11,7 @@ Microsoft.AspNetCore.HostFiltering.csproj Microsoft.AspNetCore.Hosting.Abstractions.csproj Microsoft.AspNetCore.Hosting.Server.Abstractions.csproj Microsoft.AspNetCore.Hosting.csproj +Microsoft.AspNetCore.Html.Abstractions.csproj Microsoft.AspNetCore.Http.Abstractions.csproj Microsoft.AspNetCore.Http.Extensions.csproj Microsoft.AspNetCore.Http.Features.csproj @@ -20,6 +21,8 @@ Microsoft.AspNetCore.HttpOverrides.csproj Microsoft.AspNetCore.Localization.csproj Microsoft.AspNetCore.Owin.csproj Microsoft.AspNetCore.Metadata.csproj +Microsoft.AspNetCore.Razor.csproj +Microsoft.AspNetCore.Razor.Runtime.csproj Microsoft.AspNetCore.ResponseCompression.csproj Microsoft.AspNetCore.Rewrite.csproj Microsoft.AspNetCore.Routing.Abstractions.csproj diff --git a/pack.sh.txt b/pack.sh.txt index 80ca2329acd6..014ae85a6294 100644 --- a/pack.sh.txt +++ b/pack.sh.txt @@ -62,3 +62,8 @@ dotnet pack **/Microsoft.Extensions.FileProviders.Embedded.csproj dotnet pack **/Microsoft.Extensions.ObjectPool.csproj dotnet pack **/Microsoft.Extensions.WebEncoders.csproj dotnet pack **/Microsoft.Net.Http.Headers.csproj + +# razor +dotnet pack **/Microsoft.AspNetCore.Html.Abstractions.csproj +dotnet pack **/Microsoft.AspNetCore.Razor.csproj +dotnet pack **/Microsoft.AspNetCore.Razor.Runtime.csproj diff --git a/src/Html.Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj b/src/Html.Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj index 9f3710febf4c..c93a8a505a0f 100644 --- a/src/Html.Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj +++ b/src/Html.Abstractions/src/Microsoft.AspNetCore.Html.Abstractions.csproj @@ -10,7 +10,7 @@ Microsoft.AspNetCore.Html.IHtmlContent true true aspnetcore - false + true enable diff --git a/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj b/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj index 8b9cdb9c3ac8..c5af008f18af 100644 --- a/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj +++ b/src/Razor/Razor.Runtime/src/Microsoft.AspNetCore.Razor.Runtime.csproj @@ -6,7 +6,7 @@ true true $(PackageTags);taghelper;taghelpers - false + true diff --git a/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj b/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj index 482bcbeeaef8..edc1bb24f374 100644 --- a/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj +++ b/src/Razor/Razor/src/Microsoft.AspNetCore.Razor.csproj @@ -13,7 +13,7 @@ Microsoft.AspNetCore.Razor.TagHelpers.ITagHelper true $(PackageTags);taghelper;taghelpers $(NoWarn);CS1591 - false + true true From d263f99f4409afe3dc487d136e332aa474102db7 Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Thu, 31 Aug 2023 13:17:44 -0700 Subject: [PATCH 051/128] Update branding to 6.0.23 (#50461) --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 8a33dbf1a7d0..c08c43481bca 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,8 +8,8 @@ 6 0 - 22 - true + 23 + false From ba041f0169f2af7a24ae24e96404fdc8466cf60d Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 31 Aug 2023 22:50:05 +0000 Subject: [PATCH 052/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 10 ++++++---- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/NuGet.config b/NuGet.config index 9fede3245833..155a4143b5a1 100644 --- a/NuGet.config +++ b/NuGet.config @@ -5,10 +5,11 @@ + + - - + @@ -26,10 +27,11 @@ - - + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 66cdb6dd76f1..a82242af5eed 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 687fc8f9a538592b2b1494f6353293aac5da74a5 + a0b8ded285e2233a70b77c9a74b0ad32e1340739 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index aab6fc8d22e9..bbab51a7e2bf 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 6.0.0-beta.23408.5 6.0.0-beta.23408.5 From 4423a46856873cf9baa5fe95d9c6baa1a3fb7aca Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Fri, 1 Sep 2023 04:49:22 +0000 Subject: [PATCH 053/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 8 ++------ eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/NuGet.config b/NuGet.config index 155a4143b5a1..8c2ffd2b1364 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,9 +4,7 @@ - - - + @@ -30,9 +28,7 @@ - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a82242af5eed..0fba7d464833 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 4bb6dc195c0a3bc4c7e24ff54a8925b98db4fecd + 211b7ecbebe2576cbbbc205a3658361441018b61 diff --git a/eng/Versions.props b/eng/Versions.props index bbab51a7e2bf..4a6672b69a0a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22 - 6.0.22-servicing.23424.25 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23-servicing.23431.21 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.22-servicing.23424.25 + 6.0.23-servicing.23431.21 6.0.1 6.0.0 6.0.2 From 8ec91862893d2b5422c399582d99961bee252335 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Sep 2023 09:12:22 -0700 Subject: [PATCH 054/128] [release/6.0] (deps): Bump src/submodules/googletest (#50475) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `6f6ab42` to `8a6feab`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/6f6ab4212aa02cfe02e480711246da4fc17b0761...8a6feabf04bec8fb125e0df0ad1195c42350725f) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/googletest b/src/submodules/googletest index 6f6ab4212aa0..8a6feabf04be 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit 6f6ab4212aa02cfe02e480711246da4fc17b0761 +Subproject commit 8a6feabf04bec8fb125e0df0ad1195c42350725f From bc60047c33de2e6d534151b8c41be077f53417ab Mon Sep 17 00:00:00 2001 From: Nolan Glore Date: Fri, 1 Sep 2023 09:27:14 -0700 Subject: [PATCH 055/128] Fixup pRequestInfo after GCs (#50447) --- src/Shared/HttpSys/RequestProcessing/NativeRequestContext.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Shared/HttpSys/RequestProcessing/NativeRequestContext.cs b/src/Shared/HttpSys/RequestProcessing/NativeRequestContext.cs index 51e734bf504a..c4475d5eb5a5 100644 --- a/src/Shared/HttpSys/RequestProcessing/NativeRequestContext.cs +++ b/src/Shared/HttpSys/RequestProcessing/NativeRequestContext.cs @@ -553,9 +553,12 @@ private IReadOnlyDictionary> GetRequestInfo(IntPtr bas var info = new Dictionary>(count); + long fixup = (byte*)nativeRequest - (byte*)baseAddress; + var pRequestInfo = (HttpApiTypes.HTTP_REQUEST_INFO*)((byte*)nativeRequest->pRequestInfo + fixup); + for (var i = 0; i < count; i++) { - var requestInfo = nativeRequest->pRequestInfo[i]; + var requestInfo = pRequestInfo[i]; var offset = (long)requestInfo.pInfo - (long)baseAddress; info.Add( (int)requestInfo.InfoType, From 529ed6b7ea2f4a27e5fef3044868d5b359a3e953 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Wed, 6 Sep 2023 10:40:25 -0700 Subject: [PATCH 056/128] Update jquery-validation to v1.19.5 (#50484) --- .../Pages/V4/_ValidationScriptsPartial.cshtml | 4 +- .../Pages/V5/_ValidationScriptsPartial.cshtml | 4 +- src/Identity/UI/src/THIRD-PARTY-NOTICES.txt | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- src/ProjectTemplates/THIRD-PARTY-NOTICES | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../samples/ClaimsTransformation/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- src/Security/samples/Cookies/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../Cookies/wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../samples/PathSchemeSelection/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- 65 files changed, 11695 insertions(+), 4546 deletions(-) diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml b/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml index 74ca36266548..a67a209cbe94 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml @@ -3,11 +3,11 @@ - - + diff --git a/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml index 6cd4eed86820..da4aebe98a86 100644 --- a/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml +++ b/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml @@ -1,2 +1,2 @@ - + diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js index e129bc0f74b9..c6a7229185ab 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js @@ -1,9 +1,9 @@ /*! - * jQuery Validation Plugin v1.17.0 + * jQuery Validation Plugin v1.19.5 * * https://jqueryvalidation.org/ * - * Copyright (c) 2017 Jörn Zaefferer + * Copyright (c) 2022 Jörn Zaefferer * Released under the MIT license */ (function( factory ) { @@ -43,6 +43,38 @@ }() ); +/** + * This is used in the United States to process payments, deposits, + * or transfers using the Automated Clearing House (ACH) or Fedwire + * systems. A very common use case would be to validate a form for + * an ACH bill payment. + */ +$.validator.addMethod( "abaRoutingNumber", function( value ) { + var checksum = 0; + var tokens = value.split( "" ); + var length = tokens.length; + + // Length Check + if ( length !== 9 ) { + return false; + } + + // Calc the checksum + // https://en.wikipedia.org/wiki/ABA_routing_transit_number + for ( var i = 0; i < length; i += 3 ) { + checksum += parseInt( tokens[ i ], 10 ) * 3 + + parseInt( tokens[ i + 1 ], 10 ) * 7 + + parseInt( tokens[ i + 2 ], 10 ); + } + + // If not zero and divisible by 10 then valid + if ( checksum !== 0 && checksum % 10 === 0 ) { + return true; + } + + return false; +}, "Please enter a valid routing number." ); + // Accept a value from a file input based on a required mimetype $.validator.addMethod( "accept", function( value, element, param ) { @@ -87,7 +119,7 @@ $.validator.addMethod( "accept", function( value, element, param ) { $.validator.addMethod( "alphanumeric", function( value, element ) { return this.optional( element ) || /^\w+$/i.test( value ); -}, "Letters, numbers, and underscores only please" ); +}, "Letters, numbers, and underscores only please." ); /* * Dutch bank account numbers (not 'giro' numbers) have 9 digits @@ -114,13 +146,13 @@ $.validator.addMethod( "bankaccountNL", function( value, element ) { sum = sum + factor * digit; } return sum % 11 === 0; -}, "Please specify a valid bank account number" ); +}, "Please specify a valid bank account number." ); $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) { return this.optional( element ) || ( $.validator.methods.bankaccountNL.call( this, value, element ) ) || ( $.validator.methods.giroaccountNL.call( this, value, element ) ); -}, "Please specify a valid bank or giro account number" ); +}, "Please specify a valid bank or giro account number." ); /** * BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity. @@ -139,7 +171,7 @@ $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) { */ $.validator.addMethod( "bic", function( value, element ) { return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() ); -}, "Please specify a valid BIC code" ); +}, "Please specify a valid BIC code." ); /* * Código de identificación fiscal ( CIF ) is the tax identification code for Spanish legal entities @@ -256,11 +288,141 @@ $.validator.addMethod( "cifES", function( value, element ) { }, "Please specify a valid CIF number." ); +/* + * Brazillian CNH number (Carteira Nacional de Habilitacao) is the License Driver number. + * CNH numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation. + */ +$.validator.addMethod( "cnhBR", function( value ) { + + // Removing special characters from value + value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); + + // Checking value to have 11 digits only + if ( value.length !== 11 ) { + return false; + } + + var sum = 0, dsc = 0, firstChar, + firstCN, secondCN, i, j, v; + + firstChar = value.charAt( 0 ); + + if ( new Array( 12 ).join( firstChar ) === value ) { + return false; + } + + // Step 1 - using first Check Number: + for ( i = 0, j = 9, v = 0; i < 9; ++i, --j ) { + sum += +( value.charAt( i ) * j ); + } + + firstCN = sum % 11; + if ( firstCN >= 10 ) { + firstCN = 0; + dsc = 2; + } + + sum = 0; + for ( i = 0, j = 1, v = 0; i < 9; ++i, ++j ) { + sum += +( value.charAt( i ) * j ); + } + + secondCN = sum % 11; + if ( secondCN >= 10 ) { + secondCN = 0; + } else { + secondCN = secondCN - dsc; + } + + return ( String( firstCN ).concat( secondCN ) === value.substr( -2 ) ); + +}, "Please specify a valid CNH number." ); + +/* + * Brazillian value number (Cadastrado de Pessoas Juridica). + * value numbers have 14 digits in total: 12 numbers followed by 2 check numbers that are being used for validation. + */ +$.validator.addMethod( "cnpjBR", function( value, element ) { + "use strict"; + + if ( this.optional( element ) ) { + return true; + } + + // Removing no number + value = value.replace( /[^\d]+/g, "" ); + + // Checking value to have 14 digits only + if ( value.length !== 14 ) { + return false; + } + + // Elimina values invalidos conhecidos + if ( value === "00000000000000" || + value === "11111111111111" || + value === "22222222222222" || + value === "33333333333333" || + value === "44444444444444" || + value === "55555555555555" || + value === "66666666666666" || + value === "77777777777777" || + value === "88888888888888" || + value === "99999999999999" ) { + return false; + } + + // Valida DVs + var tamanho = ( value.length - 2 ); + var numeros = value.substring( 0, tamanho ); + var digitos = value.substring( tamanho ); + var soma = 0; + var pos = tamanho - 7; + + for ( var i = tamanho; i >= 1; i-- ) { + soma += numeros.charAt( tamanho - i ) * pos--; + if ( pos < 2 ) { + pos = 9; + } + } + + var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + + if ( resultado !== parseInt( digitos.charAt( 0 ), 10 ) ) { + return false; + } + + tamanho = tamanho + 1; + numeros = value.substring( 0, tamanho ); + soma = 0; + pos = tamanho - 7; + + for ( var il = tamanho; il >= 1; il-- ) { + soma += numeros.charAt( tamanho - il ) * pos--; + if ( pos < 2 ) { + pos = 9; + } + } + + resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + + if ( resultado !== parseInt( digitos.charAt( 1 ), 10 ) ) { + return false; + } + + return true; + +}, "Please specify a CNPJ value number." ); + /* * Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number. * CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation. */ -$.validator.addMethod( "cpfBR", function( value ) { +$.validator.addMethod( "cpfBR", function( value, element ) { + "use strict"; + + if ( this.optional( element ) ) { + return true; + } // Removing special characters from value value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); @@ -315,7 +477,7 @@ $.validator.addMethod( "cpfBR", function( value ) { } return false; -}, "Please specify a valid CPF number" ); +}, "Please specify a valid CPF number." ); // https://jqueryvalidation.org/creditcard-method/ // based on https://en.wikipedia.org/wiki/Luhn_algorithm @@ -337,7 +499,7 @@ $.validator.addMethod( "creditcard", function( value, element ) { value = value.replace( /\D/g, "" ); // Basing min and max length on - // https://developer.ean.com/general_info/Valid_Credit_Card_Types + // https://dev.ean.com/general-info/valid-card-types/ if ( value.length < 13 || value.length > 19 ) { return false; } @@ -359,7 +521,7 @@ $.validator.addMethod( "creditcard", function( value, element ) { }, "Please enter a valid credit card number." ); /* NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator - * Redistributed under the the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 + * Redistributed under the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 * Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings) */ $.validator.addMethod( "creditcardtypes", function( value, element, param ) { @@ -398,7 +560,7 @@ $.validator.addMethod( "creditcardtypes", function( value, element, param ) { if ( param.all ) { validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080; } - if ( validTypes & 0x0001 && /^(5[12345])/.test( value ) ) { // Mastercard + if ( validTypes & 0x0001 && ( /^(5[12345])/.test( value ) || /^(2[234567])/.test( value ) ) ) { // Mastercard return value.length === 16; } if ( validTypes & 0x0002 && /^(4)/.test( value ) ) { // Visa @@ -468,7 +630,7 @@ $.validator.addMethod( "currency", function( value, element, param ) { regex = new RegExp( regex ); return this.optional( element ) || regex.test( value ); -}, "Please specify a valid currency" ); +}, "Please specify a valid currency." ); $.validator.addMethod( "dateFA", function( value, element ) { return this.optional( element ) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test( value ); @@ -529,7 +691,31 @@ $.validator.addMethod( "extension", function( value, element, param ) { */ $.validator.addMethod( "giroaccountNL", function( value, element ) { return this.optional( element ) || /^[0-9]{1,7}$/.test( value ); -}, "Please specify a valid giro account number" ); +}, "Please specify a valid giro account number." ); + +$.validator.addMethod( "greaterThan", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-greaterThan-blur" ).length ) { + target.addClass( "validate-greaterThan-blur" ).on( "blur.validate-greaterThan", function() { + $( element ).valid(); + } ); + } + + return value > target.val(); +}, "Please enter a greater value." ); + +$.validator.addMethod( "greaterThanEqual", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-greaterThanEqual-blur" ).length ) { + target.addClass( "validate-greaterThanEqual-blur" ).on( "blur.validate-greaterThanEqual", function() { + $( element ).valid(); + } ); + } + + return value >= target.val(); +}, "Please enter a greater value." ); /** * IBAN is the international bank account number. @@ -666,11 +852,11 @@ $.validator.addMethod( "iban", function( value, element ) { cRest = cOperator % 97; } return cRest === 1; -}, "Please specify a valid IBAN" ); +}, "Please specify a valid IBAN." ); $.validator.addMethod( "integer", function( value, element ) { return this.optional( element ) || /^-?\d+$/.test( value ); -}, "A positive or negative non-decimal number please" ); +}, "A positive or negative non-decimal number please." ); $.validator.addMethod( "ipv4", function( value, element ) { return this.optional( element ) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test( value ); @@ -680,17 +866,103 @@ $.validator.addMethod( "ipv6", function( value, element ) { return this.optional( element ) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test( value ); }, "Please enter a valid IP v6 address." ); +$.validator.addMethod( "lessThan", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-lessThan-blur" ).length ) { + target.addClass( "validate-lessThan-blur" ).on( "blur.validate-lessThan", function() { + $( element ).valid(); + } ); + } + + return value < target.val(); +}, "Please enter a lesser value." ); + +$.validator.addMethod( "lessThanEqual", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-lessThanEqual-blur" ).length ) { + target.addClass( "validate-lessThanEqual-blur" ).on( "blur.validate-lessThanEqual", function() { + $( element ).valid(); + } ); + } + + return value <= target.val(); +}, "Please enter a lesser value." ); + $.validator.addMethod( "lettersonly", function( value, element ) { return this.optional( element ) || /^[a-z]+$/i.test( value ); -}, "Letters only please" ); +}, "Letters only please." ); $.validator.addMethod( "letterswithbasicpunc", function( value, element ) { return this.optional( element ) || /^[a-z\-.,()'"\s]+$/i.test( value ); -}, "Letters or punctuation only please" ); +}, "Letters or punctuation only please." ); + +// Limit the number of files in a FileList. +$.validator.addMethod( "maxfiles", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length > param ) { + return false; + } + } + + return true; +}, $.validator.format( "Please select no more than {0} files." ) ); + +// Limit the size of each individual file in a FileList. +$.validator.addMethod( "maxsize", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length ) { + for ( var i = 0; i < element.files.length; i++ ) { + if ( element.files[ i ].size > param ) { + return false; + } + } + } + } + + return true; +}, $.validator.format( "File size must not exceed {0} bytes each." ) ); + +// Limit the size of all files in a FileList. +$.validator.addMethod( "maxsizetotal", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length ) { + var totalSize = 0; + + for ( var i = 0; i < element.files.length; i++ ) { + totalSize += element.files[ i ].size; + if ( totalSize > param ) { + return false; + } + } + } + } + + return true; +}, $.validator.format( "Total size of all files must not exceed {0} bytes." ) ); + $.validator.addMethod( "mobileNL", function( value, element ) { return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); -}, "Please specify a valid mobile number" ); +}, "Please specify a valid mobile number." ); + +$.validator.addMethod( "mobileRU", function( phone_number, element ) { + var ruPhone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); + return this.optional( element ) || ruPhone_number.length > 9 && /^((\+7|7|8)+([0-9]){10})$/.test( ruPhone_number ); +}, "Please specify a valid mobile number." ); /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: @@ -704,7 +976,7 @@ $.validator.addMethod( "mobileUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/ ); -}, "Please specify a valid mobile number" ); +}, "Please specify a valid mobile number." ); $.validator.addMethod( "netmask", function( value, element ) { return this.optional( element ) || /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test( value ); @@ -804,13 +1076,71 @@ $.validator.addMethod( "nipPL", function( value ) { return ( intControlNr === parseInt( value[ 9 ], 10 ) ); }, "Please specify a valid NIP number." ); +/** + * Created for project jquery-validation. + * @Description Brazillian PIS or NIS number (Número de Identificação Social Pis ou Pasep) is the equivalent of a + * Brazilian tax registration number NIS of PIS numbers have 11 digits in total: 10 numbers followed by 1 check numbers + * that are being used for validation. + * @copyright (c) 21/08/2018 13:14, Cleiton da Silva Mendonça + * @author Cleiton da Silva Mendonça + * @link http://gitlab.com/csmendonca Gitlab of Cleiton da Silva Mendonça + * @link http://github.com/csmendonca Github of Cleiton da Silva Mendonça + */ +$.validator.addMethod( "nisBR", function( value ) { + var number; + var cn; + var sum = 0; + var dv; + var count; + var multiplier; + + // Removing special characters from value + value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); + + // Checking value to have 11 digits only + if ( value.length !== 11 ) { + return false; + } + + //Get check number of value + cn = parseInt( value.substring( 10, 11 ), 10 ); + + //Get number with 10 digits of the value + number = parseInt( value.substring( 0, 10 ), 10 ); + + for ( count = 2; count < 12; count++ ) { + multiplier = count; + if ( count === 10 ) { + multiplier = 2; + } + if ( count === 11 ) { + multiplier = 3; + } + sum += ( ( number % 10 ) * multiplier ); + number = parseInt( number / 10, 10 ); + } + dv = ( sum % 11 ); + + if ( dv > 1 ) { + dv = ( 11 - dv ); + } else { + dv = 0; + } + + if ( cn === dv ) { + return true; + } else { + return false; + } +}, "Please specify a valid NIS/PIS number." ); + $.validator.addMethod( "notEqualTo", function( value, element, param ) { return this.optional( element ) || !$.validator.methods.equalTo.call( this, value, element, param ); }, "Please enter a different value, values must not be the same." ); $.validator.addMethod( "nowhitespace", function( value, element ) { return this.optional( element ) || /^\S+$/i.test( value ); -}, "No white space please" ); +}, "No white space please." ); /** * Return true if the field value matches the given format RegExp @@ -842,6 +1172,30 @@ $.validator.addMethod( "phoneNL", function( value, element ) { return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); }, "Please specify a valid phone number." ); +/** + * Polish telephone numbers have 9 digits. + * + * Mobile phone numbers starts with following digits: + * 45, 50, 51, 53, 57, 60, 66, 69, 72, 73, 78, 79, 88. + * + * Fixed-line numbers starts with area codes: + * 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 29, 32, 33, + * 34, 41, 42, 43, 44, 46, 48, 52, 54, 55, 56, 58, 59, 61, + * 62, 63, 65, 67, 68, 71, 74, 75, 76, 77, 81, 82, 83, 84, + * 85, 86, 87, 89, 91, 94, 95. + * + * Ministry of National Defence numbers and VoIP numbers starts with 26 and 39. + * + * Excludes intelligent networks (premium rate, shared cost, free phone numbers). + * + * Poland National Numbering Plan http://www.itu.int/oth/T02020000A8/en + */ +$.validator.addMethod( "phonePL", function( phone_number, element ) { + phone_number = phone_number.replace( /\s+/g, "" ); + var regexp = /^(?:(?:(?:\+|00)?48)|(?:\(\+?48\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\d{7}$/; + return this.optional( element ) || regexp.test( phone_number ); +}, "Please specify a valid phone number." ); + /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ @@ -856,7 +1210,7 @@ $.validator.addMethod( "phonesUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/ ); -}, "Please specify a valid uk phone number" ); +}, "Please specify a valid uk phone number." ); /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: @@ -870,7 +1224,7 @@ $.validator.addMethod( "phoneUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/ ); -}, "Please specify a valid phone number" ); +}, "Please specify a valid phone number." ); /** * Matches US phone number format @@ -891,8 +1245,8 @@ $.validator.addMethod( "phoneUK", function( phone_number, element ) { $.validator.addMethod( "phoneUS", function( phone_number, element ) { phone_number = phone_number.replace( /\s+/g, "" ); return this.optional( element ) || phone_number.length > 9 && - phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/ ); -}, "Please specify a valid phone number" ); + phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]\d{2}-?\d{4}$/ ); +}, "Please specify a valid phone number." ); /* * Valida CEPs do brasileiros: @@ -921,21 +1275,21 @@ $.validator.addMethod( "postalcodeBR", function( cep_value, element ) { */ $.validator.addMethod( "postalCodeCA", function( value, element ) { return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); /* Matches Italian postcode (CAP) */ $.validator.addMethod( "postalcodeIT", function( value, element ) { return this.optional( element ) || /^\d{5}$/.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); $.validator.addMethod( "postalcodeNL", function( value, element ) { return this.optional( element ) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); // Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK) $.validator.addMethod( "postcodeUK", function( value, element ) { return this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test( value ); -}, "Please specify a valid UK postcode" ); +}, "Please specify a valid UK postcode." ); /* * Lets you say "at least X inputs that match selector Y must be filled." @@ -1072,24 +1426,24 @@ $.validator.addMethod( "stateUS", function( value, element, options ) { regex = caseSensitive ? new RegExp( regex ) : new RegExp( regex, "i" ); return this.optional( element ) || regex.test( value ); -}, "Please specify a valid state" ); +}, "Please specify a valid state." ); // TODO check if value starts with <, otherwise don't try stripping anything $.validator.addMethod( "strippedminlength", function( value, element, param ) { return $( value ).text().length >= param; -}, $.validator.format( "Please enter at least {0} characters" ) ); +}, $.validator.format( "Please enter at least {0} characters." ) ); $.validator.addMethod( "time", function( value, element ) { return this.optional( element ) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test( value ); -}, "Please enter a valid time, between 00:00 and 23:59" ); +}, "Please enter a valid time, between 00:00 and 23:59." ); $.validator.addMethod( "time12h", function( value, element ) { return this.optional( element ) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test( value ); -}, "Please enter a valid time in 12-hour am/pm format" ); +}, "Please enter a valid time in 12-hour am/pm format." ); // Same as url, but TLD is optional $.validator.addMethod( "url2", function( value, element ) { - return this.optional( element ) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test( value ); + return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff])|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62}\.)))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); }, $.validator.messages.url ); /** @@ -1149,10 +1503,10 @@ $.validator.addMethod( "vinUS", function( v ) { $.validator.addMethod( "zipcodeUS", function( value, element ) { return this.optional( element ) || /^\d{5}(-\d{4})?$/.test( value ); -}, "The specified US ZIP Code is invalid" ); +}, "The specified US ZIP Code is invalid." ); $.validator.addMethod( "ziprange", function( value, element ) { return this.optional( element ) || /^90[2-5]\d\{2\}-\d{4}$/.test( value ); -}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx" ); +}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx." ); return $; })); \ No newline at end of file diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js index 6767f24f6b12..80f14b58c2e1 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.17.0 - 7/29/2017 +/*! jQuery Validation Plugin - v1.19.5 - 7/1/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2017 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery","./jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(){function b(a){return a.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("accept",function(b,c,d){var e,f,g,h="string"==typeof d?d.replace(/\s/g,""):"image/*",i=this.optional(c);if(i)return i;if("file"===a(c).attr("type")&&(h=h.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g,"\\$&").replace(/,/g,"|").replace(/\/\*/g,"/.*"),c.files&&c.files.length))for(g=new RegExp(".?("+h+")$","i"),e=0;e9?"0":f,g="JABCDEFGHI".substr(f,1).toString(),i.match(/[ABEH]/)?k===f:i.match(/[KPQS]/)?k===g:k===f||k===g},"Please specify a valid CIF number."),a.validator.addMethod("cpfBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(e=1;e<=9;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;e<=10;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},"Please specify a valid CPF number"),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=!!e||c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency"),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number"),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="",q=5;if(l.length9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number"),a.validator.addMethod("netmask",function(a,b){return this.optional(b)||/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a)},"Please enter a valid netmask."),a.validator.addMethod("nieES",function(a,b){"use strict";if(this.optional(b))return!0;var c,d=new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi),e="TRWAGMYFPDXBNJZSQVHLCKET",f=a.substr(a.length-1).toUpperCase();return a=a.toString().toUpperCase(),!(a.length>10||a.length<9||!d.test(a))&&(a=a.replace(/^[X]/,"0").replace(/^[Y]/,"1").replace(/^[Z]/,"2"),c=9===a.length?a.substr(0,8):a.substr(0,9),e.charAt(parseInt(c,10)%23)===f)},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a,b){"use strict";return!!this.optional(b)||(a=a.toUpperCase(),!!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")&&(/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):!!/^[KLM]{1}/.test(a)&&a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,1)%23)))},"Please specify a valid NIF number."),a.validator.addMethod("nipPL",function(a){"use strict";if(a=a.replace(/[^0-9]/g,""),10!==a.length)return!1;for(var b=[6,5,7,2,3,4,5,6,7],c=0,d=0;d<9;d++)c+=b[d]*a[d];var e=c%11,f=10===e?0:e;return f===parseInt(a[9],10)},"Please specify a valid NIP number."),a.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please"),a.validator.addMethod("pattern",function(a,b,c){return!!this.optional(b)||("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number"),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number"),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/)},"Please specify a valid phone number"),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode"),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=!e&&"undefined"!=typeof c.caseSensitive&&c.caseSensitive,g=!e&&"undefined"!=typeof c.includeTerritories&&c.includeTerritories,h=!e&&"undefined"!=typeof c.includeMilitary&&c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state"),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59"),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format"),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;b<17;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("abaRoutingNumber",function(a){var b=0,c=a.split(""),d=c.length;if(9!==d)return!1;for(var e=0;e9?"0":f,g="JABCDEFGHI".substr(f,1).toString(),i.match(/[ABEH]/)?k===f:i.match(/[KPQS]/)?k===g:k===f||k===g},"Please specify a valid CIF number."),a.validator.addMethod("cnhBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f,g,h=0,i=0;if(b=a.charAt(0),new Array(12).join(b)===a)return!1;for(e=0,f=9,g=0;e<9;++e,--f)h+=+(a.charAt(e)*f);for(c=h%11,c>=10&&(c=0,i=2),h=0,e=0,f=1,g=0;e<9;++e,++f)h+=+(a.charAt(e)*f);return d=h%11,d>=10?d=0:d-=i,String(c).concat(d)===a.substr(-2)},"Please specify a valid CNH number."),a.validator.addMethod("cnpjBR",function(a,b){"use strict";if(this.optional(b))return!0;if(a=a.replace(/[^\d]+/g,""),14!==a.length)return!1;if("00000000000000"===a||"11111111111111"===a||"22222222222222"===a||"33333333333333"===a||"44444444444444"===a||"55555555555555"===a||"66666666666666"===a||"77777777777777"===a||"88888888888888"===a||"99999999999999"===a)return!1;for(var c=a.length-2,d=a.substring(0,c),e=a.substring(c),f=0,g=c-7,h=c;h>=1;h--)f+=d.charAt(c-h)*g--,g<2&&(g=9);var i=f%11<2?0:11-f%11;if(i!==parseInt(e.charAt(0),10))return!1;c+=1,d=a.substring(0,c),f=0,g=c-7;for(var j=c;j>=1;j--)f+=d.charAt(c-j)*g--,g<2&&(g=9);return i=f%11<2?0:11-f%11,i===parseInt(e.charAt(1),10)},"Please specify a CNPJ value number."),a.validator.addMethod("cpfBR",function(a,b){"use strict";if(this.optional(b))return!0;if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var c,d,e,f,g=0;if(c=parseInt(a.substring(9,10),10),d=parseInt(a.substring(10,11),10),e=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(f=1;f<=9;f++)g+=parseInt(a.substring(f-1,f),10)*(11-f);if(e(g,c)){for(g=0,f=1;f<=10;f++)g+=parseInt(a.substring(f-1,f),10)*(12-f);return e(g,d)}return!1},"Please specify a valid CPF number."),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&(/^(5[12345])/.test(a)||/^(2[234567])/.test(a))?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=!!e||c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency."),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number."),a.validator.addMethod("greaterThan",function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-greaterThan-blur").length&&e.addClass("validate-greaterThan-blur").on("blur.validate-greaterThan",function(){a(c).valid()}),b>e.val()},"Please enter a greater value."),a.validator.addMethod("greaterThanEqual",function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-greaterThanEqual-blur").length&&e.addClass("validate-greaterThanEqual-blur").on("blur.validate-greaterThanEqual",function(){a(c).valid()}),b>=e.val()},"Please enter a greater value."),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="",q=5;if(l.lengthd)},a.validator.format("Please select no more than {0} files.")),a.validator.addMethod("maxsize",function(b,c,d){if(this.optional(c))return!0;if("file"===a(c).attr("type")&&c.files&&c.files.length)for(var e=0;ed)return!1;return!0},a.validator.format("File size must not exceed {0} bytes each.")),a.validator.addMethod("maxsizetotal",function(b,c,d){if(this.optional(c))return!0;if("file"===a(c).attr("type")&&c.files&&c.files.length)for(var e=0,f=0;fd)return!1;return!0},a.validator.format("Total size of all files must not exceed {0} bytes.")),a.validator.addMethod("mobileNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid mobile number."),a.validator.addMethod("mobileRU",function(a,b){var c=a.replace(/\(|\)|\s+|-/g,"");return this.optional(b)||c.length>9&&/^((\+7|7|8)+([0-9]){10})$/.test(c)},"Please specify a valid mobile number."),a.validator.addMethod("mobileUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number."),a.validator.addMethod("netmask",function(a,b){return this.optional(b)||/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a)},"Please enter a valid netmask."),a.validator.addMethod("nieES",function(a,b){"use strict";if(this.optional(b))return!0;var c,d=new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi),e="TRWAGMYFPDXBNJZSQVHLCKET",f=a.substr(a.length-1).toUpperCase();return a=a.toString().toUpperCase(),!(a.length>10||a.length<9||!d.test(a))&&(a=a.replace(/^[X]/,"0").replace(/^[Y]/,"1").replace(/^[Z]/,"2"),c=9===a.length?a.substr(0,8):a.substr(0,9),e.charAt(parseInt(c,10)%23)===f)},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a,b){"use strict";return!!this.optional(b)||(a=a.toUpperCase(),!!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")&&(/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):!!/^[KLM]{1}/.test(a)&&a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,1)%23)))},"Please specify a valid NIF number."),a.validator.addMethod("nipPL",function(a){"use strict";if(a=a.replace(/[^0-9]/g,""),10!==a.length)return!1;for(var b=[6,5,7,2,3,4,5,6,7],c=0,d=0;d<9;d++)c+=b[d]*a[d];var e=c%11,f=10===e?0:e;return f===parseInt(a[9],10)},"Please specify a valid NIP number."),a.validator.addMethod("nisBR",function(a){var b,c,d,e,f,g=0;if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;for(c=parseInt(a.substring(10,11),10),b=parseInt(a.substring(0,10),10),e=2;e<12;e++)f=e,10===e&&(f=2),11===e&&(f=3),g+=b%10*f,b=parseInt(b/10,10);return d=g%11,d=d>1?11-d:0,c===d},"Please specify a valid NIS/PIS number."),a.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please."),a.validator.addMethod("pattern",function(a,b,c){return!!this.optional(b)||("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonePL",function(a,b){a=a.replace(/\s+/g,"");var c=/^(?:(?:(?:\+|00)?48)|(?:\(\+?48\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\d{7}$/;return this.optional(b)||c.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number."),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number."),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]\d{2}-?\d{4}$/)},"Please specify a valid phone number."),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode."),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=!e&&"undefined"!=typeof c.caseSensitive&&c.caseSensitive,g=!e&&"undefined"!=typeof c.includeTerritories&&c.includeTerritories,h=!e&&"undefined"!=typeof c.includeMilitary&&c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state."),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters.")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59."),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format."),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff])|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62}\.)))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;b<17;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c diff --git a/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj b/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj index 38edc14ae120..bffb452e17b5 100644 --- a/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj +++ b/src/Components/Authorization/src/Microsoft.AspNetCore.Components.Authorization.csproj @@ -7,6 +7,7 @@ true true enable + true diff --git a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj index f68c4e4bfcf1..54bed69d77fe 100644 --- a/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj +++ b/src/Components/Components/src/Microsoft.AspNetCore.Components.csproj @@ -8,6 +8,7 @@ enable true true + true diff --git a/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj b/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj index 7ac8a9203e0f..7e9bbc851bd4 100644 --- a/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj +++ b/src/Components/Forms/src/Microsoft.AspNetCore.Components.Forms.csproj @@ -7,6 +7,7 @@ true enable true + true diff --git a/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj b/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj index 985a9daef0a5..9facc80c499f 100644 --- a/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj +++ b/src/Components/Web/src/Microsoft.AspNetCore.Components.Web.csproj @@ -8,6 +8,7 @@ Microsoft.AspNetCore.Components enable true + true diff --git a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj index f7f438a061d6..92df0743d7c6 100644 --- a/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj +++ b/src/DataProtection/DataProtection/src/Microsoft.AspNetCore.DataProtection.csproj @@ -11,6 +11,7 @@ true annotations enable + true diff --git a/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj b/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj index 35624976d7ad..c03ac331e06a 100644 --- a/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj +++ b/src/DataProtection/Extensions/src/Microsoft.AspNetCore.DataProtection.Extensions.csproj @@ -8,6 +8,7 @@ true aspnetcore;dataprotection enable + true diff --git a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj index 654b8bcb6014..a5006239b849 100644 --- a/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj +++ b/src/JSInterop/Microsoft.JSInterop/src/Microsoft.JSInterop.csproj @@ -9,6 +9,7 @@ enable true $(DefineConstants);JS_INTEROP + true diff --git a/src/Localization/Abstractions/src/Microsoft.Extensions.Localization.Abstractions.csproj b/src/Localization/Abstractions/src/Microsoft.Extensions.Localization.Abstractions.csproj index ac1da8c6f66b..1b6868636727 100644 --- a/src/Localization/Abstractions/src/Microsoft.Extensions.Localization.Abstractions.csproj +++ b/src/Localization/Abstractions/src/Microsoft.Extensions.Localization.Abstractions.csproj @@ -12,6 +12,7 @@ Microsoft.Extensions.Localization.IStringLocalizer<T> localization true enable + true diff --git a/src/Localization/Localization/src/Microsoft.Extensions.Localization.csproj b/src/Localization/Localization/src/Microsoft.Extensions.Localization.csproj index 8847d3d0fb85..2b65123bb470 100644 --- a/src/Localization/Localization/src/Microsoft.Extensions.Localization.csproj +++ b/src/Localization/Localization/src/Microsoft.Extensions.Localization.csproj @@ -9,6 +9,7 @@ localization true enable + true diff --git a/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj b/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj index ac6088f6b326..11ea54d4d0c4 100644 --- a/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj +++ b/src/Middleware/CORS/src/Microsoft.AspNetCore.Cors.csproj @@ -9,7 +9,7 @@ Microsoft.AspNetCore.Cors.EnableCorsAttribute true true aspnetcore;cors - false + true enable diff --git a/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj b/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj index 74f4d8a64c6d..2c08a8e5cbee 100644 --- a/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj +++ b/src/Mvc/Mvc.Cors/src/Microsoft.AspNetCore.Mvc.Cors.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc;cors - false + true enable diff --git a/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj b/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj index 58e5493b6a3f..d3e4cc8cbec2 100644 --- a/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj +++ b/src/Mvc/Mvc.DataAnnotations/src/Microsoft.AspNetCore.Mvc.DataAnnotations.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc - false + true enable diff --git a/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj b/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj index 363fd6425d3f..7964572714d3 100644 --- a/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj +++ b/src/Mvc/Mvc.Formatters.Json/src/Microsoft.AspNetCore.Mvc.Formatters.Json.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc;json - false + true enable diff --git a/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj b/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj index e9df28758ea6..012f28f56f90 100644 --- a/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj +++ b/src/Mvc/Mvc.Localization/src/Microsoft.AspNetCore.Mvc.Localization.csproj @@ -9,7 +9,7 @@ Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer true true aspnetcore;aspnetcoremvc;localization - false + true diff --git a/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj b/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj index 91ed0eb119b1..db576c187c76 100644 --- a/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj +++ b/src/Mvc/Mvc.Razor/src/Microsoft.AspNetCore.Mvc.Razor.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc;cshtml;razor - false + true enable diff --git a/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj b/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj index e5ab92f02d5a..ba14020dfa16 100644 --- a/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj +++ b/src/Mvc/Mvc.RazorPages/src/Microsoft.AspNetCore.Mvc.RazorPages.csproj @@ -6,7 +6,7 @@ true true aspnetcore;aspnetcoremvc;cshtml;razor - false + true diff --git a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj index 68e0e76b65ef..e0d3be19ee33 100644 --- a/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj +++ b/src/Mvc/Mvc.TagHelpers/src/Microsoft.AspNetCore.Mvc.TagHelpers.csproj @@ -6,7 +6,7 @@ true aspnetcore;aspnetcoremvc;taghelper;taghelpers true - false + true disable diff --git a/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj b/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj index f8674f725c6c..098ab0284f1c 100644 --- a/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj +++ b/src/Mvc/Mvc.ViewFeatures/src/Microsoft.AspNetCore.Mvc.ViewFeatures.csproj @@ -13,7 +13,7 @@ true aspnetcore;aspnetcoremvc true - false + true disable diff --git a/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj b/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj index b25b41c7eb28..23083bd9c608 100644 --- a/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj +++ b/src/Mvc/Mvc/src/Microsoft.AspNetCore.Mvc.csproj @@ -6,7 +6,7 @@ true aspnetcore;aspnetcoremvc true - false + true From 3065067def4a66dece2b6404ebb22cf994840377 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 15:10:25 -0700 Subject: [PATCH 062/128] Before turning on github actions, turn off ms builds. --- .github/workflows/backport.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 99ebe3b43d0c..a71aa0891ce3 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -1,7 +1,10 @@ name: Backport PR to branch on: - issue_comment: - types: [created] + push: + branches: + preston-some-branch-that-doesn't-exist + #issue_comment: + # types: [created] permissions: contents: write From 128947506bd5183c52e2d0bdab82697775b1f979 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 15:10:43 -0700 Subject: [PATCH 063/128] Push to the latest dotnet 6 sdk. --- global.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 0c36880a1a04..dfce220b59a9 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.302" + "version": "6.0.414" }, "tools": { - "dotnet": "6.0.302", + "dotnet": "6.0.414", "runtimes": { "dotnet/x64": [ "2.1.30", From f4a0ac16040871fb153aa91930f6269d04f63eaa Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 15:32:50 -0700 Subject: [PATCH 064/128] Test build script. --- .github/workflows/vinyl-build.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/vinyl-build.yml diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml new file mode 100644 index 000000000000..180a68f06b05 --- /dev/null +++ b/.github/workflows/vinyl-build.yml @@ -0,0 +1,31 @@ +name: Vinyl Maui Build +run-name: ${{ github.actor }} is creating a vinyl maui build. +on: + push: + branches: jbrelease/* + +jobs: + vinyl-build: + runs-on: ubuntu-latest + steps: + - name: Install dotnet + uses: actions/setup-dotnet@v3 + with: + global-json-file: global.json + + - name: Check out repository code + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Build AspNetCore + run: ./pack.sh + + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: vinyl-maui-aspnetcore + path: | + "artifacts/packages/Release/*.nupkg" + + # Upload to github packages. From fe7a73b1d8566e9b46dde4520822db58e5630489 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 15:37:54 -0700 Subject: [PATCH 065/128] Need the code checked out before global.json is available. --- .github/workflows/vinyl-build.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 180a68f06b05..eb5748cbb89c 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -8,16 +8,16 @@ jobs: vinyl-build: runs-on: ubuntu-latest steps: - - name: Install dotnet - uses: actions/setup-dotnet@v3 - with: - global-json-file: global.json - - name: Check out repository code uses: actions/checkout@v4 with: submodules: recursive + - name: Install dotnet + uses: actions/setup-dotnet@v3 + with: + global-json-file: global.json + - name: Build AspNetCore run: ./pack.sh From 356aabe0b076d6feb7bdef33d37d5e5d7833c2fe Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 22:40:16 -0700 Subject: [PATCH 066/128] Change from running build in docker to calling builds directly. This should be faster... if it works. This script runs fine locally but on teamcity it caused issues. Might as well try it with github actions. --- .github/workflows/vinyl-build.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index eb5748cbb89c..250c9fc5ef99 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -18,8 +18,12 @@ jobs: with: global-json-file: global.json + #- name: Build AspNetCore + # run: ./pack.sh + - name: Build AspNetCore - run: ./pack.sh + shell: pwsh + run: ./pack.ps1 - name: Upload artifacts uses: actions/upload-artifact@v3 From dab960188a4024a4fb83b070e8ce85c3e9ac0a43 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Thu, 21 Sep 2023 22:43:49 -0700 Subject: [PATCH 067/128] Another attempt --- .github/workflows/vinyl-build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 250c9fc5ef99..c32d5543dc86 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -20,7 +20,10 @@ jobs: #- name: Build AspNetCore # run: ./pack.sh - + + - name: Restore nuget packages. + run: dotnet restore + - name: Build AspNetCore shell: pwsh run: ./pack.ps1 From acc210378010a0fd1196169a06cec490450acd35 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 09:01:33 -0700 Subject: [PATCH 068/128] An attempt to upload a single nupkg to github packages. --- .github/workflows/vinyl-build.yml | 15 ++++++--------- pack.sh | 3 +++ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index c32d5543dc86..45dc848f06ac 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -18,15 +18,8 @@ jobs: with: global-json-file: global.json - #- name: Build AspNetCore - # run: ./pack.sh - - - name: Restore nuget packages. - run: dotnet restore - - name: Build AspNetCore - shell: pwsh - run: ./pack.ps1 + run: ./pack.sh - name: Upload artifacts uses: actions/upload-artifact@v3 @@ -35,4 +28,8 @@ jobs: path: | "artifacts/packages/Release/*.nupkg" - # Upload to github packages. + - name: Add nuget source + run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" + + - name: Upload to nuget packages + run: dotnet nuget push *.nupkg --source "github" \ No newline at end of file diff --git a/pack.sh b/pack.sh index 0d561614c311..45a4306ebd4e 100755 --- a/pack.sh +++ b/pack.sh @@ -12,4 +12,7 @@ do echo $line fullPath=$(pwd)/$(find . -iname "$line") ./dockerbuild.sh bionic --pack --configuration $configuration --projects $fullPath + + # temporary quick exit while testing. + exit 0 done From c172b70a18654f346323dc2cd4c8c67f67f47493 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 09:04:52 -0700 Subject: [PATCH 069/128] Incorrect path. --- .github/workflows/vinyl-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 45dc848f06ac..f11524a5148c 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -32,4 +32,4 @@ jobs: run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - name: Upload to nuget packages - run: dotnet nuget push *.nupkg --source "github" \ No newline at end of file + run: dotnet nuget push "artifacts/packages/Release/*.nupkg" --source "github" \ No newline at end of file From 9617c2ae0ecf2ff0fcbca3beb285935cb0f06c61 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 09:09:19 -0700 Subject: [PATCH 070/128] Bad path. --- .github/workflows/vinyl-build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index f11524a5148c..309feeac87ff 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -26,10 +26,10 @@ jobs: with: name: vinyl-maui-aspnetcore path: | - "artifacts/packages/Release/*.nupkg" + "artifacts/packages/Release/Shipping/*.nupkg" - name: Add nuget source run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - name: Upload to nuget packages - run: dotnet nuget push "artifacts/packages/Release/*.nupkg" --source "github" \ No newline at end of file + run: dotnet nuget push "artifacts/packages/Release/Shipping/*.nupkg" --source "github" \ No newline at end of file From 95a916994f13f9f52c472f39c728fb34fff75272 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 09:22:25 -0700 Subject: [PATCH 071/128] Another attempt with debugging. --- .github/workflows/vinyl-build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 309feeac87ff..2cc0e13c620c 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -21,15 +21,21 @@ jobs: - name: Build AspNetCore run: ./pack.sh + - name: PWD + run: pwd + + - name: LS + run: ls -al + - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: vinyl-maui-aspnetcore path: | - "artifacts/packages/Release/Shipping/*.nupkg" + artifacts/packages/Release/Shipping/*.nupkg - name: Add nuget source run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - name: Upload to nuget packages - run: dotnet nuget push "artifacts/packages/Release/Shipping/*.nupkg" --source "github" \ No newline at end of file + run: dotnet nuget push artifacts/packages/Release/Shipping/*.nupkg --source "github" \ No newline at end of file From af7cc09603cded952cb281917f67378939b8824d Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 09:53:19 -0700 Subject: [PATCH 072/128] Separate out nuget package push --- .github/workflows/vinyl-build.yml | 8 +------- .github/workflows/vinyl-nuget-push.yml | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/vinyl-nuget-push.yml diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 2cc0e13c620c..323f989ad36e 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -32,10 +32,4 @@ jobs: with: name: vinyl-maui-aspnetcore path: | - artifacts/packages/Release/Shipping/*.nupkg - - - name: Add nuget source - run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - - - name: Upload to nuget packages - run: dotnet nuget push artifacts/packages/Release/Shipping/*.nupkg --source "github" \ No newline at end of file + artifacts/packages/Release/Shipping/*.nupkg \ No newline at end of file diff --git a/.github/workflows/vinyl-nuget-push.yml b/.github/workflows/vinyl-nuget-push.yml new file mode 100644 index 000000000000..4c9c457032bb --- /dev/null +++ b/.github/workflows/vinyl-nuget-push.yml @@ -0,0 +1,23 @@ +name: Vinyl Nuget Push +run-name: ${{ github.actor }} is pushing nuget packages to github. +on: [workflow_dispatch] + +jobs: + vinyl-nuget-push: + runs-on: ubuntu-latest + steps: + - name: Install dotnet and workloads + uses: actions/setup-dotnet@v3 + with: + dotnet-version: '6.x' + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: vinyl-maui-aspnetcore + + - name: Add nuget source + run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" + + - name: Upload github nuget packages (skipping duplicates) + run: dotnet nuget push *.nupkg --source "github" --skip-duplicate \ No newline at end of file From 5a59820ab1dc1d03a54c716f966ebcb038d60ebe Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 10:09:58 -0700 Subject: [PATCH 073/128] Splitting up files doesn't seem to work well. --- .github/workflows/vinyl-build.yml | 8 +++++++- .github/workflows/vinyl-nuget-push.yml | 23 ----------------------- 2 files changed, 7 insertions(+), 24 deletions(-) delete mode 100644 .github/workflows/vinyl-nuget-push.yml diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 323f989ad36e..9db22db55b49 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -32,4 +32,10 @@ jobs: with: name: vinyl-maui-aspnetcore path: | - artifacts/packages/Release/Shipping/*.nupkg \ No newline at end of file + artifacts/packages/Release/Shipping/*.nupkg + + - name: Add nuget source + run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" + + - name: Upload github nuget packages (skipping duplicates) + run: dotnet nuget push *.nupkg --source "github" --skip-duplicate \ No newline at end of file diff --git a/.github/workflows/vinyl-nuget-push.yml b/.github/workflows/vinyl-nuget-push.yml deleted file mode 100644 index 4c9c457032bb..000000000000 --- a/.github/workflows/vinyl-nuget-push.yml +++ /dev/null @@ -1,23 +0,0 @@ -name: Vinyl Nuget Push -run-name: ${{ github.actor }} is pushing nuget packages to github. -on: [workflow_dispatch] - -jobs: - vinyl-nuget-push: - runs-on: ubuntu-latest - steps: - - name: Install dotnet and workloads - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.x' - - - name: Download artifacts - uses: actions/download-artifact@v3 - with: - name: vinyl-maui-aspnetcore - - - name: Add nuget source - run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - - - name: Upload github nuget packages (skipping duplicates) - run: dotnet nuget push *.nupkg --source "github" --skip-duplicate \ No newline at end of file From a85823bf139f69178c4734fe695e95e3e8094126 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 10:12:59 -0700 Subject: [PATCH 074/128] Should be last step to get workflow running. --- .github/workflows/vinyl-build.yml | 2 +- pack.sh | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 9db22db55b49..759ce090be11 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -38,4 +38,4 @@ jobs: run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - name: Upload github nuget packages (skipping duplicates) - run: dotnet nuget push *.nupkg --source "github" --skip-duplicate \ No newline at end of file + run: dotnet nuget push artifacts/packages/Release/Shipping/*.nupkg --source "github" --skip-duplicate \ No newline at end of file diff --git a/pack.sh b/pack.sh index 45a4306ebd4e..0d561614c311 100755 --- a/pack.sh +++ b/pack.sh @@ -12,7 +12,4 @@ do echo $line fullPath=$(pwd)/$(find . -iname "$line") ./dockerbuild.sh bionic --pack --configuration $configuration --projects $fullPath - - # temporary quick exit while testing. - exit 0 done From 544315c568fad5ab8c7cc30442fb5eb2428583f7 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 10:15:11 -0700 Subject: [PATCH 075/128] Get rid of debugging. --- .github/workflows/vinyl-build.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 759ce090be11..06d95554effb 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -21,12 +21,6 @@ jobs: - name: Build AspNetCore run: ./pack.sh - - name: PWD - run: pwd - - - name: LS - run: ls -al - - name: Upload artifacts uses: actions/upload-artifact@v3 with: From 7917f010a3183602a96e46d6c43222ed485541e7 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 11:44:10 -0700 Subject: [PATCH 076/128] Remove automatic uploading of packages to nuget. This can be handled manually as it's not reliable. --- .github/workflows/vinyl-build.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/vinyl-build.yml b/.github/workflows/vinyl-build.yml index 06d95554effb..533e665819bc 100644 --- a/.github/workflows/vinyl-build.yml +++ b/.github/workflows/vinyl-build.yml @@ -28,8 +28,15 @@ jobs: path: | artifacts/packages/Release/Shipping/*.nupkg - - name: Add nuget source - run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" + # Something to do with uploading the nuget packages is failing sporadically. + # I *think* it's because the symbol file is uploaded either before or too quickly after + # the main nuget package. If I run these steps manually after downloading the artifacts, + # I can just keep doing it until all packages get uploaded. So removing this step from + # the github workflow and making it manual for now. It's a pretty big decision to upload + # nuget packages anyhow since they can never be deleted. + + #- name: Add nuget source + # run: dotnet nuget add source --username USERNAME --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text --name github "https://nuget.pkg.github.com/jitterbit/index.json" - - name: Upload github nuget packages (skipping duplicates) - run: dotnet nuget push artifacts/packages/Release/Shipping/*.nupkg --source "github" --skip-duplicate \ No newline at end of file + #- name: Upload github nuget packages (skipping duplicates) + # run: dotnet nuget push artifacts/packages/Release/Shipping/*.nupkg --source "github" --skip-duplicate \ No newline at end of file From 49b03bfc766926a5395805a7f5ba8d6657a0b94b Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Fri, 22 Sep 2023 12:02:18 -0700 Subject: [PATCH 077/128] Missing package. --- pack-list.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/pack-list.txt b/pack-list.txt index 65b35a99f398..d43b5876311f 100644 --- a/pack-list.txt +++ b/pack-list.txt @@ -33,6 +33,7 @@ Microsoft.AspNetCore.Http.Results.csproj Microsoft.AspNetCore.HttpOverrides.csproj Microsoft.AspNetCore.Localization.csproj Microsoft.AspNetCore.Metadata.csproj +Microsoft.AspNetCore.Mvc.Abstractions.csproj Microsoft.AspNetCore.Mvc.ApiExplorer.csproj Microsoft.AspNetCore.Mvc.Core.csproj Microsoft.AspNetCore.Mvc.Cors.csproj From ace21f35a573026130dca6fdac7332bb282134fd Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 27 Sep 2023 23:21:57 +0000 Subject: [PATCH 078/128] Merged PR 33979: [internal/release/frameshift/6.0] Update dependencies from dnceng/internal/dotnet-runtime This pull request updates the following dependencies [marker]: <> (Begin:1c4b8d14-56b4-436a-cadd-08dbbf3cebf2) ## From https://github.com/dotnet/runtime - **Subscription**: 1c4b8d14-56b4-436a-cadd-08dbbf3cebf2 - **Build**: 20230925.15 - **Date Produced**: September 26, 2023 7:07:48 AM UTC - **Commit**: 301ba1ee5d1cfff28a8866924733603f3adf4936 - **Branch**: refs/heads/frameshift/internal/release/6.0 [DependencyUpdate]: <> (Begin) - **Updates**: - **Microsoft.Internal.Runtime.AspNetCore.Transport**: [from 6.0.21-servicing.23363.11 to 6.0.23-servicing.23475.15][1] - **Microsoft.NET.Runtime.MonoAOTCompiler.Task**: [from 6.0.21 to 6.0.23][1] - **Microsoft.NET.Runtime.WebAssembly.Sdk**: [from 6.0.21 to 6.0.23][1] - **Microsoft.NETCore.App.Ref**: [from 6.0.21 to 6.0.23][1] - **Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm**: [from 6.0.21 to 6.0.23][1] - **Microsoft.NETCore.App.Runtime.win-x64**: [from 6.0.21 to 6.0.23][1] - **Microsoft.NETCore.BrowserDebugHost.Transport**: [from 6.0.21-servicing.23363.11 to 6.0.23-servicing.23475.15][1] [1]: https://github.com/dotnet/runtime/compare/e40b3abf1b...301ba1ee5d [DependencyUpdate]: <> (End) [marker]: <> (End:1c4b8d14-56b4-436a-cadd-08dbbf3cebf2) --- NuGet.config | 2 ++ eng/Version.Details.xml | 42 ++++++++++++++++++++--------------------- eng/Versions.props | 14 +++++++------- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/NuGet.config b/NuGet.config index 1e2458c409ad..7c42342bf5ad 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,6 +4,7 @@ + @@ -25,6 +26,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index daa673a9468b..9af5757a4c2a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 - - https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e40b3abf1b41621d4298642a5fd300ebf7cccf6d + + https://github.com/dotnet/runtime + 301ba1ee5d1cfff28a8866924733603f3adf4936 diff --git a/eng/Versions.props b/eng/Versions.props index c08c43481bca..81ae58ddbf63 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21-servicing.23363.11 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23-servicing.23475.15 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.21-servicing.23363.11 + 6.0.23-servicing.23475.15 6.0.1 6.0.0 6.0.2 From b0468b9b0af17e4ad4be36198684741e1462bbcd Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Fri, 22 Sep 2023 18:50:04 -0700 Subject: [PATCH 079/128] Track indicators of excessive stream resets If the server has to send a lot of ENHANCE_YOUR_CALM messages or the output control flow queue is very large, there are probably a larger than expected number of client-initiated stream resets. --- .../src/Internal/Http2/Http2Connection.cs | 106 ++++++++++++++++-- .../Internal/Infrastructure/IKestrelTrace.cs | 4 + .../Internal/Infrastructure/KestrelTrace.cs | 16 +++ .../perf/Microbenchmarks/Mocks/MockTrace.cs | 2 + .../Http2SampleApp/Http2SampleApp.csproj | 2 +- .../shared/test/CompositeKestrelTrace.cs | 12 ++ 6 files changed, 134 insertions(+), 8 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index ac3e9d166d4d..e6adcfc28dc9 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -33,6 +33,42 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade private const PseudoHeaderFields _mandatoryRequestPseudoHeaderFields = PseudoHeaderFields.Method | PseudoHeaderFields.Path | PseudoHeaderFields.Scheme; + private const string EnhanceYourCalmMaximumCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.EnhanceYourCalmCount"; + private const string MaximumFlowControlQueueSizeProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxConnectionFlowControlQueueSize"; + + private static readonly int _enhanceYourCalmMaximumCount = AppContext.GetData(EnhanceYourCalmMaximumCountProperty) is int eycMaxCount + ? eycMaxCount + : 10; + + // Accumulate _enhanceYourCalmCount over the course of EnhanceYourCalmTickWindowCount ticks. + // This should make bursts less likely to trigger disconnects. + private const int EnhanceYourCalmTickWindowCount = 5; + + private static bool IsEnhanceYourCalmEnabled => _enhanceYourCalmMaximumCount > 0; + + private static readonly int? ConfiguredMaximumFlowControlQueueSize = GetConfiguredMaximumFlowControlQueueSize(); + + private static int? GetConfiguredMaximumFlowControlQueueSize() + { + var data = AppContext.GetData(MaximumFlowControlQueueSizeProperty); + + if (data is int count) + { + return count; + } + + if (data is string countStr && int.TryParse(countStr, out var parsed)) + { + return parsed; + } + + return null; + } + + private readonly int _maximumFlowControlQueueSize; + + private bool IsMaximumFlowControlQueueSizeEnabled => _maximumFlowControlQueueSize > 0; + private readonly HttpConnectionContext _context; private readonly Http2FrameWriter _frameWriter; private readonly Pipe _input; @@ -40,7 +76,8 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade private readonly int _minAllocBufferSize; private readonly HPackDecoder _hpackDecoder; private readonly InputFlowControl _inputFlowControl; - private readonly OutputFlowControl _outputFlowControl = new OutputFlowControl(new MultipleAwaitableProvider(), Http2PeerSettings.DefaultInitialWindowSize); + private readonly OutputFlowControl _outputFlowControl; + private readonly AwaitableProvider _outputFlowControlAwaitableProvider; // Keep our own reference so we can track queue size private readonly Http2PeerSettings _serverSettings = new Http2PeerSettings(); private readonly Http2PeerSettings _clientSettings = new Http2PeerSettings(); @@ -59,6 +96,9 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade private int _clientActiveStreamCount; private int _serverActiveStreamCount; + private int _enhanceYourCalmCount; + private int _tickCount; + // The following are the only fields that can be modified outside of the ProcessRequestsAsync loop. private readonly ConcurrentQueue _completedStreams = new ConcurrentQueue(); private readonly StreamCloseAwaitable _streamCompletionAwaitable = new StreamCloseAwaitable(); @@ -88,6 +128,9 @@ public Http2Connection(HttpConnectionContext context) // Capture the ExecutionContext before dispatching HTTP/2 middleware. Will be restored by streams when processing request _context.InitialExecutionContext = ExecutionContext.Capture(); + _outputFlowControlAwaitableProvider = new MultipleAwaitableProvider(); + _outputFlowControl = new OutputFlowControl(_outputFlowControlAwaitableProvider, Http2PeerSettings.DefaultInitialWindowSize); + _frameWriter = new Http2FrameWriter( context.Transport.Output, context.ConnectionContext, @@ -129,6 +172,16 @@ public Http2Connection(HttpConnectionContext context) _serverSettings.MaxHeaderListSize = (uint)httpLimits.MaxRequestHeadersTotalSize; _serverSettings.InitialWindowSize = (uint)http2Limits.InitialStreamWindowSize; + _maximumFlowControlQueueSize = ConfiguredMaximumFlowControlQueueSize is null + ? 4 * http2Limits.MaxStreamsPerConnection + : (int)ConfiguredMaximumFlowControlQueueSize; + + if (_maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection) + { + _maximumFlowControlQueueSize = http2Limits.MaxStreamsPerConnection; + Log.LogTrace($"The configured maximum flow control queue size {ConfiguredMaximumFlowControlQueueSize} is less than the maximum streams per connection {http2Limits.MaxStreamsPerConnection} - increasing to match."); + } + // Start pool off at a smaller size if the max number of streams is less than the InitialStreamPoolSize StreamPool = new PooledStreamStack(Math.Min(InitialStreamPoolSize, http2Limits.MaxStreamsPerConnection)); @@ -352,13 +405,20 @@ public async Task ProcessRequestsAsync(IHttpApplication appl stream.Abort(new IOException(CoreStrings.Http2StreamAborted, connectionError)); } - // Use the server _serverActiveStreamCount to drain all requests on the server side. - // Can't use _clientActiveStreamCount now as we now decrement that count earlier/ - // Can't use _streams.Count as we wait for RST/END_STREAM before removing the stream from the dictionary - while (_serverActiveStreamCount > 0) + // For some reason, this loop doesn't terminate when we're trying to abort. + // Since we're making a narrow fix for a patch, we'll bypass it in such scenarios. + // TODO: This is probably a bug - something in here should probably detect aborted + // connections and short-circuit. + if (!(IsEnhanceYourCalmEnabled || IsMaximumFlowControlQueueSizeEnabled) || error is not Http2ConnectionErrorException) { - await _streamCompletionAwaitable; - UpdateCompletedStreams(); + // Use the server _serverActiveStreamCount to drain all requests on the server side. + // Can't use _clientActiveStreamCount now as we now decrement that count earlier/ + // Can't use _streams.Count as we wait for RST/END_STREAM before removing the stream from the dictionary + while (_serverActiveStreamCount > 0) + { + await _streamCompletionAwaitable; + UpdateCompletedStreams(); + } } while (StreamPool.TryPop(out var pooledStream)) @@ -1053,6 +1113,20 @@ private void StartStream() throw new Http2StreamErrorException(_currentHeadersStream.StreamId, CoreStrings.Http2ErrorMaxStreams, Http2ErrorCode.REFUSED_STREAM); } + if (IsMaximumFlowControlQueueSizeEnabled && _outputFlowControlAwaitableProvider.ActiveCount > _maximumFlowControlQueueSize) + { + Log.Http2FlowControlQueueOperationsExceeded(_context.ConnectionId, _maximumFlowControlQueueSize); + + // Now that we've logged a useful message, we can put vague text in the exception + // messages in case they somehow make it back to the client (not expected) + + // This will close the socket - we want to do that right away + Abort(new ConnectionAbortedException("HTTP/2 connection exceeded the outgoing flow control maximum queue size.")); + + // Throwing an exception as well will help us clean up on our end more quickly by (e.g.) skipping processing of already-buffered input + throw new Http2ConnectionErrorException(CoreStrings.Http2ConnectionFaulted, Http2ErrorCode.INTERNAL_ERROR); + } + // We don't use the _serverActiveRequestCount here as during shutdown, it and the dictionary counts get out of sync. // The streams still exist in the dictionary until the client responds with a RST or END_STREAM. // Also, we care about the dictionary size for too much memory consumption. @@ -1061,6 +1135,20 @@ private void StartStream() // Server is getting hit hard with connection resets. // Tell client to calm down. // TODO consider making when to send ENHANCE_YOUR_CALM configurable? + + if (IsEnhanceYourCalmEnabled && Interlocked.Increment(ref _enhanceYourCalmCount) > EnhanceYourCalmTickWindowCount * _enhanceYourCalmMaximumCount) + { + Log.Http2TooManyEnhanceYourCalms(_context.ConnectionId, _enhanceYourCalmMaximumCount); + + // Now that we've logged a useful message, we can put vague text in the exception + // messages in case they somehow make it back to the client (not expected) + + // This will close the socket - we want to do that right away + Abort(new ConnectionAbortedException(CoreStrings.Http2ConnectionFaulted)); + // Throwing an exception as well will help us clean up on our end more quickly by (e.g.) skipping processing of already-buffered input + throw new Http2ConnectionErrorException(CoreStrings.Http2ConnectionFaulted, Http2ErrorCode.ENHANCE_YOUR_CALM); + } + throw new Http2StreamErrorException(_currentHeadersStream.StreamId, CoreStrings.Http2TellClientToCalmDown, Http2ErrorCode.ENHANCE_YOUR_CALM); } } @@ -1123,6 +1211,10 @@ private void AbortStream(int streamId, IOException error) void IRequestProcessor.Tick(DateTimeOffset now) { Input.CancelPendingRead(); + if (IsEnhanceYourCalmEnabled && ++_tickCount % EnhanceYourCalmTickWindowCount == 0) + { + Interlocked.Exchange(ref _enhanceYourCalmCount, 0); + } } void IHttp2StreamLifetimeHandler.OnStreamCompleted(Http2Stream stream) diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs index 6a75f4657b14..6fb38405572f 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs @@ -78,8 +78,12 @@ internal interface IKestrelTrace : ILogger void Http2FrameSending(string connectionId, Http2Frame frame); + void Http2TooManyEnhanceYourCalms(string connectionId, int count); + void Http2MaxConcurrentStreamsReached(string connectionId); + void Http2FlowControlQueueOperationsExceeded(string connectionId, int count); + void InvalidResponseHeaderRemoved(); void Http3ConnectionError(string connectionId, Http3ConnectionErrorException ex); diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs index 3c3b7bc4af07..364c5ed0f252 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs @@ -395,6 +395,22 @@ public void Http3GoAwayStreamId(string connectionId, long goAwayStreamId) Http3GoAwayStreamId(_http3Logger, connectionId, goAwayStreamId); } + [LoggerMessage(54, LogLevel.Error, @"Connection id ""{ConnectionId}"" aborted since at least ""{Count}"" ENHANCE_YOUR_CALM responses were required per second.", EventName = "Http2TooManyEnhanceYourCalms")] + private static partial void Http2TooManyEnhanceYourCalms(ILogger logger, string connectionId, int count); + + public void Http2TooManyEnhanceYourCalms(string connectionId, int count) + { + Http2TooManyEnhanceYourCalms(_http2Logger, connectionId, count); + } + + [LoggerMessage(55, LogLevel.Error, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of ""{Count}"".", EventName = "Http2FlowControlQueueOperationsExceeded")] + private static partial void Http2FlowControlQueueOperationsExceeded(ILogger logger, string connectionId, int count); + + public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) + { + Http2FlowControlQueueOperationsExceeded(_http3Logger, connectionId, count); + } + public virtual void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) => _generalLogger.Log(logLevel, eventId, state, exception, formatter); diff --git a/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs b/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs index 7a87e2ee4041..ce71ea8255d9 100644 --- a/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs +++ b/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs @@ -59,7 +59,9 @@ public void Http2ConnectionClosing(string connectionId) { } public void Http2ConnectionClosed(string connectionId, int highestOpenedStreamId) { } public void Http2FrameReceived(string connectionId, Http2Frame frame) { } public void Http2FrameSending(string connectionId, Http2Frame frame) { } + public void Http2TooManyEnhanceYourCalms(string connectionId, int count) { } public void Http2MaxConcurrentStreamsReached(string connectionId) { } + public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) { } public void InvalidResponseHeaderRemoved() { } public void Http3ConnectionError(string connectionId, Http3ConnectionErrorException ex) { } public void Http3ConnectionClosing(string connectionId) { } diff --git a/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj b/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj index cc404533ad8f..d0930e69fee0 100644 --- a/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj +++ b/src/Servers/Kestrel/samples/Http2SampleApp/Http2SampleApp.csproj @@ -1,4 +1,4 @@ - + $(DefaultNetCoreTargetFramework) diff --git a/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs b/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs index 523e77a059ac..cede2f59521c 100644 --- a/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs +++ b/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs @@ -234,12 +234,24 @@ public void Http2FrameSending(string connectionId, Http2Frame frame) _trace2.Http2FrameSending(connectionId, frame); } + public void Http2TooManyEnhanceYourCalms(string connectionId, int count) + { + _trace1.Http2TooManyEnhanceYourCalms(connectionId, count); + _trace2.Http2TooManyEnhanceYourCalms(connectionId, count); + } + public void Http2MaxConcurrentStreamsReached(string connectionId) { _trace1.Http2MaxConcurrentStreamsReached(connectionId); _trace2.Http2MaxConcurrentStreamsReached(connectionId); } + public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) + { + _trace1.Http2FlowControlQueueOperationsExceeded(connectionId, count); + _trace2.Http2FlowControlQueueOperationsExceeded(connectionId, count); + } + public void InvalidResponseHeaderRemoved() { _trace1.InvalidResponseHeaderRemoved(); From 2a8a47bc1b6f787e165c57b19a0ff2048d33371a Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 26 Sep 2023 17:58:44 -0700 Subject: [PATCH 080/128] Address PR feedback --- .../src/Internal/Http2/Http2Connection.cs | 23 +++++++++++++++---- .../Internal/Infrastructure/IKestrelTrace.cs | 2 ++ .../Internal/Infrastructure/KestrelTrace.cs | 12 ++++++++-- .../perf/Microbenchmarks/Mocks/MockTrace.cs | 1 + .../shared/test/CompositeKestrelTrace.cs | 6 +++++ 5 files changed, 37 insertions(+), 7 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index e6adcfc28dc9..34069616c6e3 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -36,9 +36,22 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade private const string EnhanceYourCalmMaximumCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.EnhanceYourCalmCount"; private const string MaximumFlowControlQueueSizeProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxConnectionFlowControlQueueSize"; - private static readonly int _enhanceYourCalmMaximumCount = AppContext.GetData(EnhanceYourCalmMaximumCountProperty) is int eycMaxCount - ? eycMaxCount - : 10; + private static readonly int _enhanceYourCalmMaximumCount = GetEnhanceYourCalmMaximumCount(); + + private static int GetEnhanceYourCalmMaximumCount() + { + var data = AppContext.GetData(EnhanceYourCalmMaximumCountProperty); + if (data is int count) + { + return count; + } + if (data is string countStr && int.TryParse(countStr, out var parsed)) + { + return parsed; + } + + return 20; // Empirically derived + } // Accumulate _enhanceYourCalmCount over the course of EnhanceYourCalmTickWindowCount ticks. // This should make bursts less likely to trigger disconnects. @@ -176,10 +189,10 @@ public Http2Connection(HttpConnectionContext context) ? 4 * http2Limits.MaxStreamsPerConnection : (int)ConfiguredMaximumFlowControlQueueSize; - if (_maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection) + if (IsMaximumFlowControlQueueSizeEnabled && _maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection) { + Log.Http2FlowControlQueueMaximumTooLow(context.ConnectionId, http2Limits.MaxStreamsPerConnection, _maximumFlowControlQueueSize); _maximumFlowControlQueueSize = http2Limits.MaxStreamsPerConnection; - Log.LogTrace($"The configured maximum flow control queue size {ConfiguredMaximumFlowControlQueueSize} is less than the maximum streams per connection {http2Limits.MaxStreamsPerConnection} - increasing to match."); } // Start pool off at a smaller size if the max number of streams is less than the InitialStreamPoolSize diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs index 6fb38405572f..28b7b5cd8b05 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/IKestrelTrace.cs @@ -84,6 +84,8 @@ internal interface IKestrelTrace : ILogger void Http2FlowControlQueueOperationsExceeded(string connectionId, int count); + void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual); + void InvalidResponseHeaderRemoved(); void Http3ConnectionError(string connectionId, Http3ConnectionErrorException ex); diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs index 364c5ed0f252..439fb69fbec4 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs @@ -395,7 +395,7 @@ public void Http3GoAwayStreamId(string connectionId, long goAwayStreamId) Http3GoAwayStreamId(_http3Logger, connectionId, goAwayStreamId); } - [LoggerMessage(54, LogLevel.Error, @"Connection id ""{ConnectionId}"" aborted since at least ""{Count}"" ENHANCE_YOUR_CALM responses were required per second.", EventName = "Http2TooManyEnhanceYourCalms")] + [LoggerMessage(54, LogLevel.Debug, @"Connection id ""{ConnectionId}"" aborted since at least ""{Count}"" ENHANCE_YOUR_CALM responses were required per second.", EventName = "Http2TooManyEnhanceYourCalms")] private static partial void Http2TooManyEnhanceYourCalms(ILogger logger, string connectionId, int count); public void Http2TooManyEnhanceYourCalms(string connectionId, int count) @@ -403,7 +403,7 @@ public void Http2TooManyEnhanceYourCalms(string connectionId, int count) Http2TooManyEnhanceYourCalms(_http2Logger, connectionId, count); } - [LoggerMessage(55, LogLevel.Error, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of ""{Count}"".", EventName = "Http2FlowControlQueueOperationsExceeded")] + [LoggerMessage(55, LogLevel.Debug, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of ""{Count}"".", EventName = "Http2FlowControlQueueOperationsExceeded")] private static partial void Http2FlowControlQueueOperationsExceeded(ILogger logger, string connectionId, int count); public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) @@ -411,6 +411,14 @@ public void Http2FlowControlQueueOperationsExceeded(string connectionId, int cou Http2FlowControlQueueOperationsExceeded(_http3Logger, connectionId, count); } + [LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size ""{Actual}"" is less than the maximum streams per connection ""{Expected}"" - increasing to match.", EventName = "Http2FlowControlQueueMaximumTooLow")] + private static partial void Http2FlowControlQueueMaximumTooLow(ILogger logger, string connectionId, int expected, int actual); + + public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual) + { + Http2FlowControlQueueMaximumTooLow(_http3Logger, connectionId, expected, actual); + } + public virtual void Log(LogLevel logLevel, EventId eventId, TState state, Exception? exception, Func formatter) => _generalLogger.Log(logLevel, eventId, state, exception, formatter); diff --git a/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs b/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs index ce71ea8255d9..c9052461b9ed 100644 --- a/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs +++ b/src/Servers/Kestrel/perf/Microbenchmarks/Mocks/MockTrace.cs @@ -62,6 +62,7 @@ public void Http2FrameSending(string connectionId, Http2Frame frame) { } public void Http2TooManyEnhanceYourCalms(string connectionId, int count) { } public void Http2MaxConcurrentStreamsReached(string connectionId) { } public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) { } + public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual) { } public void InvalidResponseHeaderRemoved() { } public void Http3ConnectionError(string connectionId, Http3ConnectionErrorException ex) { } public void Http3ConnectionClosing(string connectionId) { } diff --git a/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs b/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs index cede2f59521c..1245abfd2a4b 100644 --- a/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs +++ b/src/Servers/Kestrel/shared/test/CompositeKestrelTrace.cs @@ -252,6 +252,12 @@ public void Http2FlowControlQueueOperationsExceeded(string connectionId, int cou _trace2.Http2FlowControlQueueOperationsExceeded(connectionId, count); } + public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual) + { + _trace1.Http2FlowControlQueueMaximumTooLow(connectionId, expected, actual); + _trace2.Http2FlowControlQueueMaximumTooLow(connectionId, expected, actual); + } + public void InvalidResponseHeaderRemoved() { _trace1.InvalidResponseHeaderRemoved(); From 7d6aec8e0b8a011b13ec29c56d8d1223b40fee02 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 26 Sep 2023 20:00:09 -0700 Subject: [PATCH 081/128] Address PR feedback --- .../Core/src/Internal/Http2/Http2Connection.cs | 12 +++++++----- .../Core/src/Internal/Infrastructure/KestrelTrace.cs | 6 +++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index 34069616c6e3..5280f3e2b275 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -33,14 +33,14 @@ internal partial class Http2Connection : IHttp2StreamLifetimeHandler, IHttpHeade private const PseudoHeaderFields _mandatoryRequestPseudoHeaderFields = PseudoHeaderFields.Method | PseudoHeaderFields.Path | PseudoHeaderFields.Scheme; - private const string EnhanceYourCalmMaximumCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.EnhanceYourCalmCount"; + private const string MaximumEnhanceYourCalmCountProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxEnhanceYourCalmCount"; private const string MaximumFlowControlQueueSizeProperty = "Microsoft.AspNetCore.Server.Kestrel.Http2.MaxConnectionFlowControlQueueSize"; - private static readonly int _enhanceYourCalmMaximumCount = GetEnhanceYourCalmMaximumCount(); + private static readonly int _enhanceYourCalmMaximumCount = GetMaximumEnhanceYourCalmCount(); - private static int GetEnhanceYourCalmMaximumCount() + private static int GetMaximumEnhanceYourCalmCount() { - var data = AppContext.GetData(EnhanceYourCalmMaximumCountProperty); + var data = AppContext.GetData(MaximumEnhanceYourCalmCountProperty); if (data is int count) { return count; @@ -186,7 +186,7 @@ public Http2Connection(HttpConnectionContext context) _serverSettings.InitialWindowSize = (uint)http2Limits.InitialStreamWindowSize; _maximumFlowControlQueueSize = ConfiguredMaximumFlowControlQueueSize is null - ? 4 * http2Limits.MaxStreamsPerConnection + ? 4 * http2Limits.MaxStreamsPerConnection // 4 is a magic number to give us some padding above the expected maximum size : (int)ConfiguredMaximumFlowControlQueueSize; if (IsMaximumFlowControlQueueSizeEnabled && _maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection) @@ -1224,6 +1224,8 @@ private void AbortStream(int streamId, IOException error) void IRequestProcessor.Tick(DateTimeOffset now) { Input.CancelPendingRead(); + // We count EYCs over a window of a given length to avoid flagging short-lived bursts. + // At the end of each window, reset the count. if (IsEnhanceYourCalmEnabled && ++_tickCount % EnhanceYourCalmTickWindowCount == 0) { Interlocked.Exchange(ref _enhanceYourCalmCount, 0); diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs index 439fb69fbec4..6a9279e5a3f0 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs @@ -395,7 +395,7 @@ public void Http3GoAwayStreamId(string connectionId, long goAwayStreamId) Http3GoAwayStreamId(_http3Logger, connectionId, goAwayStreamId); } - [LoggerMessage(54, LogLevel.Debug, @"Connection id ""{ConnectionId}"" aborted since at least ""{Count}"" ENHANCE_YOUR_CALM responses were required per second.", EventName = "Http2TooManyEnhanceYourCalms")] + [LoggerMessage(54, LogLevel.Debug, @"Connection id ""{ConnectionId}"" aborted since at least {Count} ENHANCE_YOUR_CALM responses were recorded per second.", EventName = "Http2TooManyEnhanceYourCalms")] private static partial void Http2TooManyEnhanceYourCalms(ILogger logger, string connectionId, int count); public void Http2TooManyEnhanceYourCalms(string connectionId, int count) @@ -403,7 +403,7 @@ public void Http2TooManyEnhanceYourCalms(string connectionId, int count) Http2TooManyEnhanceYourCalms(_http2Logger, connectionId, count); } - [LoggerMessage(55, LogLevel.Debug, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of ""{Count}"".", EventName = "Http2FlowControlQueueOperationsExceeded")] + [LoggerMessage(55, LogLevel.Debug, @"Connection id ""{ConnectionId}"" exceeded the output flow control maximum queue size of {Count}.", EventName = "Http2FlowControlQueueOperationsExceeded")] private static partial void Http2FlowControlQueueOperationsExceeded(ILogger logger, string connectionId, int count); public void Http2FlowControlQueueOperationsExceeded(string connectionId, int count) @@ -411,7 +411,7 @@ public void Http2FlowControlQueueOperationsExceeded(string connectionId, int cou Http2FlowControlQueueOperationsExceeded(_http3Logger, connectionId, count); } - [LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size ""{Actual}"" is less than the maximum streams per connection ""{Expected}"" - increasing to match.", EventName = "Http2FlowControlQueueMaximumTooLow")] + [LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size {Actual} is less than the maximum streams per connection {Expected}. Increasing configured value to {Expected}.", EventName = "Http2FlowControlQueueMaximumTooLow")] private static partial void Http2FlowControlQueueMaximumTooLow(ILogger logger, string connectionId, int expected, int actual); public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual) From 95bb0b8c16d3b27d41296a5a44f9f3b5d54d4a05 Mon Sep 17 00:00:00 2001 From: Andrew Casey Date: Tue, 26 Sep 2023 20:04:26 -0700 Subject: [PATCH 082/128] Increase the min max queue size to match 7 and 8 --- .../Kestrel/Core/src/Internal/Http2/Http2Connection.cs | 7 ++++--- .../Core/src/Internal/Infrastructure/KestrelTrace.cs | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs index 5280f3e2b275..2e4a208fcc4e 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Http2/Http2Connection.cs @@ -189,10 +189,11 @@ public Http2Connection(HttpConnectionContext context) ? 4 * http2Limits.MaxStreamsPerConnection // 4 is a magic number to give us some padding above the expected maximum size : (int)ConfiguredMaximumFlowControlQueueSize; - if (IsMaximumFlowControlQueueSizeEnabled && _maximumFlowControlQueueSize < http2Limits.MaxStreamsPerConnection) + var minimumMaximumFlowControlQueueSize = 2 * http2Limits.MaxStreamsPerConnection; // Double to match 7.0 and 8.0 + if (IsMaximumFlowControlQueueSizeEnabled && _maximumFlowControlQueueSize < minimumMaximumFlowControlQueueSize) { - Log.Http2FlowControlQueueMaximumTooLow(context.ConnectionId, http2Limits.MaxStreamsPerConnection, _maximumFlowControlQueueSize); - _maximumFlowControlQueueSize = http2Limits.MaxStreamsPerConnection; + Log.Http2FlowControlQueueMaximumTooLow(context.ConnectionId, minimumMaximumFlowControlQueueSize, _maximumFlowControlQueueSize); + _maximumFlowControlQueueSize = minimumMaximumFlowControlQueueSize; } // Start pool off at a smaller size if the max number of streams is less than the InitialStreamPoolSize diff --git a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs index 6a9279e5a3f0..c1a6021549f5 100644 --- a/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs +++ b/src/Servers/Kestrel/Core/src/Internal/Infrastructure/KestrelTrace.cs @@ -411,7 +411,7 @@ public void Http2FlowControlQueueOperationsExceeded(string connectionId, int cou Http2FlowControlQueueOperationsExceeded(_http3Logger, connectionId, count); } - [LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size {Actual} is less than the maximum streams per connection {Expected}. Increasing configured value to {Expected}.", EventName = "Http2FlowControlQueueMaximumTooLow")] + [LoggerMessage(56, LogLevel.Debug, @"Connection id ""{ConnectionId}"" configured maximum flow control queue size {Actual} is less than double the maximum streams per connection {Expected}. Increasing configured value to {Expected}.", EventName = "Http2FlowControlQueueMaximumTooLow")] private static partial void Http2FlowControlQueueMaximumTooLow(ILogger logger, string connectionId, int expected, int actual); public void Http2FlowControlQueueMaximumTooLow(string connectionId, int expected, int actual) From 1d49c492e467318607e5874fc6af645115fd0434 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 28 Sep 2023 01:32:29 +0000 Subject: [PATCH 083/128] Merged PR 33993: [internal/release/frameshift/6.0] Update dependencies from dnceng/internal/dotnet-efcore This pull request updates the following dependencies [marker]: <> (Begin:5290da81-c92c-4654-752d-08dbbf92e774) ## From https://github.com/dotnet/efcore - **Subscription**: 5290da81-c92c-4654-752d-08dbbf92e774 - **Build**: 20230927.15 - **Date Produced**: September 28, 2023 1:08:02 AM UTC - **Commit**: 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - **Branch**: refs/heads/internal/release/frameshift/6.0 [DependencyUpdate]: <> (Begin) - **Updates**: - **dotnet-ef**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.Design**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.InMemory**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.Relational**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.Sqlite**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.SqlServer**: [from 6.0.21 to 6.0.23][1] - **Microsoft.EntityFrameworkCore.Tools**: [from 6.0.21 to 6.0.23][1] [1]: https://github.com/dotnet/efcore/compare/fa741b8bad...50a6896cca [DependencyUpdate]: <> (End) [marker]: <> (End:5290da81-c92c-4654-752d-08dbbf92e774) --- NuGet.config | 2 ++ eng/Version.Details.xml | 48 ++++++++++++++++++++--------------------- eng/Versions.props | 16 +++++++------- 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index 7c42342bf5ad..8bbcc5e342e0 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,6 +7,7 @@ + @@ -24,6 +25,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9af5757a4c2a..ed44928afcc8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 - - https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - fa741b8bad8eebb503bba99e078538f97aff3f5d + + https://github.com/dotnet/efcore + 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 81ae58ddbf63..39fb8e05250c 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 - 6.0.21 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 + 6.0.23 6.0.0-beta.23408.5 6.0.0-beta.23408.5 From b1eee58b6f09b977a5ab9c49f5da5904bee421c8 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Sat, 30 Sep 2023 00:13:18 +0000 Subject: [PATCH 084/128] Update dependencies from https://github.com/dotnet/runtime build 20230929.5 Microsoft.Internal.Runtime.AspNetCore.Transport , Microsoft.NETCore.BrowserDebugHost.Transport From Version 6.0.23-servicing.23475.15 -> To Version 6.0.23-servicing.23479.5 --- NuGet.config | 8 ++++++-- eng/Version.Details.xml | 4 ++-- eng/Versions.props | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/NuGet.config b/NuGet.config index 8bbcc5e342e0..22c8c5eb5bb8 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,12 @@ - + + + @@ -25,10 +27,12 @@ + + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ed44928afcc8..160770633949 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,7 +177,7 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://github.com/dotnet/runtime 301ba1ee5d1cfff28a8866924733603f3adf4936 @@ -269,7 +269,7 @@ https://github.com/dotnet/runtime 301ba1ee5d1cfff28a8866924733603f3adf4936 - + https://github.com/dotnet/runtime 301ba1ee5d1cfff28a8866924733603f3adf4936 diff --git a/eng/Versions.props b/eng/Versions.props index 39fb8e05250c..5c43c68802dd 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.23 6.0.23 6.0.23 - 6.0.23-servicing.23475.15 + 6.0.23-servicing.23479.5 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.23-servicing.23475.15 + 6.0.23-servicing.23479.5 6.0.1 6.0.0 6.0.2 From fc82f0d6e59d13c81fae92f775de1cfbfc1a4000 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Wed, 6 Sep 2023 10:40:25 -0700 Subject: [PATCH 085/128] Update jquery-validation to v1.19.5 (#50484) --- .../Pages/V4/_ValidationScriptsPartial.cshtml | 4 +- .../Pages/V5/_ValidationScriptsPartial.cshtml | 4 +- src/Identity/UI/src/THIRD-PARTY-NOTICES.txt | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 +- .../Shared/_ValidationScriptsPartial.cshtml | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- src/ProjectTemplates/THIRD-PARTY-NOTICES | 2 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../dist/additional-methods.js | 424 +++++- .../dist/additional-methods.min.js | 6 +- .../jquery-validation/dist/jquery.validate.js | 118 +- .../dist/jquery.validate.min.js | 6 +- .../samples/ClaimsTransformation/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- src/Security/samples/Cookies/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../Cookies/wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../samples/PathSchemeSelection/bower.json | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 16 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- .../wwwroot/lib/jquery/.bower.json | 2 +- .../wwwroot/lib/jquery/dist/jquery.min.map | 2 +- .../wwwroot/lib/jquery-validation/.bower.json | 19 +- .../dist/additional-methods.js | 1264 ++++++++++++----- .../dist/additional-methods.min.js | 8 +- .../jquery-validation/dist/jquery.validate.js | 855 +++++++---- .../dist/jquery.validate.min.js | 8 +- 65 files changed, 11695 insertions(+), 4546 deletions(-) diff --git a/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml b/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml index 74ca36266548..a67a209cbe94 100644 --- a/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml +++ b/src/Identity/UI/src/Areas/Identity/Pages/V4/_ValidationScriptsPartial.cshtml @@ -3,11 +3,11 @@ - - + diff --git a/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml b/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml index 6cd4eed86820..da4aebe98a86 100644 --- a/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml +++ b/src/Identity/samples/IdentitySample.Mvc/Views/Shared/_ValidationScriptsPartial.cshtml @@ -1,2 +1,2 @@ - + diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js index e129bc0f74b9..c6a7229185ab 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.js @@ -1,9 +1,9 @@ /*! - * jQuery Validation Plugin v1.17.0 + * jQuery Validation Plugin v1.19.5 * * https://jqueryvalidation.org/ * - * Copyright (c) 2017 Jörn Zaefferer + * Copyright (c) 2022 Jörn Zaefferer * Released under the MIT license */ (function( factory ) { @@ -43,6 +43,38 @@ }() ); +/** + * This is used in the United States to process payments, deposits, + * or transfers using the Automated Clearing House (ACH) or Fedwire + * systems. A very common use case would be to validate a form for + * an ACH bill payment. + */ +$.validator.addMethod( "abaRoutingNumber", function( value ) { + var checksum = 0; + var tokens = value.split( "" ); + var length = tokens.length; + + // Length Check + if ( length !== 9 ) { + return false; + } + + // Calc the checksum + // https://en.wikipedia.org/wiki/ABA_routing_transit_number + for ( var i = 0; i < length; i += 3 ) { + checksum += parseInt( tokens[ i ], 10 ) * 3 + + parseInt( tokens[ i + 1 ], 10 ) * 7 + + parseInt( tokens[ i + 2 ], 10 ); + } + + // If not zero and divisible by 10 then valid + if ( checksum !== 0 && checksum % 10 === 0 ) { + return true; + } + + return false; +}, "Please enter a valid routing number." ); + // Accept a value from a file input based on a required mimetype $.validator.addMethod( "accept", function( value, element, param ) { @@ -87,7 +119,7 @@ $.validator.addMethod( "accept", function( value, element, param ) { $.validator.addMethod( "alphanumeric", function( value, element ) { return this.optional( element ) || /^\w+$/i.test( value ); -}, "Letters, numbers, and underscores only please" ); +}, "Letters, numbers, and underscores only please." ); /* * Dutch bank account numbers (not 'giro' numbers) have 9 digits @@ -114,13 +146,13 @@ $.validator.addMethod( "bankaccountNL", function( value, element ) { sum = sum + factor * digit; } return sum % 11 === 0; -}, "Please specify a valid bank account number" ); +}, "Please specify a valid bank account number." ); $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) { return this.optional( element ) || ( $.validator.methods.bankaccountNL.call( this, value, element ) ) || ( $.validator.methods.giroaccountNL.call( this, value, element ) ); -}, "Please specify a valid bank or giro account number" ); +}, "Please specify a valid bank or giro account number." ); /** * BIC is the business identifier code (ISO 9362). This BIC check is not a guarantee for authenticity. @@ -139,7 +171,7 @@ $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) { */ $.validator.addMethod( "bic", function( value, element ) { return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() ); -}, "Please specify a valid BIC code" ); +}, "Please specify a valid BIC code." ); /* * Código de identificación fiscal ( CIF ) is the tax identification code for Spanish legal entities @@ -256,11 +288,141 @@ $.validator.addMethod( "cifES", function( value, element ) { }, "Please specify a valid CIF number." ); +/* + * Brazillian CNH number (Carteira Nacional de Habilitacao) is the License Driver number. + * CNH numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation. + */ +$.validator.addMethod( "cnhBR", function( value ) { + + // Removing special characters from value + value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); + + // Checking value to have 11 digits only + if ( value.length !== 11 ) { + return false; + } + + var sum = 0, dsc = 0, firstChar, + firstCN, secondCN, i, j, v; + + firstChar = value.charAt( 0 ); + + if ( new Array( 12 ).join( firstChar ) === value ) { + return false; + } + + // Step 1 - using first Check Number: + for ( i = 0, j = 9, v = 0; i < 9; ++i, --j ) { + sum += +( value.charAt( i ) * j ); + } + + firstCN = sum % 11; + if ( firstCN >= 10 ) { + firstCN = 0; + dsc = 2; + } + + sum = 0; + for ( i = 0, j = 1, v = 0; i < 9; ++i, ++j ) { + sum += +( value.charAt( i ) * j ); + } + + secondCN = sum % 11; + if ( secondCN >= 10 ) { + secondCN = 0; + } else { + secondCN = secondCN - dsc; + } + + return ( String( firstCN ).concat( secondCN ) === value.substr( -2 ) ); + +}, "Please specify a valid CNH number." ); + +/* + * Brazillian value number (Cadastrado de Pessoas Juridica). + * value numbers have 14 digits in total: 12 numbers followed by 2 check numbers that are being used for validation. + */ +$.validator.addMethod( "cnpjBR", function( value, element ) { + "use strict"; + + if ( this.optional( element ) ) { + return true; + } + + // Removing no number + value = value.replace( /[^\d]+/g, "" ); + + // Checking value to have 14 digits only + if ( value.length !== 14 ) { + return false; + } + + // Elimina values invalidos conhecidos + if ( value === "00000000000000" || + value === "11111111111111" || + value === "22222222222222" || + value === "33333333333333" || + value === "44444444444444" || + value === "55555555555555" || + value === "66666666666666" || + value === "77777777777777" || + value === "88888888888888" || + value === "99999999999999" ) { + return false; + } + + // Valida DVs + var tamanho = ( value.length - 2 ); + var numeros = value.substring( 0, tamanho ); + var digitos = value.substring( tamanho ); + var soma = 0; + var pos = tamanho - 7; + + for ( var i = tamanho; i >= 1; i-- ) { + soma += numeros.charAt( tamanho - i ) * pos--; + if ( pos < 2 ) { + pos = 9; + } + } + + var resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + + if ( resultado !== parseInt( digitos.charAt( 0 ), 10 ) ) { + return false; + } + + tamanho = tamanho + 1; + numeros = value.substring( 0, tamanho ); + soma = 0; + pos = tamanho - 7; + + for ( var il = tamanho; il >= 1; il-- ) { + soma += numeros.charAt( tamanho - il ) * pos--; + if ( pos < 2 ) { + pos = 9; + } + } + + resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; + + if ( resultado !== parseInt( digitos.charAt( 1 ), 10 ) ) { + return false; + } + + return true; + +}, "Please specify a CNPJ value number." ); + /* * Brazillian CPF number (Cadastrado de Pessoas Físicas) is the equivalent of a Brazilian tax registration number. * CPF numbers have 11 digits in total: 9 numbers followed by 2 check numbers that are being used for validation. */ -$.validator.addMethod( "cpfBR", function( value ) { +$.validator.addMethod( "cpfBR", function( value, element ) { + "use strict"; + + if ( this.optional( element ) ) { + return true; + } // Removing special characters from value value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); @@ -315,7 +477,7 @@ $.validator.addMethod( "cpfBR", function( value ) { } return false; -}, "Please specify a valid CPF number" ); +}, "Please specify a valid CPF number." ); // https://jqueryvalidation.org/creditcard-method/ // based on https://en.wikipedia.org/wiki/Luhn_algorithm @@ -337,7 +499,7 @@ $.validator.addMethod( "creditcard", function( value, element ) { value = value.replace( /\D/g, "" ); // Basing min and max length on - // https://developer.ean.com/general_info/Valid_Credit_Card_Types + // https://dev.ean.com/general-info/valid-card-types/ if ( value.length < 13 || value.length > 19 ) { return false; } @@ -359,7 +521,7 @@ $.validator.addMethod( "creditcard", function( value, element ) { }, "Please enter a valid credit card number." ); /* NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator - * Redistributed under the the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 + * Redistributed under the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 * Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings) */ $.validator.addMethod( "creditcardtypes", function( value, element, param ) { @@ -398,7 +560,7 @@ $.validator.addMethod( "creditcardtypes", function( value, element, param ) { if ( param.all ) { validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080; } - if ( validTypes & 0x0001 && /^(5[12345])/.test( value ) ) { // Mastercard + if ( validTypes & 0x0001 && ( /^(5[12345])/.test( value ) || /^(2[234567])/.test( value ) ) ) { // Mastercard return value.length === 16; } if ( validTypes & 0x0002 && /^(4)/.test( value ) ) { // Visa @@ -468,7 +630,7 @@ $.validator.addMethod( "currency", function( value, element, param ) { regex = new RegExp( regex ); return this.optional( element ) || regex.test( value ); -}, "Please specify a valid currency" ); +}, "Please specify a valid currency." ); $.validator.addMethod( "dateFA", function( value, element ) { return this.optional( element ) || /^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test( value ); @@ -529,7 +691,31 @@ $.validator.addMethod( "extension", function( value, element, param ) { */ $.validator.addMethod( "giroaccountNL", function( value, element ) { return this.optional( element ) || /^[0-9]{1,7}$/.test( value ); -}, "Please specify a valid giro account number" ); +}, "Please specify a valid giro account number." ); + +$.validator.addMethod( "greaterThan", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-greaterThan-blur" ).length ) { + target.addClass( "validate-greaterThan-blur" ).on( "blur.validate-greaterThan", function() { + $( element ).valid(); + } ); + } + + return value > target.val(); +}, "Please enter a greater value." ); + +$.validator.addMethod( "greaterThanEqual", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-greaterThanEqual-blur" ).length ) { + target.addClass( "validate-greaterThanEqual-blur" ).on( "blur.validate-greaterThanEqual", function() { + $( element ).valid(); + } ); + } + + return value >= target.val(); +}, "Please enter a greater value." ); /** * IBAN is the international bank account number. @@ -666,11 +852,11 @@ $.validator.addMethod( "iban", function( value, element ) { cRest = cOperator % 97; } return cRest === 1; -}, "Please specify a valid IBAN" ); +}, "Please specify a valid IBAN." ); $.validator.addMethod( "integer", function( value, element ) { return this.optional( element ) || /^-?\d+$/.test( value ); -}, "A positive or negative non-decimal number please" ); +}, "A positive or negative non-decimal number please." ); $.validator.addMethod( "ipv4", function( value, element ) { return this.optional( element ) || /^(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)\.(25[0-5]|2[0-4]\d|[01]?\d\d?)$/i.test( value ); @@ -680,17 +866,103 @@ $.validator.addMethod( "ipv6", function( value, element ) { return this.optional( element ) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test( value ); }, "Please enter a valid IP v6 address." ); +$.validator.addMethod( "lessThan", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-lessThan-blur" ).length ) { + target.addClass( "validate-lessThan-blur" ).on( "blur.validate-lessThan", function() { + $( element ).valid(); + } ); + } + + return value < target.val(); +}, "Please enter a lesser value." ); + +$.validator.addMethod( "lessThanEqual", function( value, element, param ) { + var target = $( param ); + + if ( this.settings.onfocusout && target.not( ".validate-lessThanEqual-blur" ).length ) { + target.addClass( "validate-lessThanEqual-blur" ).on( "blur.validate-lessThanEqual", function() { + $( element ).valid(); + } ); + } + + return value <= target.val(); +}, "Please enter a lesser value." ); + $.validator.addMethod( "lettersonly", function( value, element ) { return this.optional( element ) || /^[a-z]+$/i.test( value ); -}, "Letters only please" ); +}, "Letters only please." ); $.validator.addMethod( "letterswithbasicpunc", function( value, element ) { return this.optional( element ) || /^[a-z\-.,()'"\s]+$/i.test( value ); -}, "Letters or punctuation only please" ); +}, "Letters or punctuation only please." ); + +// Limit the number of files in a FileList. +$.validator.addMethod( "maxfiles", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length > param ) { + return false; + } + } + + return true; +}, $.validator.format( "Please select no more than {0} files." ) ); + +// Limit the size of each individual file in a FileList. +$.validator.addMethod( "maxsize", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length ) { + for ( var i = 0; i < element.files.length; i++ ) { + if ( element.files[ i ].size > param ) { + return false; + } + } + } + } + + return true; +}, $.validator.format( "File size must not exceed {0} bytes each." ) ); + +// Limit the size of all files in a FileList. +$.validator.addMethod( "maxsizetotal", function( value, element, param ) { + if ( this.optional( element ) ) { + return true; + } + + if ( $( element ).attr( "type" ) === "file" ) { + if ( element.files && element.files.length ) { + var totalSize = 0; + + for ( var i = 0; i < element.files.length; i++ ) { + totalSize += element.files[ i ].size; + if ( totalSize > param ) { + return false; + } + } + } + } + + return true; +}, $.validator.format( "Total size of all files must not exceed {0} bytes." ) ); + $.validator.addMethod( "mobileNL", function( value, element ) { return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); -}, "Please specify a valid mobile number" ); +}, "Please specify a valid mobile number." ); + +$.validator.addMethod( "mobileRU", function( phone_number, element ) { + var ruPhone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); + return this.optional( element ) || ruPhone_number.length > 9 && /^((\+7|7|8)+([0-9]){10})$/.test( ruPhone_number ); +}, "Please specify a valid mobile number." ); /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: @@ -704,7 +976,7 @@ $.validator.addMethod( "mobileUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/ ); -}, "Please specify a valid mobile number" ); +}, "Please specify a valid mobile number." ); $.validator.addMethod( "netmask", function( value, element ) { return this.optional( element ) || /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test( value ); @@ -804,13 +1076,71 @@ $.validator.addMethod( "nipPL", function( value ) { return ( intControlNr === parseInt( value[ 9 ], 10 ) ); }, "Please specify a valid NIP number." ); +/** + * Created for project jquery-validation. + * @Description Brazillian PIS or NIS number (Número de Identificação Social Pis ou Pasep) is the equivalent of a + * Brazilian tax registration number NIS of PIS numbers have 11 digits in total: 10 numbers followed by 1 check numbers + * that are being used for validation. + * @copyright (c) 21/08/2018 13:14, Cleiton da Silva Mendonça + * @author Cleiton da Silva Mendonça + * @link http://gitlab.com/csmendonca Gitlab of Cleiton da Silva Mendonça + * @link http://github.com/csmendonca Github of Cleiton da Silva Mendonça + */ +$.validator.addMethod( "nisBR", function( value ) { + var number; + var cn; + var sum = 0; + var dv; + var count; + var multiplier; + + // Removing special characters from value + value = value.replace( /([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g, "" ); + + // Checking value to have 11 digits only + if ( value.length !== 11 ) { + return false; + } + + //Get check number of value + cn = parseInt( value.substring( 10, 11 ), 10 ); + + //Get number with 10 digits of the value + number = parseInt( value.substring( 0, 10 ), 10 ); + + for ( count = 2; count < 12; count++ ) { + multiplier = count; + if ( count === 10 ) { + multiplier = 2; + } + if ( count === 11 ) { + multiplier = 3; + } + sum += ( ( number % 10 ) * multiplier ); + number = parseInt( number / 10, 10 ); + } + dv = ( sum % 11 ); + + if ( dv > 1 ) { + dv = ( 11 - dv ); + } else { + dv = 0; + } + + if ( cn === dv ) { + return true; + } else { + return false; + } +}, "Please specify a valid NIS/PIS number." ); + $.validator.addMethod( "notEqualTo", function( value, element, param ) { return this.optional( element ) || !$.validator.methods.equalTo.call( this, value, element, param ); }, "Please enter a different value, values must not be the same." ); $.validator.addMethod( "nowhitespace", function( value, element ) { return this.optional( element ) || /^\S+$/i.test( value ); -}, "No white space please" ); +}, "No white space please." ); /** * Return true if the field value matches the given format RegExp @@ -842,6 +1172,30 @@ $.validator.addMethod( "phoneNL", function( value, element ) { return this.optional( element ) || /^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test( value ); }, "Please specify a valid phone number." ); +/** + * Polish telephone numbers have 9 digits. + * + * Mobile phone numbers starts with following digits: + * 45, 50, 51, 53, 57, 60, 66, 69, 72, 73, 78, 79, 88. + * + * Fixed-line numbers starts with area codes: + * 12, 13, 14, 15, 16, 17, 18, 22, 23, 24, 25, 29, 32, 33, + * 34, 41, 42, 43, 44, 46, 48, 52, 54, 55, 56, 58, 59, 61, + * 62, 63, 65, 67, 68, 71, 74, 75, 76, 77, 81, 82, 83, 84, + * 85, 86, 87, 89, 91, 94, 95. + * + * Ministry of National Defence numbers and VoIP numbers starts with 26 and 39. + * + * Excludes intelligent networks (premium rate, shared cost, free phone numbers). + * + * Poland National Numbering Plan http://www.itu.int/oth/T02020000A8/en + */ +$.validator.addMethod( "phonePL", function( phone_number, element ) { + phone_number = phone_number.replace( /\s+/g, "" ); + var regexp = /^(?:(?:(?:\+|00)?48)|(?:\(\+?48\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\d{7}$/; + return this.optional( element ) || regexp.test( phone_number ); +}, "Please specify a valid phone number." ); + /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: * ^\(?(?:(?:00\)?[\s\-]?\(?|\+)(44)\)?[\s\-]?\(?(?:0\)?[\s\-]?\(?)?|0)([1-9]\d{1,4}\)?[\s\d\-]+)$ @@ -856,7 +1210,7 @@ $.validator.addMethod( "phonesUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/ ); -}, "Please specify a valid uk phone number" ); +}, "Please specify a valid uk phone number." ); /* For UK phone functions, do the following server side processing: * Compare original input with this RegEx pattern: @@ -870,7 +1224,7 @@ $.validator.addMethod( "phoneUK", function( phone_number, element ) { phone_number = phone_number.replace( /\(|\)|\s+|-/g, "" ); return this.optional( element ) || phone_number.length > 9 && phone_number.match( /^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/ ); -}, "Please specify a valid phone number" ); +}, "Please specify a valid phone number." ); /** * Matches US phone number format @@ -891,8 +1245,8 @@ $.validator.addMethod( "phoneUK", function( phone_number, element ) { $.validator.addMethod( "phoneUS", function( phone_number, element ) { phone_number = phone_number.replace( /\s+/g, "" ); return this.optional( element ) || phone_number.length > 9 && - phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/ ); -}, "Please specify a valid phone number" ); + phone_number.match( /^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]\d{2}-?\d{4}$/ ); +}, "Please specify a valid phone number." ); /* * Valida CEPs do brasileiros: @@ -921,21 +1275,21 @@ $.validator.addMethod( "postalcodeBR", function( cep_value, element ) { */ $.validator.addMethod( "postalCodeCA", function( value, element ) { return this.optional( element ) || /^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); /* Matches Italian postcode (CAP) */ $.validator.addMethod( "postalcodeIT", function( value, element ) { return this.optional( element ) || /^\d{5}$/.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); $.validator.addMethod( "postalcodeNL", function( value, element ) { return this.optional( element ) || /^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test( value ); -}, "Please specify a valid postal code" ); +}, "Please specify a valid postal code." ); // Matches UK postcode. Does not match to UK Channel Islands that have their own postcodes (non standard UK) $.validator.addMethod( "postcodeUK", function( value, element ) { return this.optional( element ) || /^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test( value ); -}, "Please specify a valid UK postcode" ); +}, "Please specify a valid UK postcode." ); /* * Lets you say "at least X inputs that match selector Y must be filled." @@ -1072,24 +1426,24 @@ $.validator.addMethod( "stateUS", function( value, element, options ) { regex = caseSensitive ? new RegExp( regex ) : new RegExp( regex, "i" ); return this.optional( element ) || regex.test( value ); -}, "Please specify a valid state" ); +}, "Please specify a valid state." ); // TODO check if value starts with <, otherwise don't try stripping anything $.validator.addMethod( "strippedminlength", function( value, element, param ) { return $( value ).text().length >= param; -}, $.validator.format( "Please enter at least {0} characters" ) ); +}, $.validator.format( "Please enter at least {0} characters." ) ); $.validator.addMethod( "time", function( value, element ) { return this.optional( element ) || /^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test( value ); -}, "Please enter a valid time, between 00:00 and 23:59" ); +}, "Please enter a valid time, between 00:00 and 23:59." ); $.validator.addMethod( "time12h", function( value, element ) { return this.optional( element ) || /^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test( value ); -}, "Please enter a valid time in 12-hour am/pm format" ); +}, "Please enter a valid time in 12-hour am/pm format." ); // Same as url, but TLD is optional $.validator.addMethod( "url2", function( value, element ) { - return this.optional( element ) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test( value ); + return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff])|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62}\.)))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); }, $.validator.messages.url ); /** @@ -1149,10 +1503,10 @@ $.validator.addMethod( "vinUS", function( v ) { $.validator.addMethod( "zipcodeUS", function( value, element ) { return this.optional( element ) || /^\d{5}(-\d{4})?$/.test( value ); -}, "The specified US ZIP Code is invalid" ); +}, "The specified US ZIP Code is invalid." ); $.validator.addMethod( "ziprange", function( value, element ) { return this.optional( element ) || /^90[2-5]\d\{2\}-\d{4}$/.test( value ); -}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx" ); +}, "Your ZIP-code must be in the range 902xx-xxxx to 905xx-xxxx." ); return $; })); \ No newline at end of file diff --git a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js index 6767f24f6b12..80f14b58c2e1 100644 --- a/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js +++ b/src/Identity/testassets/Identity.DefaultUI.WebSite/wwwroot/lib/jquery-validation/dist/additional-methods.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.17.0 - 7/29/2017 +/*! jQuery Validation Plugin - v1.19.5 - 7/1/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2017 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery","./jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(){function b(a){return a.replace(/<.[^<>]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("accept",function(b,c,d){var e,f,g,h="string"==typeof d?d.replace(/\s/g,""):"image/*",i=this.optional(c);if(i)return i;if("file"===a(c).attr("type")&&(h=h.replace(/[\-\[\]\/\{\}\(\)\+\?\.\\\^\$\|]/g,"\\$&").replace(/,/g,"|").replace(/\/\*/g,"/.*"),c.files&&c.files.length))for(g=new RegExp(".?("+h+")$","i"),e=0;e9?"0":f,g="JABCDEFGHI".substr(f,1).toString(),i.match(/[ABEH]/)?k===f:i.match(/[KPQS]/)?k===g:k===f||k===g},"Please specify a valid CIF number."),a.validator.addMethod("cpfBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f=0;if(b=parseInt(a.substring(9,10),10),c=parseInt(a.substring(10,11),10),d=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(e=1;e<=9;e++)f+=parseInt(a.substring(e-1,e),10)*(11-e);if(d(f,b)){for(f=0,e=1;e<=10;e++)f+=parseInt(a.substring(e-1,e),10)*(12-e);return d(f,c)}return!1},"Please specify a valid CPF number"),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&/^(5[12345])/.test(a)?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=!!e||c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency"),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number"),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="",q=5;if(l.length9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number"),a.validator.addMethod("netmask",function(a,b){return this.optional(b)||/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a)},"Please enter a valid netmask."),a.validator.addMethod("nieES",function(a,b){"use strict";if(this.optional(b))return!0;var c,d=new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi),e="TRWAGMYFPDXBNJZSQVHLCKET",f=a.substr(a.length-1).toUpperCase();return a=a.toString().toUpperCase(),!(a.length>10||a.length<9||!d.test(a))&&(a=a.replace(/^[X]/,"0").replace(/^[Y]/,"1").replace(/^[Z]/,"2"),c=9===a.length?a.substr(0,8):a.substr(0,9),e.charAt(parseInt(c,10)%23)===f)},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a,b){"use strict";return!!this.optional(b)||(a=a.toUpperCase(),!!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")&&(/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):!!/^[KLM]{1}/.test(a)&&a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,1)%23)))},"Please specify a valid NIF number."),a.validator.addMethod("nipPL",function(a){"use strict";if(a=a.replace(/[^0-9]/g,""),10!==a.length)return!1;for(var b=[6,5,7,2,3,4,5,6,7],c=0,d=0;d<9;d++)c+=b[d]*a[d];var e=c%11,f=10===e?0:e;return f===parseInt(a[9],10)},"Please specify a valid NIP number."),a.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please"),a.validator.addMethod("pattern",function(a,b,c){return!!this.optional(b)||("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number"),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number"),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]([02-9]\d|1[02-9])-?\d{4}$/)},"Please specify a valid phone number"),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code"),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode"),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=!e&&"undefined"!=typeof c.caseSensitive&&c.caseSensitive,g=!e&&"undefined"!=typeof c.includeTerritories&&c.includeTerritories,h=!e&&"undefined"!=typeof c.includeMilitary&&c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state"),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59"),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format"),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;b<17;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c]*?>/g," ").replace(/ | /gi," ").replace(/[.(),;:!?%#$'\"_+=\/\-“”’]*/g,"")}a.validator.addMethod("maxWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length<=d},a.validator.format("Please enter {0} words or less.")),a.validator.addMethod("minWords",function(a,c,d){return this.optional(c)||b(a).match(/\b\w+\b/g).length>=d},a.validator.format("Please enter at least {0} words.")),a.validator.addMethod("rangeWords",function(a,c,d){var e=b(a),f=/\b\w+\b/g;return this.optional(c)||e.match(f).length>=d[0]&&e.match(f).length<=d[1]},a.validator.format("Please enter between {0} and {1} words."))}(),a.validator.addMethod("abaRoutingNumber",function(a){var b=0,c=a.split(""),d=c.length;if(9!==d)return!1;for(var e=0;e9?"0":f,g="JABCDEFGHI".substr(f,1).toString(),i.match(/[ABEH]/)?k===f:i.match(/[KPQS]/)?k===g:k===f||k===g},"Please specify a valid CIF number."),a.validator.addMethod("cnhBR",function(a){if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var b,c,d,e,f,g,h=0,i=0;if(b=a.charAt(0),new Array(12).join(b)===a)return!1;for(e=0,f=9,g=0;e<9;++e,--f)h+=+(a.charAt(e)*f);for(c=h%11,c>=10&&(c=0,i=2),h=0,e=0,f=1,g=0;e<9;++e,++f)h+=+(a.charAt(e)*f);return d=h%11,d>=10?d=0:d-=i,String(c).concat(d)===a.substr(-2)},"Please specify a valid CNH number."),a.validator.addMethod("cnpjBR",function(a,b){"use strict";if(this.optional(b))return!0;if(a=a.replace(/[^\d]+/g,""),14!==a.length)return!1;if("00000000000000"===a||"11111111111111"===a||"22222222222222"===a||"33333333333333"===a||"44444444444444"===a||"55555555555555"===a||"66666666666666"===a||"77777777777777"===a||"88888888888888"===a||"99999999999999"===a)return!1;for(var c=a.length-2,d=a.substring(0,c),e=a.substring(c),f=0,g=c-7,h=c;h>=1;h--)f+=d.charAt(c-h)*g--,g<2&&(g=9);var i=f%11<2?0:11-f%11;if(i!==parseInt(e.charAt(0),10))return!1;c+=1,d=a.substring(0,c),f=0,g=c-7;for(var j=c;j>=1;j--)f+=d.charAt(c-j)*g--,g<2&&(g=9);return i=f%11<2?0:11-f%11,i===parseInt(e.charAt(1),10)},"Please specify a CNPJ value number."),a.validator.addMethod("cpfBR",function(a,b){"use strict";if(this.optional(b))return!0;if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;var c,d,e,f,g=0;if(c=parseInt(a.substring(9,10),10),d=parseInt(a.substring(10,11),10),e=function(a,b){var c=10*a%11;return 10!==c&&11!==c||(c=0),c===b},""===a||"00000000000"===a||"11111111111"===a||"22222222222"===a||"33333333333"===a||"44444444444"===a||"55555555555"===a||"66666666666"===a||"77777777777"===a||"88888888888"===a||"99999999999"===a)return!1;for(f=1;f<=9;f++)g+=parseInt(a.substring(f-1,f),10)*(11-f);if(e(g,c)){for(g=0,f=1;f<=10;f++)g+=parseInt(a.substring(f-1,f),10)*(12-f);return e(g,d)}return!1},"Please specify a valid CPF number."),a.validator.addMethod("creditcard",function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 \-]+/.test(a))return!1;var c,d,e=0,f=0,g=!1;if(a=a.replace(/\D/g,""),a.length<13||a.length>19)return!1;for(c=a.length-1;c>=0;c--)d=a.charAt(c),f=parseInt(d,10),g&&(f*=2)>9&&(f-=9),e+=f,g=!g;return e%10===0},"Please enter a valid credit card number."),a.validator.addMethod("creditcardtypes",function(a,b,c){if(/[^0-9\-]+/.test(a))return!1;a=a.replace(/\D/g,"");var d=0;return c.mastercard&&(d|=1),c.visa&&(d|=2),c.amex&&(d|=4),c.dinersclub&&(d|=8),c.enroute&&(d|=16),c.discover&&(d|=32),c.jcb&&(d|=64),c.unknown&&(d|=128),c.all&&(d=255),1&d&&(/^(5[12345])/.test(a)||/^(2[234567])/.test(a))?16===a.length:2&d&&/^(4)/.test(a)?16===a.length:4&d&&/^(3[47])/.test(a)?15===a.length:8&d&&/^(3(0[012345]|[68]))/.test(a)?14===a.length:16&d&&/^(2(014|149))/.test(a)?15===a.length:32&d&&/^(6011)/.test(a)?16===a.length:64&d&&/^(3)/.test(a)?16===a.length:64&d&&/^(2131|1800)/.test(a)?15===a.length:!!(128&d)},"Please enter a valid credit card number."),a.validator.addMethod("currency",function(a,b,c){var d,e="string"==typeof c,f=e?c:c[0],g=!!e||c[1];return f=f.replace(/,/g,""),f=g?f+"]":f+"]?",d="^["+f+"([1-9]{1}[0-9]{0,2}(\\,[0-9]{3})*(\\.[0-9]{0,2})?|[1-9]{1}[0-9]{0,}(\\.[0-9]{0,2})?|0(\\.[0-9]{0,2})?|(\\.[0-9]{1,2})?)$",d=new RegExp(d),this.optional(b)||d.test(a)},"Please specify a valid currency."),a.validator.addMethod("dateFA",function(a,b){return this.optional(b)||/^[1-4]\d{3}\/((0?[1-6]\/((3[0-1])|([1-2][0-9])|(0?[1-9])))|((1[0-2]|(0?[7-9]))\/(30|([1-2][0-9])|(0?[1-9]))))$/.test(a)},a.validator.messages.date),a.validator.addMethod("dateITA",function(a,b){var c,d,e,f,g,h=!1,i=/^\d{1,2}\/\d{1,2}\/\d{4}$/;return i.test(a)?(c=a.split("/"),d=parseInt(c[0],10),e=parseInt(c[1],10),f=parseInt(c[2],10),g=new Date(Date.UTC(f,e-1,d,12,0,0,0)),h=g.getUTCFullYear()===f&&g.getUTCMonth()===e-1&&g.getUTCDate()===d):h=!1,this.optional(b)||h},a.validator.messages.date),a.validator.addMethod("dateNL",function(a,b){return this.optional(b)||/^(0?[1-9]|[12]\d|3[01])[\.\/\-](0?[1-9]|1[012])[\.\/\-]([12]\d)?(\d\d)$/.test(a)},a.validator.messages.date),a.validator.addMethod("extension",function(a,b,c){return c="string"==typeof c?c.replace(/,/g,"|"):"png|jpe?g|gif",this.optional(b)||a.match(new RegExp("\\.("+c+")$","i"))},a.validator.format("Please enter a value with a valid extension.")),a.validator.addMethod("giroaccountNL",function(a,b){return this.optional(b)||/^[0-9]{1,7}$/.test(a)},"Please specify a valid giro account number."),a.validator.addMethod("greaterThan",function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-greaterThan-blur").length&&e.addClass("validate-greaterThan-blur").on("blur.validate-greaterThan",function(){a(c).valid()}),b>e.val()},"Please enter a greater value."),a.validator.addMethod("greaterThanEqual",function(b,c,d){var e=a(d);return this.settings.onfocusout&&e.not(".validate-greaterThanEqual-blur").length&&e.addClass("validate-greaterThanEqual-blur").on("blur.validate-greaterThanEqual",function(){a(c).valid()}),b>=e.val()},"Please enter a greater value."),a.validator.addMethod("iban",function(a,b){if(this.optional(b))return!0;var c,d,e,f,g,h,i,j,k,l=a.replace(/ /g,"").toUpperCase(),m="",n=!0,o="",p="",q=5;if(l.lengthd)},a.validator.format("Please select no more than {0} files.")),a.validator.addMethod("maxsize",function(b,c,d){if(this.optional(c))return!0;if("file"===a(c).attr("type")&&c.files&&c.files.length)for(var e=0;ed)return!1;return!0},a.validator.format("File size must not exceed {0} bytes each.")),a.validator.addMethod("maxsizetotal",function(b,c,d){if(this.optional(c))return!0;if("file"===a(c).attr("type")&&c.files&&c.files.length)for(var e=0,f=0;fd)return!1;return!0},a.validator.format("Total size of all files must not exceed {0} bytes.")),a.validator.addMethod("mobileNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)6((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid mobile number."),a.validator.addMethod("mobileRU",function(a,b){var c=a.replace(/\(|\)|\s+|-/g,"");return this.optional(b)||c.length>9&&/^((\+7|7|8)+([0-9]){10})$/.test(c)},"Please specify a valid mobile number."),a.validator.addMethod("mobileUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)7(?:[1345789]\d{2}|624)\s?\d{3}\s?\d{3})$/)},"Please specify a valid mobile number."),a.validator.addMethod("netmask",function(a,b){return this.optional(b)||/^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/i.test(a)},"Please enter a valid netmask."),a.validator.addMethod("nieES",function(a,b){"use strict";if(this.optional(b))return!0;var c,d=new RegExp(/^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi),e="TRWAGMYFPDXBNJZSQVHLCKET",f=a.substr(a.length-1).toUpperCase();return a=a.toString().toUpperCase(),!(a.length>10||a.length<9||!d.test(a))&&(a=a.replace(/^[X]/,"0").replace(/^[Y]/,"1").replace(/^[Z]/,"2"),c=9===a.length?a.substr(0,8):a.substr(0,9),e.charAt(parseInt(c,10)%23)===f)},"Please specify a valid NIE number."),a.validator.addMethod("nifES",function(a,b){"use strict";return!!this.optional(b)||(a=a.toUpperCase(),!!a.match("((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)")&&(/^[0-9]{8}[A-Z]{1}$/.test(a)?"TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,0)%23)===a.charAt(8):!!/^[KLM]{1}/.test(a)&&a[8]==="TRWAGMYFPDXBNJZSQVHLCKE".charAt(a.substring(8,1)%23)))},"Please specify a valid NIF number."),a.validator.addMethod("nipPL",function(a){"use strict";if(a=a.replace(/[^0-9]/g,""),10!==a.length)return!1;for(var b=[6,5,7,2,3,4,5,6,7],c=0,d=0;d<9;d++)c+=b[d]*a[d];var e=c%11,f=10===e?0:e;return f===parseInt(a[9],10)},"Please specify a valid NIP number."),a.validator.addMethod("nisBR",function(a){var b,c,d,e,f,g=0;if(a=a.replace(/([~!@#$%^&*()_+=`{}\[\]\-|\\:;'<>,.\/? ])+/g,""),11!==a.length)return!1;for(c=parseInt(a.substring(10,11),10),b=parseInt(a.substring(0,10),10),e=2;e<12;e++)f=e,10===e&&(f=2),11===e&&(f=3),g+=b%10*f,b=parseInt(b/10,10);return d=g%11,d=d>1?11-d:0,c===d},"Please specify a valid NIS/PIS number."),a.validator.addMethod("notEqualTo",function(b,c,d){return this.optional(c)||!a.validator.methods.equalTo.call(this,b,c,d)},"Please enter a different value, values must not be the same."),a.validator.addMethod("nowhitespace",function(a,b){return this.optional(b)||/^\S+$/i.test(a)},"No white space please."),a.validator.addMethod("pattern",function(a,b,c){return!!this.optional(b)||("string"==typeof c&&(c=new RegExp("^(?:"+c+")$")),c.test(a))},"Invalid format."),a.validator.addMethod("phoneNL",function(a,b){return this.optional(b)||/^((\+|00(\s|\s?\-\s?)?)31(\s|\s?\-\s?)?(\(0\)[\-\s]?)?|0)[1-9]((\s|\s?\-\s?)?[0-9]){8}$/.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonePL",function(a,b){a=a.replace(/\s+/g,"");var c=/^(?:(?:(?:\+|00)?48)|(?:\(\+?48\)))?(?:1[2-8]|2[2-69]|3[2-49]|4[1-68]|5[0-9]|6[0-35-9]|[7-8][1-9]|9[145])\d{7}$/;return this.optional(b)||c.test(a)},"Please specify a valid phone number."),a.validator.addMethod("phonesUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?|0)(?:1\d{8,9}|[23]\d{9}|7(?:[1345789]\d{8}|624\d{6})))$/)},"Please specify a valid uk phone number."),a.validator.addMethod("phoneUK",function(a,b){return a=a.replace(/\(|\)|\s+|-/g,""),this.optional(b)||a.length>9&&a.match(/^(?:(?:(?:00\s?|\+)44\s?)|(?:\(?0))(?:\d{2}\)?\s?\d{4}\s?\d{4}|\d{3}\)?\s?\d{3}\s?\d{3,4}|\d{4}\)?\s?(?:\d{5}|\d{3}\s?\d{3})|\d{5}\)?\s?\d{4,5})$/)},"Please specify a valid phone number."),a.validator.addMethod("phoneUS",function(a,b){return a=a.replace(/\s+/g,""),this.optional(b)||a.length>9&&a.match(/^(\+?1-?)?(\([2-9]([02-9]\d|1[02-9])\)|[2-9]([02-9]\d|1[02-9]))-?[2-9]\d{2}-?\d{4}$/)},"Please specify a valid phone number."),a.validator.addMethod("postalcodeBR",function(a,b){return this.optional(b)||/^\d{2}.\d{3}-\d{3}?$|^\d{5}-?\d{3}?$/.test(a)},"Informe um CEP válido."),a.validator.addMethod("postalCodeCA",function(a,b){return this.optional(b)||/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJKLMNPRSTVWXYZ] *\d[ABCEGHJKLMNPRSTVWXYZ]\d$/i.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postalcodeIT",function(a,b){return this.optional(b)||/^\d{5}$/.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postalcodeNL",function(a,b){return this.optional(b)||/^[1-9][0-9]{3}\s?[a-zA-Z]{2}$/.test(a)},"Please specify a valid postal code."),a.validator.addMethod("postcodeUK",function(a,b){return this.optional(b)||/^((([A-PR-UWYZ][0-9])|([A-PR-UWYZ][0-9][0-9])|([A-PR-UWYZ][A-HK-Y][0-9])|([A-PR-UWYZ][A-HK-Y][0-9][0-9])|([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY]))\s?([0-9][ABD-HJLNP-UW-Z]{2})|(GIR)\s?(0AA))$/i.test(a)},"Please specify a valid UK postcode."),a.validator.addMethod("require_from_group",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_req_grp")?f.data("valid_req_grp"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length>=d[0];return f.data("valid_req_grp",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),h},a.validator.format("Please fill at least {0} of these fields.")),a.validator.addMethod("skip_or_fill_minimum",function(b,c,d){var e=a(d[1],c.form),f=e.eq(0),g=f.data("valid_skip")?f.data("valid_skip"):a.extend({},this),h=e.filter(function(){return g.elementValue(this)}).length,i=0===h||h>=d[0];return f.data("valid_skip",g),a(c).data("being_validated")||(e.data("being_validated",!0),e.each(function(){g.element(this)}),e.data("being_validated",!1)),i},a.validator.format("Please either skip these fields or fill at least {0} of them.")),a.validator.addMethod("stateUS",function(a,b,c){var d,e="undefined"==typeof c,f=!e&&"undefined"!=typeof c.caseSensitive&&c.caseSensitive,g=!e&&"undefined"!=typeof c.includeTerritories&&c.includeTerritories,h=!e&&"undefined"!=typeof c.includeMilitary&&c.includeMilitary;return d=g||h?g&&h?"^(A[AEKLPRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":g?"^(A[KLRSZ]|C[AOT]|D[CE]|FL|G[AU]|HI|I[ADLN]|K[SY]|LA|M[ADEINOPST]|N[CDEHJMVY]|O[HKR]|P[AR]|RI|S[CD]|T[NX]|UT|V[AIT]|W[AIVY])$":"^(A[AEKLPRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$":"^(A[KLRZ]|C[AOT]|D[CE]|FL|GA|HI|I[ADLN]|K[SY]|LA|M[ADEINOST]|N[CDEHJMVY]|O[HKR]|PA|RI|S[CD]|T[NX]|UT|V[AT]|W[AIVY])$",d=f?new RegExp(d):new RegExp(d,"i"),this.optional(b)||d.test(a)},"Please specify a valid state."),a.validator.addMethod("strippedminlength",function(b,c,d){return a(b).text().length>=d},a.validator.format("Please enter at least {0} characters.")),a.validator.addMethod("time",function(a,b){return this.optional(b)||/^([01]\d|2[0-3]|[0-9])(:[0-5]\d){1,2}$/.test(a)},"Please enter a valid time, between 00:00 and 23:59."),a.validator.addMethod("time12h",function(a,b){return this.optional(b)||/^((0?[1-9]|1[012])(:[0-5]\d){1,2}(\ ?[AP]M))$/i.test(a)},"Please enter a valid time in 12-hour am/pm format."),a.validator.addMethod("url2",function(a,b){return this.optional(b)||/^(?:(?:(?:https?|ftp):)?\/\/)(?:(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})+(?::(?:[^\]\[?\/<~#`!@$^&*()+=}|:";',>{ ]|%[0-9A-Fa-f]{2})*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?)|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff])|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62}\.)))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(a)},a.validator.messages.url),a.validator.addMethod("vinUS",function(a){if(17!==a.length)return!1;var b,c,d,e,f,g,h=["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"],i=[1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9],j=[8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2],k=0;for(b=0;b<17;b++){if(e=j[b],d=a.slice(b,b+1),8===b&&(g=d),isNaN(d)){for(c=0;c - - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -246,32 +246,32 @@ 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 - - https://github.com/dotnet/runtime - 301ba1ee5d1cfff28a8866924733603f3adf4936 + + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime + e0f0de876a67755a2c6cd2dc730c13f5959bdea8 diff --git a/eng/Versions.props b/eng/Versions.props index 5c43c68802dd..a17f408f20d2 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.23 6.0.23 6.0.23 - 6.0.23-servicing.23479.5 + 6.0.23-servicing.23480.2 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.23-servicing.23479.5 + 6.0.23-servicing.23480.2 6.0.1 6.0.0 6.0.2 From f665cb05792a3c832982dfdc06f4b46c33971dbe Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Wed, 4 Oct 2023 09:04:42 -0700 Subject: [PATCH 087/128] Update branding to 6.0.24 (#51115) --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 81189a0e17ed..84aeccf24dce 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,8 +8,8 @@ 6 0 - 23 - true + 24 + false From 1a6ffea33df8ffe36c2720ee42fc091f5576d180 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 09:18:22 -0700 Subject: [PATCH 088/128] [release/6.0] (deps): Bump src/submodules/googletest (#51049) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `8a6feab` to `e47544a`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/8a6feabf04bec8fb125e0df0ad1195c42350725f...e47544ad31cb3ceecd04cc13e8fe556f8df9fe0b) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/googletest b/src/submodules/googletest index 8a6feabf04be..e47544ad31cb 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit 8a6feabf04bec8fb125e0df0ad1195c42350725f +Subproject commit e47544ad31cb3ceecd04cc13e8fe556f8df9fe0b From 9104f71a6e75915786f8e993fedfb333a8e39970 Mon Sep 17 00:00:00 2001 From: Mackinnon Buck Date: Wed, 4 Oct 2023 13:36:10 -0700 Subject: [PATCH 089/128] Update EventTest.cs (#51142) --- src/Components/test/E2ETest/Tests/EventTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Components/test/E2ETest/Tests/EventTest.cs b/src/Components/test/E2ETest/Tests/EventTest.cs index 390bdcc09061..18f513720ae2 100644 --- a/src/Components/test/E2ETest/Tests/EventTest.cs +++ b/src/Components/test/E2ETest/Tests/EventTest.cs @@ -173,8 +173,8 @@ public void DragDrop_CanTrigger() var actions = new Actions(Browser).DragAndDrop(input, target); actions.Perform(); - // drop doesn't seem to trigger in Selenium. But it's sufficient to determine "any" drag event works - Browser.Equal("dragstart,", () => output.Text); + // drop doesn't reliably trigger in Selenium. But it's sufficient to determine "any" drag event works + Browser.True(() => output.Text.StartsWith("dragstart,", StringComparison.Ordinal)); } [Fact] From 20f37ce93c870ec529d3370eb1ac8e8e474df15e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 5 Oct 2023 16:54:16 -0700 Subject: [PATCH 090/128] [release/6.0] Dispose CTS in HubConnection streaming (#51139) * Dispose CTS in HubConnection streaming * Apply suggestions from code review Co-authored-by: Stephen Halter --------- Co-authored-by: Brennan Co-authored-by: Stephen Halter --- .../clients/csharp/Client.Core/src/HubConnection.cs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs b/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs index 7e10a4a8da86..9720baff993b 100644 --- a/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs +++ b/src/SignalR/clients/csharp/Client.Core/src/HubConnection.cs @@ -743,7 +743,7 @@ async Task ReadChannelStream() } } - return CommonStreaming(connectionState, streamId, ReadChannelStream); + return CommonStreaming(connectionState, streamId, ReadChannelStream, tokenSource); } // this is called via reflection using the `_sendIAsyncStreamItemsMethod` field @@ -760,11 +760,14 @@ async Task ReadAsyncEnumerableStream() } } - return CommonStreaming(connectionState, streamId, ReadAsyncEnumerableStream); + return CommonStreaming(connectionState, streamId, ReadAsyncEnumerableStream, tokenSource); } - private async Task CommonStreaming(ConnectionState connectionState, string streamId, Func createAndConsumeStream) + private async Task CommonStreaming(ConnectionState connectionState, string streamId, Func createAndConsumeStream, CancellationTokenSource cts) { + // make sure we dispose the CTS created by StreamAsyncCore once streaming completes + using var _ = cts; + Log.StartingStream(_logger, streamId); string? responseError = null; try From 97956e17688a7bc6a2958da867de5e1032e024eb Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 10 Oct 2023 14:41:57 -0700 Subject: [PATCH 091/128] Update baseline, SDK --- eng/Baseline.Designer.props | 444 ++++++++++++++++++------------------ eng/Baseline.xml | 214 ++++++++--------- eng/Versions.props | 2 +- global.json | 4 +- 4 files changed, 332 insertions(+), 332 deletions(-) diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 0b962449d9f1..0ca47e957b58 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,28 +2,28 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - - + + + @@ -34,120 +34,120 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 @@ -155,114 +155,114 @@ - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - - - + + + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - + + @@ -270,7 +270,7 @@ - 6.0.22 + 6.0.23 @@ -278,50 +278,50 @@ - 6.0.22 + 6.0.23 - + - + - + - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - - + + @@ -331,8 +331,8 @@ - - + + @@ -340,8 +340,8 @@ - - + + @@ -352,58 +352,58 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 @@ -411,71 +411,71 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 @@ -491,195 +491,195 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - - + + - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - - + + - - + + - - + + - 6.0.22 + 6.0.23 - - + + - - + + - - + + - - + + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - - - - + + + + - 6.0.22 + 6.0.23 @@ -688,69 +688,69 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 @@ -769,7 +769,7 @@ - 6.0.22 + 6.0.23 @@ -788,7 +788,7 @@ - 6.0.22 + 6.0.23 @@ -804,46 +804,46 @@ - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - - - + + + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 @@ -853,7 +853,7 @@ - 6.0.22 + 6.0.23 @@ -862,73 +862,73 @@ - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - + - + - + - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 @@ -957,11 +957,11 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 @@ -979,13 +979,13 @@ - 6.0.22 + 6.0.23 - 6.0.22 + 6.0.23 - + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 2984eef6c6e4..749cc484d04a 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,111 +4,111 @@ This file contains a list of all the packages and their versions which were rele Update this list when preparing for a new patch. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index 2635b6b431f9..2186c0e1d1eb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,7 +9,7 @@ 6 0 24 - false + true diff --git a/global.json b/global.json index 4cc2acb633b1..83661f95122b 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.122" + "version": "6.0.123" }, "tools": { - "dotnet": "6.0.122", + "dotnet": "6.0.123", "runtimes": { "dotnet/x64": [ "2.1.30", From 1dac04de588f512c4d88ccc0c1d93ed74e720300 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Thu, 12 Oct 2023 18:14:55 +0000 Subject: [PATCH 092/128] Update dependencies from https://github.com/dotnet/arcade build 20231011.8 (#51329) [release/6.0] Update dependencies from dotnet/arcade --- NuGet.config | 12 +++--- eng/Version.Details.xml | 16 ++++---- eng/Versions.props | 4 +- eng/common/retain-build.ps1 | 45 +++++++++++++++++++++ eng/common/templates/steps/retain-build.yml | 28 +++++++++++++ global.json | 4 +- 6 files changed, 91 insertions(+), 18 deletions(-) create mode 100644 eng/common/retain-build.ps1 create mode 100644 eng/common/templates/steps/retain-build.yml diff --git a/NuGet.config b/NuGet.config index d37b12d22a3c..408f809f462b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -5,11 +5,11 @@ + + + - - - @@ -27,11 +27,11 @@ - - - + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 86b6b375a58b..a94b8356c283 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -280,22 +280,22 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 - + https://github.com/dotnet/arcade - 98fd22588fbb0f407faa6a74cb1aa79031306151 + 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 - + https://github.com/dotnet/arcade - 98fd22588fbb0f407faa6a74cb1aa79031306151 + 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 - + https://github.com/dotnet/arcade - 98fd22588fbb0f407faa6a74cb1aa79031306151 + 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 - + https://github.com/dotnet/arcade - 98fd22588fbb0f407faa6a74cb1aa79031306151 + 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 diff --git a/eng/Versions.props b/eng/Versions.props index 2186c0e1d1eb..d20d7a658d46 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,8 +131,8 @@ 6.0.23 6.0.23 - 6.0.0-beta.23408.5 - 6.0.0-beta.23408.5 + 6.0.0-beta.23511.8 + 6.0.0-beta.23511.8 + + - + @@ -25,9 +27,11 @@ - + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 3e5e74df7c07..f4ef4a82883a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 8a56239985565dd10bd1c7a62c848d15d4474f7b + 301a5c190943bb62e8e783a29976059ac2e6ea9c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 16d5954780b5..f1a18c9e5a91 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 6.0.0-beta.23408.5 6.0.0-beta.23408.5 From 8e60e0f27c8a5c9b9f4ce423cd8d60485f6ed6ae Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 17 Oct 2023 00:00:17 +0000 Subject: [PATCH 094/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 10 ++-------- eng/Version.Details.xml | 28 ++++++++++++++-------------- eng/Versions.props | 14 +++++++------- 3 files changed, 23 insertions(+), 29 deletions(-) diff --git a/NuGet.config b/NuGet.config index 408f809f462b..8e5616ad2011 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,7 @@ - - - - + @@ -29,10 +26,7 @@ - - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a94b8356c283..f6f9e0eeee50 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - e0f0de876a67755a2c6cd2dc730c13f5959bdea8 + 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 diff --git a/eng/Versions.props b/eng/Versions.props index d20d7a658d46..96291ad23966 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23-servicing.23480.2 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24-servicing.23516.12 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.23-servicing.23480.2 + 6.0.24-servicing.23516.12 6.0.1 6.0.0 6.0.2 From 2dc4c74371570fe201a9cc6194b07ec2daabcf86 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 17 Oct 2023 04:38:51 +0000 Subject: [PATCH 095/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 8e5616ad2011..f159d233fa69 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f6f9e0eeee50..adf69a1fd576 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 9cfaa835e9d761a3433687d004c416e0f2b4f2a6 + 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f diff --git a/eng/Versions.props b/eng/Versions.props index 96291ad23966..83e266fb1fe8 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.24 6.0.24 6.0.24 - 6.0.24-servicing.23516.12 + 6.0.24-servicing.23516.20 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.24-servicing.23516.12 + 6.0.24-servicing.23516.20 6.0.1 6.0.0 6.0.2 From caada2338902a9524eb87fdab853eba77db52974 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 17 Oct 2023 09:52:08 +0000 Subject: [PATCH 096/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 22 +++++++++++----------- eng/Versions.props | 6 +++--- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/NuGet.config b/NuGet.config index f159d233fa69..2203d82b14cc 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index adf69a1fd576..57ecbbb3882b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -233,9 +233,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - c76ac565499f3e7c657126d46c00b67a0d74832c + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://github.com/dotnet/runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 206ffb172ce82b8815f6c6cc6d8ec991cdf34d8f + cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd diff --git a/eng/Versions.props b/eng/Versions.props index 83e266fb1fe8..be8559f12092 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.24 6.0.24 6.0.24 - 6.0.24-servicing.23516.20 + 6.0.24-servicing.23516.31 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.24-servicing.23516.20 + 6.0.24-servicing.23516.31 6.0.1 6.0.0 6.0.2 @@ -117,7 +117,7 @@ 6.0.1 6.0.1 6.0.0 - 6.0.8 + 6.0.9 6.0.0 6.0.11 From c81c53cd507ae3699ef60e6a02be0b1984d00452 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 18 Oct 2023 06:06:39 +0000 Subject: [PATCH 097/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/NuGet.config b/NuGet.config index 2203d82b14cc..e703fa482bb4 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 57ecbbb3882b..1f63cdbf5a90 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -235,7 +235,7 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://github.com/dotnet/runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - cb5bcd2b394eaf9f079b67ab980e193e1d1ccadd + 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 diff --git a/eng/Versions.props b/eng/Versions.props index be8559f12092..4112fa5aa552 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.24 6.0.24 6.0.24 - 6.0.24-servicing.23516.31 + 6.0.24-servicing.23517.17 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.24-servicing.23516.31 + 6.0.24-servicing.23517.17 6.0.1 6.0.0 6.0.2 From 9f5e433f881aea5968fc5a9acb2c5131f3956794 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 19 Oct 2023 06:42:17 +0000 Subject: [PATCH 098/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 30 +++++++++++++++--------------- eng/Versions.props | 14 +++++++------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/NuGet.config b/NuGet.config index e703fa482bb4..89f9578cdf0b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1f63cdbf5a90..a4b1d9b13864 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -235,7 +235,7 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c https://github.com/dotnet/runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 5f9d5a6664bfe9bf832babe09b13a475b9e7f479 + d7b9518372d8e9988e62154d73453e7df508df2c diff --git a/eng/Versions.props b/eng/Versions.props index 4112fa5aa552..999071ab1575 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24-servicing.23517.17 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25-servicing.23518.22 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.24-servicing.23517.17 + 6.0.25-servicing.23518.22 6.0.1 6.0.0 6.0.2 From d025c79968d63df02830f9b9914707db4d9f02d5 Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Thu, 19 Oct 2023 10:33:35 -0700 Subject: [PATCH 099/128] Update branding to 6.0.25 (#51478) --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index d20d7a658d46..89520a167dce 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,8 +8,8 @@ 6 0 - 24 - true + 25 + false From ad15e08a98e1d3697d4577631c6ffc1bfb07e904 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Fri, 20 Oct 2023 04:15:13 +0000 Subject: [PATCH 100/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 4 ++-- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/NuGet.config b/NuGet.config index 89f9578cdf0b..8b9bbf7244d2 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -26,7 +26,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a4b1d9b13864..0b56617c933e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -235,7 +235,7 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://github.com/dotnet/runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - d7b9518372d8e9988e62154d73453e7df508df2c + 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 diff --git a/eng/Versions.props b/eng/Versions.props index cc056108ef85..157bc9422314 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.25 6.0.25 6.0.25 - 6.0.25-servicing.23518.22 + 6.0.25-servicing.23519.12 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.25-servicing.23518.22 + 6.0.25-servicing.23519.12 6.0.1 6.0.0 6.0.2 From b00de4a0a9af86be6fc4891431d5c75cbe81bc37 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Mon, 23 Oct 2023 18:00:36 +0000 Subject: [PATCH 101/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-efcore build 20231012.12 dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 6.0.23 -> To Version 6.0.24 --- NuGet.config | 2 ++ eng/Version.Details.xml | 48 ++++++++++++++++++++--------------------- eng/Versions.props | 16 +++++++------- 3 files changed, 34 insertions(+), 32 deletions(-) diff --git a/NuGet.config b/NuGet.config index 8b9bbf7244d2..5b7e24d92a99 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,6 +7,7 @@ + @@ -24,6 +25,7 @@ + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0b56617c933e..14e364efe3cf 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c - - https://github.com/dotnet/efcore - 50a6896cca24b06e154bdf652c2e7aefd0dfb7a1 + + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore + 301a5c190943bb62e8e783a29976059ac2e6ea9c https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 157bc9422314..96593db462a5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 - 6.0.23 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 + 6.0.24 6.0.0-beta.23511.8 6.0.0-beta.23511.8 From 813d42072c04dd128265b4b64800bf7c2b83f07a Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Mon, 23 Oct 2023 19:48:20 +0000 Subject: [PATCH 102/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-efcore build 20231023.12 dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 6.0.24 -> To Version 6.0.25 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/NuGet.config b/NuGet.config index 5b7e24d92a99..080af6f8c196 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 14e364efe3cf..50a71707b430 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 301a5c190943bb62e8e783a29976059ac2e6ea9c + ebac2284d2825218fa91c188a3f428f244aa6fe3 https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 96593db462a5..b5bf1899ea21 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 - 6.0.24 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 + 6.0.25 6.0.0-beta.23511.8 6.0.0-beta.23511.8 From 8c700991c0e38fc14340f38546c5c9f1d39762f4 Mon Sep 17 00:00:00 2001 From: vseanreesermsft <78103370+vseanreesermsft@users.noreply.github.com> Date: Wed, 8 Nov 2023 11:20:54 -0800 Subject: [PATCH 103/128] Update branding to 6.0.26 (#51916) --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 89520a167dce..39e001c9bc8e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,7 +8,7 @@ 6 0 - 25 + 26 false + 1.10.2 0.9.9 0.13.0 4.2.1 diff --git a/src/Caching/SqlServer/src/Microsoft.Extensions.Caching.SqlServer.csproj b/src/Caching/SqlServer/src/Microsoft.Extensions.Caching.SqlServer.csproj index d879154fed0e..596b70a8afc5 100644 --- a/src/Caching/SqlServer/src/Microsoft.Extensions.Caching.SqlServer.csproj +++ b/src/Caching/SqlServer/src/Microsoft.Extensions.Caching.SqlServer.csproj @@ -20,6 +20,7 @@ + diff --git a/src/Tools/dotnet-sql-cache/src/dotnet-sql-cache.csproj b/src/Tools/dotnet-sql-cache/src/dotnet-sql-cache.csproj index ca9fb454c381..91c5ec3c5fe4 100644 --- a/src/Tools/dotnet-sql-cache/src/dotnet-sql-cache.csproj +++ b/src/Tools/dotnet-sql-cache/src/dotnet-sql-cache.csproj @@ -15,6 +15,7 @@ + From 0cb750da86eb7f78d2632c3a9d70f74549fa36a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 8 Nov 2023 17:29:45 -0800 Subject: [PATCH 109/128] [release/6.0] (deps): Bump src/submodules/googletest (#51800) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `e47544a` to `b10fad3`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/e47544ad31cb3ceecd04cc13e8fe556f8df9fe0b...b10fad38c4026a29ea6561ab15fc4818170d1c10) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/googletest b/src/submodules/googletest index e47544ad31cb..b10fad38c402 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit e47544ad31cb3ceecd04cc13e8fe556f8df9fe0b +Subproject commit b10fad38c4026a29ea6561ab15fc4818170d1c10 From 5af738e9fa3e9ef7aacaa7571199f90666767192 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Tue, 14 Nov 2023 12:52:56 -0800 Subject: [PATCH 110/128] Update baseline, SDK --- eng/Baseline.Designer.props | 452 ++++++++++++++++++------------------ eng/Baseline.xml | 214 ++++++++--------- eng/Versions.props | 2 +- global.json | 4 +- 4 files changed, 336 insertions(+), 336 deletions(-) diff --git a/eng/Baseline.Designer.props b/eng/Baseline.Designer.props index 0ca47e957b58..cf3e083029dc 100644 --- a/eng/Baseline.Designer.props +++ b/eng/Baseline.Designer.props @@ -2,28 +2,28 @@ $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - - + + + @@ -34,120 +34,120 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 @@ -155,114 +155,114 @@ - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - - - + + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - + + @@ -270,7 +270,7 @@ - 6.0.23 + 6.0.25 @@ -278,50 +278,50 @@ - 6.0.23 + 6.0.25 - + - + - + - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - - + + @@ -331,8 +331,8 @@ - - + + @@ -340,8 +340,8 @@ - - + + @@ -352,58 +352,58 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 @@ -411,71 +411,71 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - + - + - + - 6.0.23 + 6.0.25 - - + + - + - - + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 @@ -491,195 +491,195 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - - + + - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - - + + - - + + - - + + - 6.0.23 + 6.0.25 - - + + - - + + - - + + - - + + - 6.0.23 + 6.0.25 - + - + - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - - - - + + + + - 6.0.23 + 6.0.25 @@ -688,69 +688,69 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 @@ -769,7 +769,7 @@ - 6.0.23 + 6.0.25 @@ -788,7 +788,7 @@ - 6.0.23 + 6.0.25 @@ -804,46 +804,46 @@ - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - - - + + + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 @@ -853,7 +853,7 @@ - 6.0.23 + 6.0.25 @@ -862,73 +862,73 @@ - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - + - + - + - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 @@ -957,11 +957,11 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 @@ -979,13 +979,13 @@ - 6.0.23 + 6.0.25 - 6.0.23 + 6.0.25 - + \ No newline at end of file diff --git a/eng/Baseline.xml b/eng/Baseline.xml index 749cc484d04a..9bd93a3db1af 100644 --- a/eng/Baseline.xml +++ b/eng/Baseline.xml @@ -4,111 +4,111 @@ This file contains a list of all the packages and their versions which were rele Update this list when preparing for a new patch. --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/eng/Versions.props b/eng/Versions.props index ce912efb6bed..529ac6f4cff3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -9,7 +9,7 @@ 6 0 26 - false + true diff --git a/global.json b/global.json index 2b186f5181df..3e59677b4a00 100644 --- a/global.json +++ b/global.json @@ -1,9 +1,9 @@ { "sdk": { - "version": "6.0.123" + "version": "6.0.125" }, "tools": { - "dotnet": "6.0.123", + "dotnet": "6.0.125", "runtimes": { "dotnet/x64": [ "2.1.30", From 6eb06cce37be67059bbf3e5c7ee6cb54829c3522 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 15 Nov 2023 01:48:43 +0000 Subject: [PATCH 111/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-efcore --- NuGet.config | 8 ++++++-- eng/Version.Details.xml | 32 ++++++++++++++++---------------- eng/Versions.props | 16 ++++++++-------- 3 files changed, 30 insertions(+), 26 deletions(-) diff --git a/NuGet.config b/NuGet.config index 080af6f8c196..457083d2fdfe 100644 --- a/NuGet.config +++ b/NuGet.config @@ -5,9 +5,11 @@ + + - + @@ -25,9 +27,11 @@ - + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 50a71707b430..a3de7611b28a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,37 +9,37 @@ --> - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b - + https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - ebac2284d2825218fa91c188a3f428f244aa6fe3 + 6eb9da7723d4b08287ca8d60c75317c08a2dd89b https://github.com/dotnet/runtime diff --git a/eng/Versions.props b/eng/Versions.props index 529ac6f4cff3..dc13d4782a45 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -122,14 +122,14 @@ 6.0.11 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 6.0.0-beta.23511.8 6.0.0-beta.23511.8 From d27f52b0aa462b713f1e3eb1d5a072fc87a5d45e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 21:09:29 +0000 Subject: [PATCH 112/128] Update dependencies from https://github.com/dotnet/arcade build 20231017.3 (#52226) [release/6.0] Update dependencies from dotnet/arcade --- NuGet.config | 4 ---- eng/Version.Details.xml | 16 ++++++++-------- eng/Versions.props | 4 ++-- global.json | 4 ++-- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/NuGet.config b/NuGet.config index 080af6f8c196..1e2458c409ad 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,8 @@ - - @@ -25,10 +23,8 @@ - - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 50a71707b430..b7759757683c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -280,22 +280,22 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime 0545d9fd7d80e0e8eaaff87aa0011ad5bc13fcc8 - + https://github.com/dotnet/arcade - 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 + 7c67805da0adbf4e72f2f4799b63efcf1cc8fe4c - + https://github.com/dotnet/arcade - 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 + 7c67805da0adbf4e72f2f4799b63efcf1cc8fe4c - + https://github.com/dotnet/arcade - 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 + 7c67805da0adbf4e72f2f4799b63efcf1cc8fe4c - + https://github.com/dotnet/arcade - 06ccd9430e2e3bd29a381a5b27e7976d11b0ed18 + 7c67805da0adbf4e72f2f4799b63efcf1cc8fe4c diff --git a/eng/Versions.props b/eng/Versions.props index 529ac6f4cff3..048f9e1a1662 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -131,8 +131,8 @@ 6.0.25 6.0.25 - 6.0.0-beta.23511.8 - 6.0.0-beta.23511.8 + 6.0.0-beta.23517.3 + 6.0.0-beta.23517.3 - - - + @@ -30,9 +28,7 @@ - - - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a3de7611b28a..cd4191b54be6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -245,33 +245,33 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 492abbeef0d8a6ea902ac8f90ed339c7b1d18bf4 + f1697b9e74e8832a2bd9ce8e48b27c9546e02adf diff --git a/eng/Versions.props b/eng/Versions.props index dc13d4782a45..c611687c53d5 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -63,12 +63,12 @@ 6.0.0 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25 - 6.0.25-servicing.23519.12 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26 + 6.0.26-servicing.23565.9 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.25-servicing.23519.12 + 6.0.26-servicing.23565.9 6.0.1 6.0.0 6.0.2 From 8ebb7f05aff6fbbc5a3b6c7c4b319d725a640936 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Mon, 20 Nov 2023 21:28:47 +0000 Subject: [PATCH 114/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-efcore build 20231120.13 dotnet-ef , Microsoft.EntityFrameworkCore , Microsoft.EntityFrameworkCore.Design , Microsoft.EntityFrameworkCore.InMemory , Microsoft.EntityFrameworkCore.Relational , Microsoft.EntityFrameworkCore.Sqlite , Microsoft.EntityFrameworkCore.SqlServer , Microsoft.EntityFrameworkCore.Tools From Version 6.0.26 -> To Version 6.0.26 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/NuGet.config b/NuGet.config index 85d9fe7d440f..701cc4197b3a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -7,7 +7,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index cd4191b54be6..ec524ded3999 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -11,35 +11,35 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://dev.azure.com/dnceng/internal/_git/dotnet-efcore - 6eb9da7723d4b08287ca8d60c75317c08a2dd89b + b254074a09b0021d472383ea15b3bb703eae3ee3 https://github.com/dotnet/runtime From 8d93d21aec94232ecba81e9752720985c8971bc0 Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Mon, 20 Nov 2023 22:55:55 +0000 Subject: [PATCH 115/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20231120.14 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 From Version 6.0.26-servicing.23565.9 -> To Version 6.0.26-servicing.23570.14 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 701cc4197b3a..7e57bf4da4c0 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index ec524ded3999..df11cee3df3b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - f1697b9e74e8832a2bd9ce8e48b27c9546e02adf + 88c49c921704ba9cc603f167fc09fa2a79cebb63 diff --git a/eng/Versions.props b/eng/Versions.props index c611687c53d5..a86b091815b1 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23565.9 + 6.0.26-servicing.23570.14 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23565.9 + 6.0.26-servicing.23570.14 6.0.1 6.0.0 6.0.2 From 1136a4b0aa533cd22ec670e0e3270f58eb391e69 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Wed, 22 Nov 2023 16:11:51 +0000 Subject: [PATCH 116/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 7e57bf4da4c0..82789d011a2a 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index df11cee3df3b..aaaa2ab8371a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 88c49c921704ba9cc603f167fc09fa2a79cebb63 + 40bd47545ee42f9ca95d738351eb675edfea3858 diff --git a/eng/Versions.props b/eng/Versions.props index a86b091815b1..03c8c71e9a77 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23570.14 + 6.0.26-servicing.23571.26 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23570.14 + 6.0.26-servicing.23571.26 6.0.1 6.0.0 6.0.2 From ddae5e05877241ab82bbe8c162a6c778327a7e10 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 23 Nov 2023 03:59:11 +0000 Subject: [PATCH 117/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 82789d011a2a..f817759b37c9 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index aaaa2ab8371a..073f0a3e23eb 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 40bd47545ee42f9ca95d738351eb675edfea3858 + 821d21b8891ee470a36b2f7fb51e952ff0833c7c diff --git a/eng/Versions.props b/eng/Versions.props index 03c8c71e9a77..43d1045ac832 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23571.26 + 6.0.26-servicing.23572.13 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23571.26 + 6.0.26-servicing.23572.13 6.0.1 6.0.0 6.0.2 From b42ee9d653b5d95bd2561a95e19db90dd3ed29f1 Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Thu, 23 Nov 2023 08:25:45 +0000 Subject: [PATCH 118/128] [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index f817759b37c9..05d854300154 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 073f0a3e23eb..05740c20d9ce 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 821d21b8891ee470a36b2f7fb51e952ff0833c7c + 28b24e5d69b243e93dcb927ffa2013511ea03d8f diff --git a/eng/Versions.props b/eng/Versions.props index 43d1045ac832..d60e4df18e5e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23572.13 + 6.0.26-servicing.23572.23 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23572.13 + 6.0.26-servicing.23572.23 6.0.1 6.0.0 6.0.2 From 23e348cd9a35f42892e2eb22d90cf656d1f3c92c Mon Sep 17 00:00:00 2001 From: DotNet-Bot Date: Thu, 23 Nov 2023 10:04:32 +0000 Subject: [PATCH 119/128] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-runtime build 20231122.29 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 From Version 6.0.26-servicing.23572.23 -> To Version 6.0.26-servicing.23572.29 --- NuGet.config | 4 ++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index 05d854300154..c89ea15d458b 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,7 @@ - + @@ -28,7 +28,7 @@ - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 05740c20d9ce..fb1c0eed695a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 28b24e5d69b243e93dcb927ffa2013511ea03d8f + 965a793efc765ddbea3c43e43c13b8e956b61946 diff --git a/eng/Versions.props b/eng/Versions.props index d60e4df18e5e..64b68ed34897 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23572.23 + 6.0.26-servicing.23572.29 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23572.23 + 6.0.26-servicing.23572.29 6.0.1 6.0.0 6.0.2 From 00f7c0edf759ec4fa22094a1571b1b1530ffe183 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Mon, 27 Nov 2023 18:55:36 +0000 Subject: [PATCH 120/128] Merged PR 35424: Update IdentityModel to 6.34.0 --- eng/Versions.props | 8 ++++---- .../clients/csharp/Client/test/FunctionalTests/Startup.cs | 3 ++- src/SignalR/clients/ts/FunctionalTests/Startup.cs | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 64b68ed34897..c8b6d352257a 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,16 +196,16 @@ 3.3.0 1.1.1-beta1.21413.1 1.0.0-20200708.1 - 6.10.0 - 6.10.0 - 6.10.0 + 6.34.0 + 6.34.0 + 6.34.0 2.2.1 1.0.1 3.0.1 3.0.1 11.1.0 1.4.0 - 6.10.0 + 6.34.0 6.0.5 6.0.5 6.0.5 diff --git a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs index edba459c3d2c..c92789e99dce 100644 --- a/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs +++ b/src/SignalR/clients/csharp/Client/test/FunctionalTests/Startup.cs @@ -5,6 +5,7 @@ using System.IdentityModel.Tokens.Jwt; using System.IO; using System.Security.Claims; +using System.Security.Cryptography; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Builder; @@ -20,7 +21,7 @@ namespace Microsoft.AspNetCore.SignalR.Client.FunctionalTests { public class Startup { - private readonly SymmetricSecurityKey SecurityKey = new SymmetricSecurityKey(Guid.NewGuid().ToByteArray()); + private readonly SymmetricSecurityKey SecurityKey = new SymmetricSecurityKey(SHA256.HashData(Guid.NewGuid().ToByteArray())); private readonly JwtSecurityTokenHandler JwtTokenHandler = new JwtSecurityTokenHandler(); public void ConfigureServices(IServiceCollection services) diff --git a/src/SignalR/clients/ts/FunctionalTests/Startup.cs b/src/SignalR/clients/ts/FunctionalTests/Startup.cs index a794858d63c6..f40d5de008ca 100644 --- a/src/SignalR/clients/ts/FunctionalTests/Startup.cs +++ b/src/SignalR/clients/ts/FunctionalTests/Startup.cs @@ -6,6 +6,7 @@ using System.IO; using System.Reflection; using System.Security.Claims; +using System.Security.Cryptography; using System.Threading; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication.JwtBearer; @@ -30,7 +31,7 @@ namespace FunctionalTests { public class Startup { - private readonly SymmetricSecurityKey SecurityKey = new SymmetricSecurityKey(Guid.NewGuid().ToByteArray()); + private readonly SymmetricSecurityKey SecurityKey = new SymmetricSecurityKey(SHA256.HashData(Guid.NewGuid().ToByteArray())); private readonly JwtSecurityTokenHandler JwtTokenHandler = new JwtSecurityTokenHandler(); private int _numRedirects; From 1450caeedbbcbc4019a79b328b98ceb344ee6593 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Mon, 27 Nov 2023 22:47:41 +0100 Subject: [PATCH 121/128] [Blazor] Update MSBuild targets so they get imported correctly (6.0). (#52260) ## Issue: Microsoft.AspNetCore.Components.WebView.props is not imported by Maui applications This issue pertains to the non-importation of Microsoft.AspNetCore.Components.WebView.props by Maui applications. The file has been relocated within the package to ensure its correct pickup and importation during the restore/build process. Fixes #42348. ## Description The inability of Maui applications to rely on JavaScript (JS) initializers, particularly in the case of Fluent UI, is impacted by this issue. The runtime searches for the initializer's definition in a specific location, which is configured in the props file of the package. ## Impact on Customers The malfunction of JS initializers in Blazor Hybrid has significant implications for both library authors and end users. Library authors may find their libraries' functionality restricted due to this bug. JS initializers, a feature in Blazor, enable library authors to inject scripts onto the page at the start of the app. These scripts can augment functionality, enhance user interfaces, or facilitate third-party service integration. For instance, a library author might employ a JS initializer to inject a script that integrates with a mapping service, thereby providing real-time location updates within a Blazor app. This functionality would be unavailable in Blazor Hybrid apps due to this bug. End users may be unable to use certain libraries, or those libraries may not function as anticipated in Blazor Hybrid apps. If a user were to use a Blazor Hybrid app that relies on the aforementioned mapping library, they would not receive the real-time location updates that they would in a regular Blazor app. This could result in an inferior user experience, and in some cases, render the app unusable. Users and library authors are compelled to manually inject the script onto the page, and some functionality (like configuring Blazor before it starts) is not available in this mode. ## Regression? - [ ] Yes - [X] No ## Risk - [ ] High - [ ] Medium - [X] Low The failure to load a file from a NuGet package impacts the build. The change causes the file to load at build time, enabling the rest of the pipeline to function as expected. ## Verification - [X] Manual (required) - [ ] Automated The changes were made locally on the package cache and ensured the file got imported. ## Packaging changes reviewed? - [ ] Yes - [ ] No - [x] N/A ## When servicing release/2.1 - [ ] Make necessary changes in eng/PatchConfig.props --- .../testassets/PhotinoTestApp/PhotinoTestApp.csproj | 2 +- .../WebView/src/Microsoft.AspNetCore.Components.WebView.csproj | 2 +- .../Microsoft.AspNetCore.Components.WebView.props | 0 .../Microsoft.AspNetCore.Components.WebView.props | 3 +++ .../Microsoft.AspNetCore.Components.WebView.props | 3 +++ 5 files changed, 8 insertions(+), 2 deletions(-) rename src/Components/WebView/WebView/src/{buildTransitive/any => build}/Microsoft.AspNetCore.Components.WebView.props (100%) create mode 100644 src/Components/WebView/WebView/src/buildMultiTargeting/Microsoft.AspNetCore.Components.WebView.props create mode 100644 src/Components/WebView/WebView/src/buildTransitive/Microsoft.AspNetCore.Components.WebView.props diff --git a/src/Components/WebView/Samples/PhotinoPlatform/testassets/PhotinoTestApp/PhotinoTestApp.csproj b/src/Components/WebView/Samples/PhotinoPlatform/testassets/PhotinoTestApp/PhotinoTestApp.csproj index 2e581d2a73f9..009fa65b06dc 100644 --- a/src/Components/WebView/Samples/PhotinoPlatform/testassets/PhotinoTestApp/PhotinoTestApp.csproj +++ b/src/Components/WebView/Samples/PhotinoPlatform/testassets/PhotinoTestApp/PhotinoTestApp.csproj @@ -7,7 +7,7 @@ false - + diff --git a/src/Components/WebView/WebView/src/Microsoft.AspNetCore.Components.WebView.csproj b/src/Components/WebView/WebView/src/Microsoft.AspNetCore.Components.WebView.csproj index 89f647db6b44..27133a706acb 100644 --- a/src/Components/WebView/WebView/src/Microsoft.AspNetCore.Components.WebView.csproj +++ b/src/Components/WebView/WebView/src/Microsoft.AspNetCore.Components.WebView.csproj @@ -33,7 +33,7 @@ - + diff --git a/src/Components/WebView/WebView/src/buildTransitive/any/Microsoft.AspNetCore.Components.WebView.props b/src/Components/WebView/WebView/src/build/Microsoft.AspNetCore.Components.WebView.props similarity index 100% rename from src/Components/WebView/WebView/src/buildTransitive/any/Microsoft.AspNetCore.Components.WebView.props rename to src/Components/WebView/WebView/src/build/Microsoft.AspNetCore.Components.WebView.props diff --git a/src/Components/WebView/WebView/src/buildMultiTargeting/Microsoft.AspNetCore.Components.WebView.props b/src/Components/WebView/WebView/src/buildMultiTargeting/Microsoft.AspNetCore.Components.WebView.props new file mode 100644 index 000000000000..1a28c40b8013 --- /dev/null +++ b/src/Components/WebView/WebView/src/buildMultiTargeting/Microsoft.AspNetCore.Components.WebView.props @@ -0,0 +1,3 @@ + + + diff --git a/src/Components/WebView/WebView/src/buildTransitive/Microsoft.AspNetCore.Components.WebView.props b/src/Components/WebView/WebView/src/buildTransitive/Microsoft.AspNetCore.Components.WebView.props new file mode 100644 index 000000000000..1a28c40b8013 --- /dev/null +++ b/src/Components/WebView/WebView/src/buildTransitive/Microsoft.AspNetCore.Components.WebView.props @@ -0,0 +1,3 @@ + + + From 06bce6c59fc2bd3f7a5831d017105ed17370b302 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Mon, 27 Nov 2023 14:34:59 -0800 Subject: [PATCH 122/128] Include oauth package for openid connect. refs JIT-95035 --- pack-list.txt | 1 + pack.sh.txt | 3 ++- .../OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/pack-list.txt b/pack-list.txt index d43b5876311f..6e02de90e9b7 100644 --- a/pack-list.txt +++ b/pack-list.txt @@ -2,6 +2,7 @@ Microsoft.AspNetCore.Antiforgery.csproj Microsoft.AspNetCore.Authentication.Abstractions.csproj Microsoft.AspNetCore.Authentication.Cookies.csproj Microsoft.AspNetCore.Authentication.Core.csproj +Microsoft.AspNetCore.Authentication.OAuth.csproj Microsoft.AspNetCore.Authentication.csproj Microsoft.AspNetCore.Authorization.csproj Microsoft.AspNetCore.Authorization.Policy.csproj diff --git a/pack.sh.txt b/pack.sh.txt index 014ae85a6294..491cf40dd8d8 100644 --- a/pack.sh.txt +++ b/pack.sh.txt @@ -1,6 +1,6 @@ #! /bin/zsh -set -e +set -e (cd src/Servers/Kestrel && dotnet pack ./Kestrel.slnf) @@ -8,6 +8,7 @@ dotnet pack **/Microsoft.AspNetCore.Authentication.csproj dotnet pack **/Microsoft.AspNetCore.Authentication.Abstractions.csproj dotnet pack **/Microsoft.AspNetCore.Authentication.Cookies.csproj dotnet pack **/Microsoft.AspNetCore.Authentication.Core.csproj +dotnet pack **/Microsoft.AspNetCore.Authentication.OAuth.csproj dotnet pack **/Microsoft.AspNetCore.Authorization.csproj dotnet pack **/Microsoft.AspNetCore.CookiePolicy.csproj dotnet pack **/Microsoft.AspNetCore.Connections.Abstractions.csproj diff --git a/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj b/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj index c3e2e400e43c..cb55cec03974 100644 --- a/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj +++ b/src/Security/Authentication/OAuth/src/Microsoft.AspNetCore.Authentication.OAuth.csproj @@ -6,7 +6,7 @@ true true aspnetcore;authentication;security - false + true enable From cceda4a3e53484485b11076d8687506117f8a15e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 09:39:46 -0600 Subject: [PATCH 123/128] [release/6.0] (deps): Bump src/submodules/googletest (#52510) Bumps [src/submodules/googletest](https://github.com/google/googletest) from `b10fad3` to `76bb2af`. - [Release notes](https://github.com/google/googletest/releases) - [Commits](https://github.com/google/googletest/compare/b10fad38c4026a29ea6561ab15fc4818170d1c10...76bb2afb8b522d24496ad1c757a49784fbfa2e42) --- updated-dependencies: - dependency-name: src/submodules/googletest dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/googletest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/googletest b/src/submodules/googletest index b10fad38c402..76bb2afb8b52 160000 --- a/src/submodules/googletest +++ b/src/submodules/googletest @@ -1 +1 @@ -Subproject commit b10fad38c4026a29ea6561ab15fc4818170d1c10 +Subproject commit 76bb2afb8b522d24496ad1c757a49784fbfa2e42 From 3fcbb4e1ccc6d063f7fce7c9977698b809111758 Mon Sep 17 00:00:00 2001 From: Matt Mitchell Date: Fri, 1 Dec 2023 17:42:54 +0000 Subject: [PATCH 124/128] Merged PR 35732: Updated to 6.35.0 Update to 6.35.0 --- eng/Versions.props | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index 90ba717447ab..ac245a4cfbba 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -196,16 +196,16 @@ 3.3.0 1.1.1-beta1.21413.1 1.0.0-20200708.1 - 6.34.0 - 6.34.0 - 6.34.0 + 6.35.0 + 6.35.0 + 6.35.0 2.2.1 1.0.1 3.0.1 3.0.1 11.1.0 1.4.0 - 6.34.0 + 6.35.0 6.0.5 6.0.5 6.0.5 From 0a1f30991fd00e30ecdf6982b1ffbc1888acd4cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 13:20:10 -0600 Subject: [PATCH 125/128] [release/6.0] (deps): Bump src/submodules/spa-templates (#52509) Bumps [src/submodules/spa-templates](https://github.com/dotnet/spa-templates) from `99a804e` to `0e12deb`. - [Commits](https://github.com/dotnet/spa-templates/compare/99a804ec5b0984e7f12f9f7b3975ff9839ff8813...0e12deb491e59f72b47ff655f8274b17508174fc) --- updated-dependencies: - dependency-name: src/submodules/spa-templates dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/submodules/spa-templates | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/submodules/spa-templates b/src/submodules/spa-templates index 99a804ec5b09..0e12deb491e5 160000 --- a/src/submodules/spa-templates +++ b/src/submodules/spa-templates @@ -1 +1 @@ -Subproject commit 99a804ec5b0984e7f12f9f7b3975ff9839ff8813 +Subproject commit 0e12deb491e59f72b47ff655f8274b17508174fc From d504a7b7dab277712646747e9f5cce0d9507245e Mon Sep 17 00:00:00 2001 From: DotNet Bot Date: Tue, 5 Dec 2023 21:38:48 +0000 Subject: [PATCH 126/128] Merged PR 35825: [internal/release/6.0] Update dependencies from dnceng/internal/dotnet-runtime This pull request updates the following dependencies [marker]: <> (Begin:7745f62d-e15b-4ba3-39b3-08d960f4ca81) ## From https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - **Subscription**: 7745f62d-e15b-4ba3-39b3-08d960f4ca81 - **Build**: 20231205.8 - **Date Produced**: December 5, 2023 9:01:32 PM UTC - **Commit**: dc45e96840243b203b13e61952230e225d2aac52 - **Branch**: refs/heads/internal/release/6.0 [DependencyUpdate]: <> (Begin) - **Updates**: - **Microsoft.Internal.Runtime.AspNetCore.Transport**: [from 6.0.26-servicing.23572.29 to 6.0.26-servicing.23605.8][1] - **Microsoft.NET.Runtime.MonoAOTCompiler.Task**: [from 6.0.26 to 6.0.26][1] - **Microsoft.NET.Runtime.WebAssembly.Sdk**: [from 6.0.26 to 6.0.26][1] - **Microsoft.NETCore.App.Ref**: [from 6.0.26 to 6.0.26][1] - **Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm**: [from 6.0.26 to 6.0.26][1] - **Microsoft.NETCore.App.Runtime.win-x64**: [from 6.0.26 to 6.0.26][1] - **Microsoft.NETCore.BrowserDebugHost.Transport**: [from 6.0.26-servicing.23572.29 to 6.0.26-servicing.23605.8][1] [1]: https://dev.azure.com/dnceng/internal/_git/dotnet-runtime/branches?baseVersion=GC965a793efc&targetVersion=GCdc45e96840&_a=files [DependencyUpdate]: <> (End) [marker]: <> (End:7745f62d-e15b-4ba3-39b3-08d960f4ca81) --- NuGet.config | 6 ++++-- eng/Version.Details.xml | 18 +++++++++--------- eng/Versions.props | 4 ++-- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/NuGet.config b/NuGet.config index c89ea15d458b..d7bce1f454a5 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,10 +4,11 @@ - + + @@ -25,10 +26,11 @@ + - + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 84d28f989c4d..b4ff11e93636 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -177,9 +177,9 @@ https://github.com/dotnet/runtime 4822e3c3aa77eb82b2fb33c9321f923cf11ddde6 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime @@ -247,15 +247,15 @@ https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 - + https://dev.azure.com/dnceng/internal/_git/dotnet-runtime - 965a793efc765ddbea3c43e43c13b8e956b61946 + dc45e96840243b203b13e61952230e225d2aac52 diff --git a/eng/Versions.props b/eng/Versions.props index ac245a4cfbba..cf1677e177db 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -68,7 +68,7 @@ 6.0.26 6.0.26 6.0.26 - 6.0.26-servicing.23572.29 + 6.0.26-servicing.23605.8 6.0.0 6.0.1 6.0.0 @@ -103,7 +103,7 @@ 6.0.0 6.0.0 6.0.0 - 6.0.26-servicing.23572.29 + 6.0.26-servicing.23605.8 6.0.1 6.0.0 6.0.2 From 5a6e1c19a10c55cb1b79aac5d7c294ba10c93ba7 Mon Sep 17 00:00:00 2001 From: Preston Jennings Date: Tue, 6 Feb 2024 10:02:59 -0800 Subject: [PATCH 127/128] Add instructions for updating the fork. refs JIT-97707 --- README-VINYL.md | 84 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 README-VINYL.md diff --git a/README-VINYL.md b/README-VINYL.md new file mode 100644 index 000000000000..c48adac50bd7 --- /dev/null +++ b/README-VINYL.md @@ -0,0 +1,84 @@ +# AspNetCore for Vinyl offline mobile + +## Building Locally + +TODO: + +Ultimately I'm able to just do the following to build the project (from OSX): + +``` +./pack.ps1 +``` + +There are probably a few setup steps to run beforehand :-) + +## Sync New Upstream Version. + +In order to sync up with a new version of AspNetCore, run the following commands: + +### Create git branch + +Merge tag 'v6.0.25' into feature/JIT-96177 + +``` +git fetch upstream +git fetch upstream --tags +git merge v6.0.26 +``` + +There is usually a merge conflict in `global.json` as we update the file with the version of .net 6.0 installed locally. + +Now commit and push to github. + +### Create build + +Navigate to the github actions for the vinyl-aspnetcore repo and run "Vinyl Maui Build". +This will create the nuget packages for upload. + +## Uploading NuGet Packages to GitHub + +After creating the build, you'll need to push new nuget packages to the Jitterbit repository. +This allows them to be pulled down by nuget when creating an offline mobile build. + +### Set up github authentication key + +If you haven't set up a github authentication key for writing packages to the jitterbit repository, do this now. + +- Navigate to your settings +https://github.com/settings/profile +- Click Developer Settings +- Navigate to Personal Access Tokens > Tokens (classic) +- Generate a new token and include `repo, write:packages` permissions. +- Copy the generated key. +- Open (or create) the file `~/.nuget/NuGet/NuGet.Config` +- Add the following sections (merging with existing values if necessary) + +``` + + + + + + + + + + + + + + Date: Tue, 6 Feb 2024 15:22:40 -0800 Subject: [PATCH 128/128] Fix documentation. refs JIT-97707 --- README-VINYL.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README-VINYL.md b/README-VINYL.md index c48adac50bd7..eb3362bae92b 100644 --- a/README-VINYL.md +++ b/README-VINYL.md @@ -48,7 +48,7 @@ If you haven't set up a github authentication key for writing packages to the ji https://github.com/settings/profile - Click Developer Settings - Navigate to Personal Access Tokens > Tokens (classic) -- Generate a new token and include `repo, write:packages` permissions. +- Generate a new token and include `repo, write:packages` permissions. Make sure to perform SSO for your new token! - Copy the generated key. - Open (or create) the file `~/.nuget/NuGet/NuGet.Config` - Add the following sections (merging with existing values if necessary) @@ -61,14 +61,14 @@ https://github.com/settings/profile - + - +