chore(deps): sweep all centrally managed NuGet packages - #231
Merged
Conversation
Bring every dependency in Directory.Packages.props to its current release, and release the twelve packages whose published dependency floor moves. Three versions are held back deliberately: - StackExchange.Redis stays on 2.x (2.13.17). The 3.x API mirrors 2.13.17, but it defaults to RESP3 and would force every KnightBus.Redis consumer off 2.x, which belongs in its own major release. - Microsoft.Data.SqlClient stays on the 6.1 LTS line (6.1.6) rather than 7.0.2, which is short-term support. - FluentAssertions keeps its [7.2.0,8.0.0) range, the v8 licence guard. This clears twelve security advisories against transitive test dependencies: MessagePack 2.5.192 (two high, nine moderate) came in via Microsoft.NET.Test.Sdk, and SSH.NET 2024.2.0 (one high) via Testcontainers. Both were confined to the test suites and the Aspire sample, all IsPackable=false, so no published package carried them. Five call sites needed updating for new obsoletions: - PostgresAzureConfiguration.TokenCredential now defaults to ManagedIdentityCredential(ManagedIdentityId.SystemAssigned); Azure.Identity 1.21.0 obsoleted the constructor the old default resolved to. Same system-assigned identity, spelled explicitly. - The four Testcontainers setups pass their image to the builder constructor, since the parameterless overload is obsolete. Azurite and MsSql relied on the module defaults, which are unchanged between 4.3.0 and 4.14.0, so the tags are pinned to those exact values. KnightBus.PostgreSql goes to 4.3.0 rather than 4.2.0: #227 already published 4.2.0 with the previous Npgsql floor, and CI pushes with --skip-duplicate, so reusing that version would drop the new floor silently. Aspire.AppHost.Sdk is pinned in the AspireHost csproj rather than Directory.Packages.props, so it does not move on its own and is bumped here alongside Aspire.Hosting.Azure.ServiceBus. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0176nyGkxqpWKrvJAEpwYtnx
|
This was referenced Aug 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



What this changes
Brings every dependency in
Directory.Packages.propsto its current release in one pass, instead of the trickle of near-identical grouped Dependabot PRs.Aspire.AppHost.Sdkis pinned in the AspireHost csproj rather than centrally, so it does not move on its own and is bumped here alongsideAspire.Hosting.Azure.ServiceBus.Twelve packages hold a direct reference to something that moved, so their published dependency floor changes and they get a minor bump:
KnightBus.Core18.4.0,KnightBus.Host18.3.0,KnightBus.Azure.ServiceBus24.2.0,KnightBus.Azure.Storage18.3.0,KnightBus.Redis17.2.0,KnightBus.SqlServer17.2.0,KnightBus.PostgreSql4.3.0,KnightBus.PostgreSql.Management4.2.0,KnightBus.PostgreSql.Extensions.Azure2.1.0,KnightBus.Schedule15.3.0,KnightBus.NewRelic13.2.0,KnightBus.OpenTelemetry1.0.0-alpha4.The other fourteen are unchanged and not republished —
KnightBus.ApplicationInsights,KnightBus.NatsandKnightBus.Newtonsoftwere already current on everything they reference, and the satellites have no package references of their own.This clears twelve NuGet Audit advisories.
MessagePack2.5.192 (two high, nine moderate) reached the build throughMicrosoft.NET.Test.Sdk, andSSH.NET2024.2.0 (one high) through Testcontainers.masterbuilds with 60 NU1902/NU1903 warnings; this branch builds with none. Both were confined to the test suites and the Aspire sample, allIsPackable=false, so no published package ever carried them.Notes for the reviewer
Three versions are held back deliberately, and each carries a comment in
Directory.Packages.propsso the next Dependabot PR does not quietly undo it:StackExchange.Redisstays on 2.x (2.13.17 — latest 2.x). 3.x is compile-compatible on paper, and the code uses thenew RedisChannel(name, PatternMode.Literal)constructor rather than the conversion operators obsoleted in 2.6.116. But 3.x defaults to RESP3 and raises the floor in the publishedKnightBus.Redis, forcing every consumer off 2.x. That belongs in its own major release. Worth a second opinion if you disagree.Microsoft.Data.SqlClientstays on the 6.1 LTS line (6.1.6, supported to 2028-08-14) rather than 7.0.2, which is STS and loses support three months after the next release ships.FluentAssertionskeeps its[7.2.0,8.0.0)range — the v8 licence guard. 8.10.0 exists and must not be picked up.KnightBus.PostgreSqlgoes to 4.3.0, not 4.2.0. #227 already published 4.2.0 with the previous Npgsql floor. CI pushes with--skip-duplicate, so reusing that version would have packed the new floor and then silently discarded it on publish — no failure, no moved floor. This is the one thing here worth double-checking.Five call sites needed real changes for new obsoletions:
PostgresAzureConfiguration.TokenCredentialnow defaults tonew ManagedIdentityCredential(ManagedIdentityId.SystemAssigned). Azure.Identity 1.21.0 obsoleted the constructor the old parameterless call resolved to. Same system-assigned identity, spelled explicitly — this one is in a shipped package..WithImage(...), so those just moved. Azurite and MsSql relied on the module defaults, so those tags are now explicit — verified byte-identical between 4.3.0 and 4.14.0, so no behaviour change.Verification beyond the checklist.
NUnit3TestAdapter5 → 6 is a major bump of the runner, where a mismatch shows up as tests silently not being discovered rather than as a build error. Test counts are identical per suite against amasterbaseline build, so nothing was dropped. I also inspected the packed nuspecs to confirm the floors moved as intended, including the per-TFM split —KnightBus.Coredeclares 9.0.19 fornet9.0and 10.0.11 fornet10.0.Two judgment calls, easy to reverse:
ASPIRE010advisory about the missing CLI bundle. I suppressed it in the sample AppHost withNoWarnrather than pulling the bundle into CI. Say the word and I'll setAspireUseCliBundle=trueinstead.csharpierstays at 1.2.1 in.config/dotnet-tools.json; 1.3.0 is out, but a formatter bump can reflow files repo-wide and does not belong in this diff.Out of scope: the 5 open Dependabot alerts are all pip packages in
docs/requirements.txt(pymdown-extensions,urllib3,requests) — unrelated to this sweep, and that file is hash-pinned so it needs hashes regenerated rather than a version line edited.NU1510(System.Text.JsoninKnightBus.Corenow likely redundant) is pre-existing and unchanged.Checklist
dotnet build KnightBus.slnxanddotnet testpass — 308/308 across 10 suites, build clean apart from pre-existingNU1510dotnet csharpier check .passesdocs/is updated, if the change is user-visible — N/A, no doc references a dependency version<Version>is bumped in the affected.csprojandCHANGELOG.mdhas an entry — twelve packages, plus entries in the three per-package changelogs (KnightBus.Core,KnightBus.Azure.ServiceBus,KnightBus.PostgreSql)🤖 Generated with Claude Code
https://claude.ai/code/session_0176nyGkxqpWKrvJAEpwYtnx