Sync/2.x into 3.x#1145
Open
yisraelU wants to merge 66 commits into
Open
Conversation
* restore mima previous artifacts filter * remove sbt prefix * remove sbt prefix * remove sbt prefix * add filter for version 2.0.2
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
…ssic-1.5.24 Update logback-classic to 1.5.24
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Update sbt, scripted-plugin to 1.12.4
Update munit to 1.2.3
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Update keypool to 0.4.11
Update munit to 1.2.4
…ugin-1.1.5 Update sbt-mima-plugin to 1.1.5
…ssic-1.5.32 Update logback-classic to 1.5.32
* add basic publish and pubsub commands to core * add basic publish and pubsub commands to core * cleanup tests
…-3.7.0 Update cats-effect, cats-effect-kernel to 3.7.0
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Update mdoc, sbt-mdoc to 2.9.0
…t-2.6.0 Update sbt-scalafmt to 2.6.0
…check-1.3.0 Update munit-scalacheck to 1.3.0
Update munit to 1.3.0
…t-0.5.4 Update sbt-tpolecat to 0.5.4
Update sbt, scripted-plugin to 1.12.11
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…t-2.6.1 Update sbt-scalafmt to 2.6.1
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com>
Co-authored-by: gvolpe-steward[bot] <gvolpe-steward[bot]@users.noreply.github.com> Co-authored-by: Yisrael Union <ysrlunion@gmail.com>
* update workflows * remove test
profunktor#1135) * add readme to clarify Lettuce version tracking , minor fix using delay instead of blocking for a non blocking call,add handling for a particular bug which is the result of a race condition, add support for consumer groups * Fix cross-build compile errors and scalafmt formatting - Subscriber: use PartialFunction case-syntax for onError so it compiles on Scala 2.12 (2.13 synthesizes a PartialFunction from a plain lambda, 2.12 does not). - redis.scala: explicitly discard non-Unit Lettuce builder returns in the XClaim/XAutoClaim arg conversions, fatal under Scala 3 -Wnonunit-statement. - Apply scalafmt to RedisStreamConsumerGroupSpec so the tree stays clean under scalafmtOnCompile (check_dirty.sh). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Mirror Lettuce for xPending, close Subscriber leak gap, add tests - xPending: replace the single method that took both `group` and an `Option[StreamConsumer]` (which also carries a group) with two overloads mirroring Lettuce — one keyed by `group`, one by `StreamConsumer`. Removes the silent group override Copilot flagged; single source of truth per path. - Subscriber: allocate the Topic before the Dispatcher so nothing that can fail runs between acquiring the dispatcher and the cleanup-guarded block, closing a residual dispatcher leak. - Tests: cover the consumer-filtered xPending overload and the xClaim / xAutoClaim force/justId paths. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Make XClaim idle/time a sum type; harden subscribe error cleanup - XClaimArgs: replace the separate `idle`/`time` options (which could be set together, producing an XCLAIM with both IDLE and TIME — undocumented Redis behavior) with a single `idle: Option[XClaimIdle]` sum type (Relative | At). The illegal "both set" state is now unrepresentable. - Subscriber: on subscribe failure also run unsubscribeFromRedis (in case we partially subscribed server-side) and attempt each cleanup step so a cleanup failure can neither skip the dispatcher release nor mask the original error. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * Handle null stream-message body for id-only replies XCLAIM/XAUTOCLAIM with JUSTID return entries without a body, so StreamMessage#getBody is null; converting it with asScala.toMap threw an NPE. Treat a null body as an empty map. Verified the consumer-group spec (including the justId/force paths) passes against a live Redis. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iler-3.3.8 Update scala3-compiler, scala3-library, ... to 3.3.8
Update munit to 1.3.3
…t-0.5.6 Update sbt-tpolecat to 0.5.6
…rofunktor#1143) * feat: add RedisURI#withCredentials for static auth (token with/without username) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: document StaticCredentialsProvider cast invariant; wrap withCredentials scaladoc Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: document RedisURI#withCredentials for static auth Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: add RedisUriConfig + RedisURI.fromConfig (Lettuce-parity construction) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * fix: place sentinel node password on the sentinel node, not the main URI Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: cover multi-node sentinel passwords and Full/Ca verify modes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: add RedisClient.fromConfig Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: cover RedisClient.fromConfig with ClientOptions Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: document RedisUriConfig construction Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: note that RedisUriConfig cross-cutting options aren't validated per endpoint Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: add RedisUriConfig smart constructors + fluent withX helpers Avoids wrapping options in Some at the call site. Adds RedisUriConfig.standalone/ socket/sentinel, fluent withCredentials/withTls/withDatabase/withTimeout/withClientName/ withLibraryName/withLibraryVersion, and SentinelNode#withPassword. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * feat: add RedisClient.fromConfig overload taking Redis4CatsConfig Parity with custom(uri, opts, config): lets the config-first path supply a Redis4CatsConfig (shutdown/topology/clientResources) without merging it into RedisUriConfig. The two stay separate (per-endpoint vs per-client). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * test: verify distinct per-node sentinel passwords land on the correct nodes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs: fix stale master/replica withOptions signature and point to RedisUriConfig - client.md: RedisMasterReplica.withOptions doc was missing the config: Redis4CatsConfig parameter present in the code; the 'Standalone, Sentinel or Cluster' section now points to the RedisUriConfig/fromConfig Scala API rather than only Lettuce's JRedisURI builder. - RedisMasterReplica scaladoc example updated to the current 4-arg withOptions signature. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Syncs all series/2.x work onto the Lettuce-7 series/3.x branch. Conflict resolutions: - build.sbt: kept series/3.x (crossScalaVersions 2.13.18/3.8.4 — 2.12 dropped; its mima filter; `commonSettings*` Scala-3 splat). 2.x's competing build changes were things 3.x intentionally diverged on. - project/Dependencies.scala, project/plugins.sbt: took 2.x's newer munit (1.3.3) and sbt-tpolecat (0.5.6). - redis.scala: kept 2.x's Stream Consumer Groups API block (profunktor#1135); 3.x had none. Did NOT take any Lettuce version change — 3.x stays on lettuce-core 7.6.0. Brings forward from 2.x: RedisUriConfig + RedisURI.fromConfig / RedisClient.fromConfig (profunktor#1143), stream consumer groups + XClaimIdle sum type + xPending overloads + Subscriber leak/NPE fixes (profunktor#1135), and docs. GETDEL was already present on 3.x. Lettuce 7 adaptation: Lettuce 7 removed RedisURI.getPassword/getUsername, so the RedisURISuite/RedisClientSuite credential-reading helpers now resolve the RedisCredentialsProvider's Mono reflectively (also dodges the reactor JSR-305 classfile-parse warning, scala/bug#7014, fatal under -Werror). Verified: cross-compiles on Scala 2.13.18 and 3.8.4, scalafmt clean, core offline tests 36/36 green. Redis-backed integration tests (incl. RedisStreamConsumerGroupSpec) not run here — they require a live Redis 7. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Contributor
|
Tick the box to add this pull request to the merge queue (same as
|
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.
No description provided.