-
-
Notifications
You must be signed in to change notification settings - Fork 108
chore(deps): update dependency stackexchange.redis to 2.10.1 #4126
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR Review: StackExchange.Redis 2.8.37 → 2.10.1SummaryThis PR updates StackExchange.Redis from version 2.8.37 to 2.10.1, a minor version update that brings several new features and bug fixes. I've reviewed the changes in context of TUnit's usage of this library. ✅ Code Quality & Best PracticesAPPROVED - The change is minimal and follows TUnit's dependency management practices:
🔍 Usage AnalysisI analyzed TUnit's usage of StackExchange.Redis and found it's primarily used in:
Good news: The code uses only fundamental, stable APIs that are not affected by any breaking changes in this version range. 📋 Notable Changes in 2.10.1✨ New Features (won't impact current code)
🐛 Bug Fixes (beneficial)
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR updates the StackExchange.Redis dependency from version 2.8.37 to 2.10.1, a minor version update that includes several new features and bug fixes across multiple releases (2.8.41 through 2.10.1).
Key changes in the updated versions:
- Support for Redis 8.4 features (MSETEX, checked string operations, XREADGROUP CLAIM improvements)
- Important pub/sub channel routing changes for cluster mode (v2.9.24-v2.9.25)
- Various bug fixes and performance improvements
98e02ba to
8bb854b
Compare
Pull Request Review: StackExchange.Redis 2.8.37 → 2.10.1SummaryThis PR updates StackExchange.Redis from 2.8.37 to 2.10.1, spanning several minor versions (2.8 → 2.9 → 2.10) with multiple bug fixes and new features. ✅ Code Quality AssessmentAPPROVED - The change is minimal and low-risk:
🔍 Compatibility AnalysisUsage in TUnit CodebaseThe Redis package is only used in:
Current Usage Patterns:
Impact Assessment: ✅ LOW RISK
📋 Breaking Changes & Considerations1. Pub/Sub Channel Routing (2.9.24)
|
8bb854b to
b904c67
Compare
✅ Code Review - APPROVEDThis dependency update from StackExchange.Redis 2.8.37 → 2.10.1 looks good to merge. SummaryMinor version update that is backwards compatible with TUnit's current Redis usage patterns. AnalysisFiles Changed: Only Usage Review: Examined Redis usage in:
Both files use only basic Redis operations that remain unchanged:
Key Changes in StackExchange.RedisNew Features (non-breaking):
Behavioral Changes (no impact on TUnit):
Bug Fixes:
Risk Assessment
Testing RecommendationsBefore merging, verify:
ConclusionThis is a safe, beneficial update with bug fixes and performance improvements. The code uses only stable, well-supported Redis operations that remain backwards compatible. Recommendation: ✅ APPROVE and merge after integration tests pass. |
b904c67 to
2a8cb54
Compare
PR Review: StackExchange.Redis Update (2.8.37 → 2.10.1)✅ Overall AssessmentThis is a routine dependency update that appears safe to merge. The change is minimal (1 line) and updates a test/example dependency. 📋 Review DetailsCode Quality ✅
Usage Analysis ✅The dependency is used in:
Current API Usage:
These are stable, core APIs unlikely to have breaking changes. Release Notes Summary 📝Version 2.10.1 (Nov 2024):
Intermediate versions (2.8.37 → 2.10.1):
Test Coverage ✅Existing tests should validate the update:
Performance Considerations ✅
Security ✅
🎯 RecommendationsPre-merge validation: # Run the example project tests to verify compatibility
dotnet test TUnit.Example.Asp.Net.TestProjectSuggested next steps:
📌 Notes
Verdict: ✅ LGTM - Safe to merge |
2a8cb54 to
36a363a
Compare
SummaryThis PR updates StackExchange.Redis from version 2.8.37 to 2.10.1, a routine dependency update affecting only example/test projects in the TUnit codebase. Critical IssuesNone found ✅ AnalysisBased on my review of the PR and the TUnit codebase: Files Changed: Single line in Usage Scope: StackExchange.Redis is used only in example/test projects:
API Compatibility: All methods used in TUnit remain stable and backward-compatible:
TUnit Rules Compliance:
Version Changes (2.8.37 → 2.10.1):
Note on StringSet API: Release notes mention removed default parameters for Previous Review StatusMultiple previous reviews (7 total) have already approved this PR, all reaching the same conclusion that this is a safe, low-risk dependency update with no breaking changes affecting TUnit's usage. Verdict✅ APPROVE - No critical issues This is a safe, routine dependency update that:
|
The StringSetAsync method no longer accepts TimeSpan? directly. Use the new Expiration type with Expiration.Default for no expiry. Co-Authored-By: Claude Opus 4.5 <[email protected]>
SummaryThis PR updates StackExchange.Redis from 2.8.37 to 2.10.1, a routine dependency update generated by Renovate Bot. Critical IssuesNone found ✅ Analysis:
Code review (line 60 in RedisCacheService.cs): SuggestionsNone. This is a straightforward dependency update with bug fixes and new features that don't impact TUnit's simple Redis usage patterns. Previous Review StatusMultiple previous reviews exist (8+ automated Claude reviews from Dec 21-22, 2025). All reached the same conclusion: safe to merge. This appears to be a repeated review request of an already-analyzed PR. Verdict✅ APPROVE - No critical issues, safe to merge with automerge enabled. |
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
This PR contains the following updates:
2.8.37→2.10.1Release Notes
StackExchange/StackExchange.Redis (StackExchange.Redis)
v2.10.1Adds support for Redis 8.4 features
MSETEX ...; details controlled via newExpirationAPISET ... IFEQ/IFNE/IFDEQ/IFDNE digestOrValue; details controlled via newValueConditionAPI; also usesExpirationfor expiryDELEX ... IFEQ/IFNE/IFDEQ/IFDNE digestOrValue(again viaValueCondition)LockExtend[Async]/LockRelease[Async]when possibleXREADGROUP ... CLAIM minIdleTimefor simplified stream processingNote that niche
StringSet[Async]scenarios may require trivial build changes due to removing default parameter values; this simplify means explicitly specifyingkeepTtl, or using the newExpirationAPI. There is no impact to already compiled code (no methods have been removed).8.4 also includes "hybrid search"; this is not currently exposed in SE.Redis, and will be added to NRedisStack ASAP.
What's Changed
Full Changelog: StackExchange/StackExchange.Redis@2.9.32...2.10.1
v2.9.32Compare Source
What's Changed
Full Changelog: StackExchange/StackExchange.Redis@2.9.25...2.9.32
v2.9.25Compare Source
IMPORTANT: this release changes the distribution of pub/sub channels when using cluster; see 2.9.24 for more details.
What's Changed
This change is a critical fix that fixes a packaging failure in 2.9.24; for the relevant feature changes: see 2.9.24.
Full Changelog: StackExchange/StackExchange.Redis@2.9.24...2.9.25
v2.9.24Compare Source
IMPORTANT: this release changes the distribution of pub/sub channels when using cluster:
(this change is specific to pub/sub with regular
SUBSCRIBEchannels, not "sharded"SSUBSCRIBEchannels)SSUBSCRIBE)SSUBSCRIBEchannels are now randomly distributed to nodes by default, but can optionally use key-like routing by calling.WithKeyRouting()on theRedisChannelvalueThis change represents a safer, "least surprises" default; most people expect their cluster to help distribute load, including pub/sub load, between nodes. This is especially useful when there are few (or even only a single) channel(s) that dominate the pub/sub load, which is surprisingly common. Without this change, all that load would be handled only by a single server, because the channel
my_notificationswould be treated similarly to a key, via hash-slot sharding, and all clients would connect to the node serving that slot - when in reality, any node can be used for subscription, with the server distributing events horizontally to all nodes.If you prefer the routed behaviour: use
.WithKeyRouting()before subscribing.What's Changed
SSUBSCRIBE) routing to random, with newWithKeyRouting()API to opt into routed by @mgravell in #2958New Contributors
Full Changelog: StackExchange/StackExchange.Redis@2.9.17...2.9.24
v2.9.17Compare Source
What's Changed
sealed) and fix warnings for it by @Henr1k80 in #2942Full Changelog: StackExchange/StackExchange.Redis@2.9.11...2.9.17
v2.9.11Compare Source
What's Changed
HGETDEL,HGETEXandHSETEXsupport (#2863 by atakavci)Condition.SortedSet[Not]ContainsStartingcondition for transactions (#2638 by ArnoKoll)XPENDING IDLEtime filter (#2822 by david-brink-talogy)GetServer(RedisKey, ...)API (#2936 by mgravell)doubleformatting performance on net8+ and fix equality incorrectness re special doubles by @mgravell in #2928SetIntersectionLengthandSortedSet{Combine[WithScores]|IntersectionLength}(#2863 by mgravell)StreamAddmessage (#2941 by mgravell)New Contributors
Full Changelog: StackExchange/StackExchange.Redis@2.8.58...2.9.11
v2.8.58Compare Source
What's Changed
New Contributors
Full Changelog: StackExchange/StackExchange.Redis@2.8.47...2.8.58
v2.8.47Compare Source
What's Changed
Full Changelog: StackExchange/StackExchange.Redis@2.8.41...2.8.47
v2.8.41Compare Source
What's Changed
Sharded pub/sub operations are where the pub/sub channels are distributed over a multi-node redis cluster using similar slot rules to keys; all such operations (for both "pub" and "sub") must be communicated to the correct node. This contrasts to regular/legacy pub/sub where you can "pub" or "sub" to any node, and the message is broadcast horizontally via all nodes in the cluster. To use sharded operations, use the
RedisChannel.ShardedAPI when constructing channels. There is no concept of pattern-based sharded pub/sub.Full Changelog: StackExchange/StackExchange.Redis@2.8.37...2.8.41
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.