From 4918210b78348c05c169cc6510051f192f94538e Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Mon, 9 Nov 2026 12:32:05 -0500 Subject: [PATCH] build: adopt CentralPackageTransitivePinningEnabled, drop per-project SQLitePCLRaw pins (ScadaBridge#79) Enables transitive pinning so the central SQLitePCLRaw.lib.e_sqlite3 2.1.12 pin applies everywhere (41 projects verified at 2.1.12). Required raising the central floors: Newtonsoft.Json 13.0.4 and Microsoft.Extensions.* 10.0.13. Claude-Session: https://claude.ai/code/session_01GT67AEHd2Acv1YPwGfXEoV --- Directory.Packages.props | 44 +++++++++---------- .../ZB.MOM.WW.ScadaBridge.AuditLog.csproj | 1 - ...MOM.WW.ScadaBridge.SiteEventLogging.csproj | 1 - .../ZB.MOM.WW.ScadaBridge.SiteRuntime.csproj | 1 - ....MOM.WW.ScadaBridge.StoreAndForward.csproj | 1 - ...B.MOM.WW.ScadaBridge.AuditLog.Tests.csproj | 1 - ....MOM.WW.ScadaBridge.CentralUI.Tests.csproj | 1 - ...aBridge.ConfigurationDatabase.Tests.csproj | 1 - ....ScadaBridge.HealthMonitoring.Tests.csproj | 1 - ...MOM.WW.ScadaBridge.InboundAPI.Tests.csproj | 1 - ...MOM.WW.ScadaBridge.IntegrationTests.csproj | 1 - ...MOM.WW.ScadaBridge.PerformanceTests.csproj | 1 - ...B.MOM.WW.ScadaBridge.Security.Tests.csproj | 1 - ....ScadaBridge.SiteEventLogging.Tests.csproj | 1 - ...W.ScadaBridge.StoreAndForward.Tests.csproj | 1 - .../ZB.MOM.WW.ScadaBridge.TestSupport.csproj | 1 - ...daBridge.Transport.IntegrationTests.csproj | 1 - 17 files changed, 22 insertions(+), 38 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 3d524480..4fab2edf 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -2,6 +2,7 @@ true + true @@ -55,22 +56,24 @@ - - - - - - - - - - + + + + + + + + + + - - + @@ -134,16 +137,13 @@ test projects — the whole site-local SQLite layer — were still resolving the vulnerable 2.1.11, and the suppression hid that everywhere. - Delivered as an explicit in each SQLite-consuming project rather than via - CentralPackageTransitivePinningEnabled. Enabling transitive pinning globally was tried first - and rejected: it makes every centrally-defined version a hard ceiling for transitive - resolution too, which immediately demanded bumps to Google.Protobuf (3.29.3->3.34.1), - Grpc.Net.Client (2.71.0->2.76.0), Microsoft.Data.SqlClient (6.0.2->6.1.1) and Newtonsoft.Json - (13.0.3->13.0.4). Those may well be worth doing, but they are a gRPC/data-access change to a - production SCADA platform and belong in their own reviewed commit — not smuggled in under a - SQLite security fix. - - Adopting CentralPackageTransitivePinningEnabled is tracked as Gitea issue #79. + Delivered since Gitea #79 via CentralPackageTransitivePinningEnabled (top of this file): the + PackageVersion below is applied to the transitive SQLitePCLRaw.lib.e_sqlite3 in EVERY project, + so the per-project pins (16 csproj files) were removed. Enabling it forced + centrally-defined versions to be a floor for transitive resolution, which required: + Newtonsoft.Json 13.0.3 -> 13.0.4 (OPC UA core floor) and Microsoft.Extensions.* 10.0.7 -> + 10.0.13 (the SignalR.Common 10.0.13 security pin in the CLI floors Options/DI at 10.0.13). + Google.Protobuf, Grpc.* and SqlClient had already been raised for other reasons. --> diff --git a/src/ZB.MOM.WW.ScadaBridge.AuditLog/ZB.MOM.WW.ScadaBridge.AuditLog.csproj b/src/ZB.MOM.WW.ScadaBridge.AuditLog/ZB.MOM.WW.ScadaBridge.AuditLog.csproj index e2dc02e6..b50f3ae1 100644 --- a/src/ZB.MOM.WW.ScadaBridge.AuditLog/ZB.MOM.WW.ScadaBridge.AuditLog.csproj +++ b/src/ZB.MOM.WW.ScadaBridge.AuditLog/ZB.MOM.WW.ScadaBridge.AuditLog.csproj @@ -14,7 +14,6 @@ - diff --git a/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/ZB.MOM.WW.ScadaBridge.SiteEventLogging.csproj b/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/ZB.MOM.WW.ScadaBridge.SiteEventLogging.csproj index 157fa5bc..ae5744ca 100644 --- a/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/ZB.MOM.WW.ScadaBridge.SiteEventLogging.csproj +++ b/src/ZB.MOM.WW.ScadaBridge.SiteEventLogging/ZB.MOM.WW.ScadaBridge.SiteEventLogging.csproj @@ -12,7 +12,6 @@ - diff --git a/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/ZB.MOM.WW.ScadaBridge.SiteRuntime.csproj b/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/ZB.MOM.WW.ScadaBridge.SiteRuntime.csproj index 66a65bae..b90ec920 100644 --- a/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/ZB.MOM.WW.ScadaBridge.SiteRuntime.csproj +++ b/src/ZB.MOM.WW.ScadaBridge.SiteRuntime/ZB.MOM.WW.ScadaBridge.SiteRuntime.csproj @@ -16,7 +16,6 @@ - diff --git a/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/ZB.MOM.WW.ScadaBridge.StoreAndForward.csproj b/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/ZB.MOM.WW.ScadaBridge.StoreAndForward.csproj index a8770876..e107d33c 100644 --- a/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/ZB.MOM.WW.ScadaBridge.StoreAndForward.csproj +++ b/src/ZB.MOM.WW.ScadaBridge.StoreAndForward/ZB.MOM.WW.ScadaBridge.StoreAndForward.csproj @@ -12,7 +12,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests.csproj index 96f74e29..fb606a85 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests/ZB.MOM.WW.ScadaBridge.AuditLog.Tests.csproj @@ -16,7 +16,6 @@ - - diff --git a/tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests.csproj index c765cfb0..0532aff1 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests/ZB.MOM.WW.ScadaBridge.ConfigurationDatabase.Tests.csproj @@ -15,7 +15,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests.csproj index 1cda3a29..e14d1d15 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests/ZB.MOM.WW.ScadaBridge.HealthMonitoring.Tests.csproj @@ -13,7 +13,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests.csproj index 87dda0ee..24038836 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests/ZB.MOM.WW.ScadaBridge.InboundAPI.Tests.csproj @@ -18,7 +18,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.IntegrationTests/ZB.MOM.WW.ScadaBridge.IntegrationTests.csproj b/tests/ZB.MOM.WW.ScadaBridge.IntegrationTests/ZB.MOM.WW.ScadaBridge.IntegrationTests.csproj index 5090cd4d..3288041c 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.IntegrationTests/ZB.MOM.WW.ScadaBridge.IntegrationTests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.IntegrationTests/ZB.MOM.WW.ScadaBridge.IntegrationTests.csproj @@ -21,7 +21,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.PerformanceTests/ZB.MOM.WW.ScadaBridge.PerformanceTests.csproj b/tests/ZB.MOM.WW.ScadaBridge.PerformanceTests/ZB.MOM.WW.ScadaBridge.PerformanceTests.csproj index 0ddcfaac..70e8945d 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.PerformanceTests/ZB.MOM.WW.ScadaBridge.PerformanceTests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.PerformanceTests/ZB.MOM.WW.ScadaBridge.PerformanceTests.csproj @@ -13,7 +13,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.Security.Tests/ZB.MOM.WW.ScadaBridge.Security.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.Security.Tests/ZB.MOM.WW.ScadaBridge.Security.Tests.csproj index 10bbb12c..b60d86ab 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Security.Tests/ZB.MOM.WW.ScadaBridge.Security.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.Security.Tests/ZB.MOM.WW.ScadaBridge.Security.Tests.csproj @@ -19,7 +19,6 @@ - - diff --git a/tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests.csproj b/tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests.csproj index e6ebb6b8..7a270cbd 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests/ZB.MOM.WW.ScadaBridge.StoreAndForward.Tests.csproj @@ -14,7 +14,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.TestSupport/ZB.MOM.WW.ScadaBridge.TestSupport.csproj b/tests/ZB.MOM.WW.ScadaBridge.TestSupport/ZB.MOM.WW.ScadaBridge.TestSupport.csproj index dc5e2997..3e76e277 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.TestSupport/ZB.MOM.WW.ScadaBridge.TestSupport.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.TestSupport/ZB.MOM.WW.ScadaBridge.TestSupport.csproj @@ -18,7 +18,6 @@ - diff --git a/tests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests.csproj b/tests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests.csproj index de48463a..dcbdf43c 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests.csproj +++ b/tests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests/ZB.MOM.WW.ScadaBridge.Transport.IntegrationTests.csproj @@ -20,7 +20,6 @@ -