From 122cc8916f5d1c5bb20b23de250704e30bf7933e Mon Sep 17 00:00:00 2001 From: martincostello Date: Sat, 9 Dec 2023 13:20:36 +0000 Subject: [PATCH 1/2] Update NuGet packages - Update NuGet packages to their latest versions while dependabot is unable to correctly do the updates. - Fix/suppress new SonarAnalyzer.CSharp warnings. --- .config/dotnet-tools.json | 2 +- Directory.Packages.props | 8 ++++---- src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs | 6 +++--- .../RateLimiterResiliencePipelineBuilderExtensions.cs | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 6d0fa3bb11f..9c8066d48dc 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -21,4 +21,4 @@ ] } } -} \ No newline at end of file +} diff --git a/Directory.Packages.props b/Directory.Packages.props index 55a6bc4908c..5b3afaff195 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -6,7 +6,7 @@ - + @@ -33,14 +33,14 @@ - + - - + + diff --git a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs index 82b3caac674..f4f8ef9943d 100644 --- a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs +++ b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs @@ -52,7 +52,9 @@ private void TryRegisterOnReload() return; } +#pragma warning disable S3878 // Arrays should not be created for params parameters _tokenSource = CancellationTokenSource.CreateLinkedTokenSource([.. _reloadTokens]); +#pragma warning restore S3878 // Arrays should not be created for params parameters _registration = _tokenSource.Token.Register(() => { var context = ResilienceContextPool.Shared.Get().Initialize(isSynchronous: true); @@ -93,20 +95,18 @@ private async Task DisposeDiscardedComponentSafeAsync(PipelineComponent componen ResilienceContextPool.Shared.Return(context); } -#pragma warning disable S2952 // Classes should "Dispose" of members from the classes' own "Dispose" methods private void DisposeRegistration() { _registration.Dispose(); _tokenSource.Dispose(); } -#pragma warning restore S2952 // Classes should "Dispose" of members from the classes' own "Dispose" methods internal record ReloadFailedArguments(Exception Exception); internal record DisposedFailedArguments(Exception Exception); #pragma warning disable S2094 // Classes should not be empty - internal record OnReloadArguments(); + internal record OnReloadArguments; #pragma warning restore S2094 // Classes should not be empty internal record Entry(PipelineComponent Component, List ReloadTokens, ResilienceStrategyTelemetry Telemetry); diff --git a/src/Polly.RateLimiting/RateLimiterResiliencePipelineBuilderExtensions.cs b/src/Polly.RateLimiting/RateLimiterResiliencePipelineBuilderExtensions.cs index 994b81d9192..1006684bb10 100644 --- a/src/Polly.RateLimiting/RateLimiterResiliencePipelineBuilderExtensions.cs +++ b/src/Polly.RateLimiting/RateLimiterResiliencePipelineBuilderExtensions.cs @@ -79,7 +79,7 @@ public static TBuilder AddRateLimiter( return builder.AddRateLimiter(new RateLimiterStrategyOptions { - RateLimiter = args => limiter.AcquireAsync(1, args.Context.CancellationToken), + RateLimiter = args => limiter.AcquireAsync(cancellationToken: args.Context.CancellationToken), }); } @@ -115,7 +115,7 @@ public static TBuilder AddRateLimiter( { var defaultLimiter = new ConcurrencyLimiter(options.DefaultRateLimiterOptions); wrapper = new DisposeWrapper(defaultLimiter); - limiter = args => defaultLimiter.AcquireAsync(1, args.Context.CancellationToken); + limiter = args => defaultLimiter.AcquireAsync(cancellationToken: args.Context.CancellationToken); } return new RateLimiterResilienceStrategy( From 91c7e75d8e0599b37910fde3923c74f3315ac87c Mon Sep 17 00:00:00 2001 From: martincostello Date: Sat, 9 Dec 2023 13:53:13 +0000 Subject: [PATCH 2/2] Fix code coverage Removing the "useless primary constructor" breaks code coverage as the empty records appears to be unused (when it is), so add it back and suppress the warning instead. --- src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs index f4f8ef9943d..ca745fce1bf 100644 --- a/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs +++ b/src/Polly.Core/Utils/Pipeline/ReloadableComponent.cs @@ -106,7 +106,9 @@ internal record ReloadFailedArguments(Exception Exception); internal record DisposedFailedArguments(Exception Exception); #pragma warning disable S2094 // Classes should not be empty - internal record OnReloadArguments; +#pragma warning disable S3253 // Constructor and destructor declarations should not be redundant + internal record OnReloadArguments(); +#pragma warning restore S3253 // Constructor and destructor declarations should not be redundant #pragma warning restore S2094 // Classes should not be empty internal record Entry(PipelineComponent Component, List ReloadTokens, ResilienceStrategyTelemetry Telemetry);