From 55d7d1ac1ccdf49df5ed0ffd16973c105b11b05d Mon Sep 17 00:00:00 2001 From: Giovanni Brunno Previatti Date: Tue, 28 Jul 2026 14:37:36 -0300 Subject: [PATCH 1/2] chore: remove unused Polly dependencies and update package versions --- templates/Bff/Directory.Packages.props | 1 - .../src/Infrastructure/Infrastructure.csproj | 1 - .../InfrastructureDependencyInjection.cs | 28 ++---- .../Bff/src/Infrastructure/packages.lock.json | 94 +++++++------------ templates/Bff/src/WebApp/packages.lock.json | 24 ----- .../tests/IntegrationTests/packages.lock.json | 41 ++------ 6 files changed, 51 insertions(+), 138 deletions(-) diff --git a/templates/Bff/Directory.Packages.props b/templates/Bff/Directory.Packages.props index 4e60ed6f..f3321ad7 100644 --- a/templates/Bff/Directory.Packages.props +++ b/templates/Bff/Directory.Packages.props @@ -20,7 +20,6 @@ - diff --git a/templates/Bff/src/Infrastructure/Infrastructure.csproj b/templates/Bff/src/Infrastructure/Infrastructure.csproj index 523ac9f7..ad50244e 100644 --- a/templates/Bff/src/Infrastructure/Infrastructure.csproj +++ b/templates/Bff/src/Infrastructure/Infrastructure.csproj @@ -2,7 +2,6 @@ - diff --git a/templates/Bff/src/Infrastructure/InfrastructureDependencyInjection.cs b/templates/Bff/src/Infrastructure/InfrastructureDependencyInjection.cs index 39e3aaac..b445583b 100644 --- a/templates/Bff/src/Infrastructure/InfrastructureDependencyInjection.cs +++ b/templates/Bff/src/Infrastructure/InfrastructureDependencyInjection.cs @@ -11,8 +11,6 @@ using OpenTelemetry.Metrics; using OpenTelemetry.Resources; using OpenTelemetry.Trace; -using Polly; -using Polly.Extensions.Http; using Pyroscope.OpenTelemetry; namespace Infrastructure; @@ -113,7 +111,6 @@ internal IServiceCollection AddCache(IConfiguration configuration) internal IServiceCollection AddHttp(List serviceConfiguration) { - var serviceKeys = Enum.GetValues(); foreach (var serviceKey in serviceKeys) @@ -134,9 +131,7 @@ internal IServiceCollection AddHttp(List serviceConfigurat if (serviceConfig.Headers is Dictionary headers && headers.Count > 0) foreach (var header in headers) client.DefaultRequestHeaders.Add(header.Key, header.Value); - }) - .SetHandlerLifetime(TimeSpan.FromMinutes(5)) - .AddPolicyHandler(GetRetryPolicy()); + }); services.AddKeyedScoped(serviceKey, (serviceProvider, _) => { @@ -154,25 +149,18 @@ internal IServiceCollection AddHttp(List serviceConfigurat internal IServiceCollection AddGrpc(List serviceConfiguration) { services.AddGrpc(); - services - .AddGrpcClient(nameof(PaymentsService), o => - { - var paymentsConfiguration = serviceConfiguration.FirstOrDefault(x => - string.Equals(x.Name, ServicesKey.Payments.ToString(), StringComparison.OrdinalIgnoreCase)) - ?? throw new ArgumentNullException($"{ServicesKey.Payments} gRPC service configuration is not configured."); + services.AddGrpcClient(nameof(PaymentsService), o => + { + var paymentsConfiguration = serviceConfiguration.FirstOrDefault(x => + string.Equals(x.Name, ServicesKey.Payments.ToString(), StringComparison.OrdinalIgnoreCase)) + ?? throw new ArgumentNullException($"{ServicesKey.Payments} gRPC service configuration is not configured."); - o.Address = new Uri(paymentsConfiguration.BaseAddress); - }) - .SetHandlerLifetime(TimeSpan.FromMinutes(5)) - .AddPolicyHandler(GetRetryPolicy()); + o.Address = new Uri(paymentsConfiguration.BaseAddress); + }); services.AddScoped(); return services; } - - internal static IAsyncPolicy GetRetryPolicy() => HttpPolicyExtensions - .HandleTransientHttpError() - .WaitAndRetryAsync(3, retryAttempt => TimeSpan.FromSeconds(Math.Pow(2, retryAttempt))); } } diff --git a/templates/Bff/src/Infrastructure/packages.lock.json b/templates/Bff/src/Infrastructure/packages.lock.json index 7edb76f5..91414713 100644 --- a/templates/Bff/src/Infrastructure/packages.lock.json +++ b/templates/Bff/src/Infrastructure/packages.lock.json @@ -26,17 +26,6 @@ "StackExchange.Redis": "2.7.27" } }, - "Microsoft.Extensions.Http.Polly": { - "type": "Direct", - "requested": "[10.0.10, )", - "resolved": "10.0.10", - "contentHash": "ceKyX9V/C+mtapMfXQ0ClKRkxDHAW2AAJoDgTcsh7UdOteCQKB5wRTFgHJ82Lh/3O+UlPA47LRGEZkRxtz/lCA==", - "dependencies": { - "Microsoft.Extensions.Http": "10.0.10", - "Polly": "7.2.4", - "Polly.Extensions.Http": "3.0.0" - } - }, "OpenTelemetry.Exporter.Console": { "type": "Direct", "requested": "[1.17.0, )", @@ -223,28 +212,28 @@ }, "Microsoft.Extensions.Configuration": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "plJWK2zpWuuyxI8F8s2scx6Je7N1Ajjs6HvYUGKwRnDMWIVIz9FHwAkiT7ASgrvAOd10T0FPVlh9BzAJJME+jg==", + "resolved": "10.0.0", + "contentHash": "H4SWETCh/cC5L1WtWchHR6LntGk3rDTTznZMssr4cL8IbDmMWBxY+MOGDc/ASnqNolLKPIWHWeuC1ddiL/iNPw==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "10.0.10", - "Microsoft.Extensions.Primitives": "10.0.10" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" } }, "Microsoft.Extensions.Configuration.Abstractions": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "5Vnd2I75DmZCVEjSynIdJ/0EGafgnLQwgR3t2C2/fkjx/nRG+cLwxLLdInoHeCEpkD5K4Ov/g9ZCRYrl4TRsaA==", + "resolved": "10.0.0", + "contentHash": "d2kDKnCsJvY7mBVhcjPSp9BkJk48DsaHPg5u+Oy4f8XaOqnEedRy/USyvnpHL92wpJ6DrTPy7htppUUzskbCXQ==", "dependencies": { - "Microsoft.Extensions.Primitives": "10.0.10" + "Microsoft.Extensions.Primitives": "10.0.0" } }, "Microsoft.Extensions.Configuration.Binder": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "GqmN2o1CkJvk7uWp+p4CwBYW0w/zfoEbvsiFDbO2G8l1Uz+mrDAbAcZiXhU2lufKPby1cjAUdd5GTWpebYOkOA==", + "resolved": "10.0.0", + "contentHash": "tMF9wNh+hlyYDWB8mrFCQHQmWHlRosol1b/N2Jrefy1bFLnuTlgSYmPyHNmz8xVQgs7DpXytBRWxGhG+mSTp0g==", "dependencies": { - "Microsoft.Extensions.Configuration": "10.0.10", - "Microsoft.Extensions.Configuration.Abstractions": "10.0.10" + "Microsoft.Extensions.Configuration": "10.0.0", + "Microsoft.Extensions.Configuration.Abstractions": "10.0.0" } }, "Microsoft.Extensions.Configuration.EnvironmentVariables": { @@ -263,21 +252,21 @@ }, "Microsoft.Extensions.Diagnostics": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "Kr/e7lUf4+N8tacbqJ2Ctwe/HarKdAc9ZkgKVVqvtJDBKbez+T/KnUwu82KSlnBp/SrpBcxc7u7xkE2oUZT/5Q==", + "resolved": "8.0.0", + "contentHash": "3PZp/YSkIXrF7QK7PfC1bkyRYwqOHpWFad8Qx+4wkuumAeXo1NHaxpS9LboNA9OvNSAu+QOVlXbMyoY+pHSqcw==", "dependencies": { - "Microsoft.Extensions.Configuration": "10.0.10", - "Microsoft.Extensions.Diagnostics.Abstractions": "10.0.10", - "Microsoft.Extensions.Options.ConfigurationExtensions": "10.0.10" + "Microsoft.Extensions.Configuration": "8.0.0", + "Microsoft.Extensions.Diagnostics.Abstractions": "8.0.0", + "Microsoft.Extensions.Options.ConfigurationExtensions": "8.0.0" } }, "Microsoft.Extensions.Diagnostics.Abstractions": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "9uWiKpeOVac355STyChWR/pliFX/5CeLqChW9kKsaxyDH4EUTZxMkT4Jwp/J/peLm0GBFmSX5c0WCse3yCnq1Q==", + "resolved": "10.0.0", + "contentHash": "SfK89ytD61S7DgzorFljSkUeluC1ncn6dtZgwc0ot39f/BEYWBl5jpgvodxduoYAs1d9HG8faCDRZxE95UMo2A==", "dependencies": { - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.10", - "Microsoft.Extensions.Options": "10.0.10" + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0" } }, "Microsoft.Extensions.FileProviders.Abstractions": { @@ -302,15 +291,15 @@ }, "Microsoft.Extensions.Http": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "DuEBLw2y7ZBfilnaJtlge8f2M49932v43t7j1InceXVjcZzxNrSEkobYXdgZkXuPFnFbKcbWpAS+fZgYEW1BhA==", + "resolved": "8.0.0", + "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "10.0.10", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.10", - "Microsoft.Extensions.Diagnostics": "10.0.10", - "Microsoft.Extensions.Logging": "10.0.10", - "Microsoft.Extensions.Logging.Abstractions": "10.0.10", - "Microsoft.Extensions.Options": "10.0.10" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { @@ -347,14 +336,14 @@ }, "Microsoft.Extensions.Options.ConfigurationExtensions": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "tnBmu/LwF25ZQK+HBNCu2xrwnkKoB/XEbJyooGGoYxHrhvxbSKi7eOFiJ4AXBy/QU4vtCvCJfoi8k9Ej72qzOQ==", + "resolved": "10.0.0", + "contentHash": "tL9cSl3maS5FPzp/3MtlZI21ExWhni0nnUCF8HY4npTsINw45n9SNDbkKXBMtFyUFGSsQep25fHIDN4f/Vp3AQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "10.0.10", - "Microsoft.Extensions.Configuration.Binder": "10.0.10", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.10", - "Microsoft.Extensions.Options": "10.0.10", - "Microsoft.Extensions.Primitives": "10.0.10" + "Microsoft.Extensions.Configuration.Abstractions": "10.0.0", + "Microsoft.Extensions.Configuration.Binder": "10.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.0", + "Microsoft.Extensions.Options": "10.0.0", + "Microsoft.Extensions.Primitives": "10.0.0" } }, "Microsoft.Extensions.Primitives": { @@ -387,19 +376,6 @@ "resolved": "2.2.8", "contentHash": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==" }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.4", - "contentHash": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, "Pyroscope": { "type": "Transitive", "resolved": "1.3.0", diff --git a/templates/Bff/src/WebApp/packages.lock.json b/templates/Bff/src/WebApp/packages.lock.json index c1922b7c..c578a863 100644 --- a/templates/Bff/src/WebApp/packages.lock.json +++ b/templates/Bff/src/WebApp/packages.lock.json @@ -123,19 +123,6 @@ "resolved": "2.2.8", "contentHash": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==" }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.4", - "contentHash": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, "Pyroscope": { "type": "Transitive", "resolved": "1.3.0", @@ -161,7 +148,6 @@ "Contracts": "[1.0.0, )", "Microsoft.Extensions.Caching.Hybrid": "[10.8.0, )", "Microsoft.Extensions.Caching.StackExchangeRedis": "[10.0.10, )", - "Microsoft.Extensions.Http.Polly": "[10.0.10, )", "OpenTelemetry.Exporter.Console": "[1.17.0, )", "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.17.0, )", "OpenTelemetry.Extensions": "[1.17.0-beta.1, )", @@ -201,16 +187,6 @@ "StackExchange.Redis": "2.7.27" } }, - "Microsoft.Extensions.Http.Polly": { - "type": "CentralTransitive", - "requested": "[10.0.10, )", - "resolved": "10.0.10", - "contentHash": "ceKyX9V/C+mtapMfXQ0ClKRkxDHAW2AAJoDgTcsh7UdOteCQKB5wRTFgHJ82Lh/3O+UlPA47LRGEZkRxtz/lCA==", - "dependencies": { - "Polly": "7.2.4", - "Polly.Extensions.Http": "3.0.0" - } - }, "Microsoft.OpenApi": { "type": "CentralTransitive", "requested": "[2.11.0, )", diff --git a/templates/Bff/tests/IntegrationTests/packages.lock.json b/templates/Bff/tests/IntegrationTests/packages.lock.json index aa7295f7..8cdcc12e 100644 --- a/templates/Bff/tests/IntegrationTests/packages.lock.json +++ b/templates/Bff/tests/IntegrationTests/packages.lock.json @@ -332,15 +332,15 @@ }, "Microsoft.Extensions.Http": { "type": "Transitive", - "resolved": "10.0.10", - "contentHash": "DuEBLw2y7ZBfilnaJtlge8f2M49932v43t7j1InceXVjcZzxNrSEkobYXdgZkXuPFnFbKcbWpAS+fZgYEW1BhA==", + "resolved": "8.0.0", + "contentHash": "cWz4caHwvx0emoYe7NkHPxII/KkTI8R/LC9qdqJqnKv2poTJ4e2qqPGQqvRoQ5kaSA4FU5IV3qFAuLuOhoqULQ==", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "10.0.10", - "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.10", - "Microsoft.Extensions.Diagnostics": "10.0.10", - "Microsoft.Extensions.Logging": "10.0.10", - "Microsoft.Extensions.Logging.Abstractions": "10.0.10", - "Microsoft.Extensions.Options": "10.0.10" + "Microsoft.Extensions.Configuration.Abstractions": "8.0.0", + "Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0", + "Microsoft.Extensions.Diagnostics": "8.0.0", + "Microsoft.Extensions.Logging": "8.0.0", + "Microsoft.Extensions.Logging.Abstractions": "8.0.0", + "Microsoft.Extensions.Options": "8.0.0" } }, "Microsoft.Extensions.Logging.Abstractions": { @@ -476,19 +476,6 @@ "resolved": "2.2.8", "contentHash": "zG2FApP5zxSx6OcdJQLbZDk2AVlN2BNQD6MorwIfV6gVj0RRxWPEp2LXAxqDGZqeNV1Zp0BNPcNaey/GXmTdvQ==" }, - "Polly": { - "type": "Transitive", - "resolved": "7.2.4", - "contentHash": "bw00Ck5sh6ekduDE3mnCo1ohzuad946uslCDEENu3091+6UKnBuKLo4e+yaNcCzXxOZCXWY2gV4a35+K1d4LDA==" - }, - "Polly.Extensions.Http": { - "type": "Transitive", - "resolved": "3.0.0", - "contentHash": "drrG+hB3pYFY7w1c3BD+lSGYvH2oIclH8GRSehgfyP5kjnFnHKQuuBhuHLv+PWyFuaTDyk/vfRpnxOzd11+J8g==", - "dependencies": { - "Polly": "7.1.0" - } - }, "Pyroscope": { "type": "Transitive", "resolved": "1.3.0", @@ -552,7 +539,6 @@ "Contracts": "[1.0.0, )", "Microsoft.Extensions.Caching.Hybrid": "[10.8.0, )", "Microsoft.Extensions.Caching.StackExchangeRedis": "[10.0.10, )", - "Microsoft.Extensions.Http.Polly": "[10.0.10, )", "OpenTelemetry.Exporter.Console": "[1.17.0, )", "OpenTelemetry.Exporter.OpenTelemetryProtocol": "[1.17.0, )", "OpenTelemetry.Extensions": "[1.17.0-beta.1, )", @@ -659,17 +645,6 @@ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.10" } }, - "Microsoft.Extensions.Http.Polly": { - "type": "CentralTransitive", - "requested": "[10.0.10, )", - "resolved": "10.0.10", - "contentHash": "ceKyX9V/C+mtapMfXQ0ClKRkxDHAW2AAJoDgTcsh7UdOteCQKB5wRTFgHJ82Lh/3O+UlPA47LRGEZkRxtz/lCA==", - "dependencies": { - "Microsoft.Extensions.Http": "10.0.10", - "Polly": "7.2.4", - "Polly.Extensions.Http": "3.0.0" - } - }, "Microsoft.Extensions.Logging": { "type": "CentralTransitive", "requested": "[10.0.10, )", From dc4eab6076d37f9af40d7533b08be8d27917509d Mon Sep 17 00:00:00 2001 From: Giovanni Brunno Previatti Date: Tue, 28 Jul 2026 14:39:18 -0300 Subject: [PATCH 2/2] chore: remove unnecessary libraries from Bff project and update package version --- .github/workflows/publish.yml | 2 +- GPreviatti.Template.Hexagonal.Solution.csproj | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 52d36331..dfd79efb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -70,7 +70,7 @@ jobs: uses: gpreviatti/github-actions-templates/.github/workflows/dotnet-pack.yml@v1 with: dotnet_version: "${{ vars.PROJECT_DOTNET_VERSION }}" - package_version: "10.14.0" + package_version: "10.15.0" secrets: nuget_api_key: ${{ secrets.NUGET_API_KEY }} diff --git a/GPreviatti.Template.Hexagonal.Solution.csproj b/GPreviatti.Template.Hexagonal.Solution.csproj index 71c7718c..d3b09388 100644 --- a/GPreviatti.Template.Hexagonal.Solution.csproj +++ b/GPreviatti.Template.Hexagonal.Solution.csproj @@ -18,7 +18,7 @@ git://github.com/gpreviatti/hexagonal-solution-template true - - Update templates libraries + - Remove unnecessary library from Bff project