From c0c96a5b698454e004c5a62bd734470fa8256a3e Mon Sep 17 00:00:00 2001 From: Nedyalko Dyakov Date: Fri, 5 Dec 2025 16:29:14 +0200 Subject: [PATCH 1/2] add release notes --- RELEASE-NOTES.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 719942af6..c8637e3b1 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,5 +1,46 @@ # Release Notes +# 9.18.0-beta.2 (2025-12-05) + +## 🚀 Highlights + +### Go Version Update + +This release updates the minimum required Go version to 1.21. This is part of a gradual migration strategy where the minimum supported Go version will be three versions behind the latest release. With each new Go version release, we will bump the minimum version by one, ensuring compatibility while staying current with the Go ecosystem. + +### Stability Improvements + +This release includes several important stability fixes: +- Fixed a critical panic in the handoff worker manager that could occur when handling nil errors +- Improved test reliability for Smart Client Handoff functionality +- Fixed logging format issues that could cause runtime errors + +## ✨ New Features + +- OpenTelemetry metrics improvements for nil response handling ([#3638](https://github.com/redis/go-redis/pull/3638)) by [@fengve](https://github.com/fengve) + +## 🐛 Bug Fixes + +- Fixed panic on nil error in handoffWorkerManager closeConnFromRequest ([#3633](https://github.com/redis/go-redis/pull/3633)) by [@ccoVeille](https://github.com/ccoVeille) +- Fixed bad sprintf syntax in logging ([#3632](https://github.com/redis/go-redis/pull/3632)) by [@ccoVeille](https://github.com/ccoVeille) + +## 🧰 Maintenance + +- Updated minimum Go version to 1.21 ([#3640](https://github.com/redis/go-redis/pull/3640)) by [@ndyakov](https://github.com/ndyakov) +- Use Go 1.20 idiomatic string<->byte conversion ([#3435](https://github.com/redis/go-redis/pull/3435)) by [@justinhwang](https://github.com/justinhwang) +- Reduce flakiness of Smart Client Handoff test ([#3641](https://github.com/redis/go-redis/pull/3641)) by [@kiryazovi-redis](https://github.com/kiryazovi-redis) +- Revert PR #3634 (Observability metrics phase1) ([#3635](https://github.com/redis/go-redis/pull/3635)) by [@ofekshenawa](https://github.com/ofekshenawa) + +## 👥 Contributors + +We'd like to thank all the contributors who worked on this release! + +[@justinhwang](https://github.com/justinhwang), [@ndyakov](https://github.com/ndyakov), [@kiryazovi-redis](https://github.com/kiryazovi-redis), [@fengve](https://github.com/fengve), [@ccoVeille](https://github.com/ccoVeille), [@ofekshenawa](https://github.com/ofekshenawa) + +--- + +**Full Changelog**: https://github.com/redis/go-redis/compare/v9.18.0-beta.1...v9.18.0-beta.2 + # 9.18.0-beta.1 (2025-12-01) ## 🚀 Highlights From 86bfcbcc919e0b53a108ca396ba12cdf011f01b9 Mon Sep 17 00:00:00 2001 From: Nedyalko Dyakov Date: Fri, 5 Dec 2025 16:29:32 +0200 Subject: [PATCH 2/2] update version number --- example/del-keys-without-ttl/go.mod | 2 +- example/digest-optimistic-locking/go.mod | 2 +- example/hll/go.mod | 2 +- example/hset-struct/go.mod | 2 +- example/lua-scripting/go.mod | 2 +- example/otel/go.mod | 6 +++--- example/redis-bloom/go.mod | 2 +- example/scan-struct/go.mod | 2 +- extra/rediscensus/go.mod | 4 ++-- extra/rediscmd/go.mod | 2 +- extra/redisotel/go.mod | 4 ++-- extra/redisprometheus/go.mod | 2 +- version.go | 2 +- 13 files changed, 17 insertions(+), 17 deletions(-) diff --git a/example/del-keys-without-ttl/go.mod b/example/del-keys-without-ttl/go.mod index a0f07a538..9653e1ce4 100644 --- a/example/del-keys-without-ttl/go.mod +++ b/example/del-keys-without-ttl/go.mod @@ -5,7 +5,7 @@ go 1.21 replace github.com/redis/go-redis/v9 => ../.. require ( - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 go.uber.org/zap v1.24.0 ) diff --git a/example/digest-optimistic-locking/go.mod b/example/digest-optimistic-locking/go.mod index 0d7f9850b..83331d052 100644 --- a/example/digest-optimistic-locking/go.mod +++ b/example/digest-optimistic-locking/go.mod @@ -5,7 +5,7 @@ go 1.21 replace github.com/redis/go-redis/v9 => ../.. require ( - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 github.com/zeebo/xxh3 v1.0.2 ) diff --git a/example/hll/go.mod b/example/hll/go.mod index fb6b41fd1..6de9e2d20 100644 --- a/example/hll/go.mod +++ b/example/hll/go.mod @@ -4,7 +4,7 @@ go 1.21 replace github.com/redis/go-redis/v9 => ../.. -require github.com/redis/go-redis/v9 v9.18.0-beta.1 +require github.com/redis/go-redis/v9 v9.18.0-beta.2 require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/example/hset-struct/go.mod b/example/hset-struct/go.mod index b4a83a4c3..f39b57d92 100644 --- a/example/hset-struct/go.mod +++ b/example/hset-struct/go.mod @@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../.. require ( github.com/davecgh/go-spew v1.1.1 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 ) require ( diff --git a/example/lua-scripting/go.mod b/example/lua-scripting/go.mod index 585091f56..d2a880214 100644 --- a/example/lua-scripting/go.mod +++ b/example/lua-scripting/go.mod @@ -4,7 +4,7 @@ go 1.21 replace github.com/redis/go-redis/v9 => ../.. -require github.com/redis/go-redis/v9 v9.18.0-beta.1 +require github.com/redis/go-redis/v9 v9.18.0-beta.2 require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/example/otel/go.mod b/example/otel/go.mod index 1222c0705..ffb65bf23 100644 --- a/example/otel/go.mod +++ b/example/otel/go.mod @@ -11,8 +11,8 @@ replace github.com/redis/go-redis/extra/redisotel/v9 => ../../extra/redisotel replace github.com/redis/go-redis/extra/rediscmd/v9 => ../../extra/rediscmd require ( - github.com/redis/go-redis/extra/redisotel/v9 v9.18.0-beta.1 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/extra/redisotel/v9 v9.18.0-beta.2 + github.com/redis/go-redis/v9 v9.18.0-beta.2 github.com/uptrace/uptrace-go v1.21.0 go.opentelemetry.io/otel v1.22.0 ) @@ -25,7 +25,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/grpc-ecosystem/grpc-gateway/v2 v2.19.0 // indirect - github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1 // indirect + github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.2 // indirect go.opentelemetry.io/contrib/instrumentation/runtime v0.46.1 // indirect go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 // indirect go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect diff --git a/example/redis-bloom/go.mod b/example/redis-bloom/go.mod index 6a1ef50ba..1f48cdd67 100644 --- a/example/redis-bloom/go.mod +++ b/example/redis-bloom/go.mod @@ -4,7 +4,7 @@ go 1.21 replace github.com/redis/go-redis/v9 => ../.. -require github.com/redis/go-redis/v9 v9.18.0-beta.1 +require github.com/redis/go-redis/v9 v9.18.0-beta.2 require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect diff --git a/example/scan-struct/go.mod b/example/scan-struct/go.mod index b4a83a4c3..f39b57d92 100644 --- a/example/scan-struct/go.mod +++ b/example/scan-struct/go.mod @@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../.. require ( github.com/davecgh/go-spew v1.1.1 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 ) require ( diff --git a/extra/rediscensus/go.mod b/extra/rediscensus/go.mod index 3cb2a108d..02acd37da 100644 --- a/extra/rediscensus/go.mod +++ b/extra/rediscensus/go.mod @@ -7,8 +7,8 @@ replace github.com/redis/go-redis/v9 => ../.. replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd require ( - github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.2 + github.com/redis/go-redis/v9 v9.18.0-beta.2 go.opencensus.io v0.24.0 ) diff --git a/extra/rediscmd/go.mod b/extra/rediscmd/go.mod index d8d8405d1..ac3fcd679 100644 --- a/extra/rediscmd/go.mod +++ b/extra/rediscmd/go.mod @@ -7,7 +7,7 @@ replace github.com/redis/go-redis/v9 => ../.. require ( github.com/bsm/ginkgo/v2 v2.12.0 github.com/bsm/gomega v1.27.10 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 ) require ( diff --git a/extra/redisotel/go.mod b/extra/redisotel/go.mod index 3ebcca1dd..8bad997af 100644 --- a/extra/redisotel/go.mod +++ b/extra/redisotel/go.mod @@ -7,8 +7,8 @@ replace github.com/redis/go-redis/v9 => ../.. replace github.com/redis/go-redis/extra/rediscmd/v9 => ../rediscmd require ( - github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.1 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/extra/rediscmd/v9 v9.18.0-beta.2 + github.com/redis/go-redis/v9 v9.18.0-beta.2 go.opentelemetry.io/otel v1.22.0 go.opentelemetry.io/otel/metric v1.22.0 go.opentelemetry.io/otel/sdk v1.22.0 diff --git a/extra/redisprometheus/go.mod b/extra/redisprometheus/go.mod index 1b558bf26..4ec61c7fb 100644 --- a/extra/redisprometheus/go.mod +++ b/extra/redisprometheus/go.mod @@ -6,7 +6,7 @@ replace github.com/redis/go-redis/v9 => ../.. require ( github.com/prometheus/client_golang v1.14.0 - github.com/redis/go-redis/v9 v9.18.0-beta.1 + github.com/redis/go-redis/v9 v9.18.0-beta.2 ) require ( diff --git a/version.go b/version.go index a825df600..6654e73ad 100644 --- a/version.go +++ b/version.go @@ -2,5 +2,5 @@ package redis // Version is the current release version. func Version() string { - return "9.18.0-beta.1" + return "9.18.0-beta.2" }