Skip to content

chore(deps): bump StackExchange.Redis from 2.13.17 to 3.0.17 - #86

Merged
cosmin-staicu merged 1 commit into
mainfrom
chore/stackexchange-redis-3
Jul 17, 2026
Merged

chore(deps): bump StackExchange.Redis from 2.13.17 to 3.0.17#86
cosmin-staicu merged 1 commit into
mainfrom
chore/stackexchange-redis-3

Conversation

@cosmin-staicu

Copy link
Copy Markdown
Member

Summary

Final step of the staged StackExchange.Redis upgrade: 2.13.173.0.17. 3.0 is an internal IO-core rewrite that mirrors 2.13.17's public API, so there is no public API change.

Stacked on #85 (base branch chore/logging-abstractions-net8-10). StackExchange.Redis 3.0 has a hard transitive dependency on Microsoft.Extensions.Logging.Abstractions >= 10.0.5, which #85 provides. Merge #85 first, then this retargets to main automatically.

Changes

  • Directory.Packages.props: StackExchange.Redis 2.13.173.0.17.
  • 3.0 removed SocketManager (its new IO core no longer uses one), so ConfigurationOptions.SocketManager is [Obsolete]. Dropped the now-dead assignment in RedisConfigurationOptionsProvider, and marked the backing option RedisConnectionOptions.ThreadPoolSocketManager [Obsolete] — a no-op now, non-breaking (signature unchanged), so consumers get a compile-time signal instead of a silent no-op.
  • CHANGELOG entries under [Unreleased].

Risk & verification

The upgrade's main risk is the two silent-failing reflection paths into SE.Redis internals (they degrade with no error, so a green unit build proves nothing) — 3.0's IO-core rewrite touches exactly those internals. Both are covered by the live guards added in #82 and re-verified here against a real Redis on both TFMs:

  • RedisConnector.GetMasterPhysicalConnectionMetrics (hang detection) — still resolves real values.
  • ProfiledCommandExtensions.GetStatement (telemetry) — still carries the command key.

Other 3.0 changes checked: benchmarks' admin FLUSHALL is unaffected (the Aspire runner already sets allowAdmin=true); Execute admin-gating doesn't hit production paths (SCAN is non-admin).

Not verified: the Azure Entra / RESP3 runtime path — no live Azure endpoint. It is covered by build + the existing configurator unit tests only.

Test plan

  • Unit tests added/updated
  • Integration tests pass locally (dotnet test)
  • CHANGELOG.md updated

Full suite green on net8.0 and net10.01174/1174 each — run with RUN_REDIS_INTEGRATION_TESTS=1 against a live Redis, including the #82 reflection guards (0 skipped).

Linked issues

Fixes #

Contributor declaration

  • I signed off my commits per the DCO (git commit -s).
  • I am contributing on behalf of my employer, or in the course of employment / using employer resources.

🤖 Generated with Claude Code

Base automatically changed from chore/logging-abstractions-net8-10 to main July 17, 2026 09:21
Final step of the staged StackExchange.Redis upgrade. 3.0 is an internal
IO-core rewrite that mirrors 2.13.17's public API, so there is no public API
change. Stacked on the Logging.Abstractions bump (that package is a hard
transitive prerequisite for 3.0).

3.0 removed SocketManager (its new IO core no longer uses one), so
ConfigurationOptions.SocketManager is obsolete. Dropped the now-dead
assignment in RedisConfigurationOptionsProvider and marked the backing option
RedisConnectionOptions.ThreadPoolSocketManager [Obsolete] (no-op, non-breaking
signature) so consumers get a signal rather than a silent no-op.

The two silent-failing reflection paths were the upgrade's main risk. Verified
against live Redis on both TFMs via the guards added in #82: hang-detection
metrics (GetMasterPhysicalConnectionMetrics) still resolve real values, and
the profiling GetStatement still carries the command key. Benchmarks' admin
FLUSHALL is unaffected (the runner already sets allowAdmin=true). The Azure
Entra/RESP3 path is covered by build + configurator unit tests only (no live
Azure endpoint); its runtime behavior is unverified in this PR.

Full suite green on net8.0 and net10.0 (1174/1174 each) with
RUN_REDIS_INTEGRATION_TESTS=1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Cosmin Staicu <cosmin.staicu@uipath.com>
@cosmin-staicu
cosmin-staicu force-pushed the chore/stackexchange-redis-3 branch from 0145220 to d103e81 Compare July 17, 2026 09:26
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
D Maintainability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

💡 Need a hand with PR review? Try Gitar by Sonar!

@cosmin-staicu
cosmin-staicu merged commit 4a164ef into main Jul 17, 2026
8 of 9 checks passed
@cosmin-staicu
cosmin-staicu deleted the chore/stackexchange-redis-3 branch July 17, 2026 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants