Logback 1.6.4
2026-09-24 Release of logback version 1.6.4
• Variable substitution is again applied to the scan attribute of the <configuration> element. The scanning refactoring in version 1.5.27 had dropped substitution, so values such as ${logback.scan.enabled:-true} were no longer resolved. As before version 1.5.27, an unrecognized non-empty value turns scanning on. The same substitution now applies to the scan attribute of <propertiesConfigurator>. This regression was reported in issues/1065 by vaibhavjain2.
• OutputStreamAppender and FileAppender now handle stateful encoders. The Encoder interface has a new default method called isStateful(), which returns false. An encoder that keeps state between calls to encode() can return true. For such encoders, the appender holds its write lock while encoding and while writing, so the output of concurrent appends cannot interleave. Stateless encoders still encode outside the lock, so their performance does not change. Existing encoders need no changes.
• Several race conditions in OutputStreamAppender and FileAppender were fixed. The appender is now marked started and the encoder header is written while the same lock is held, so a concurrent append can no longer write an event before the header. After acquiring the lock, the appender checks again whether it has been stopped, so no event is written after the footer. In prudent mode, FileAppender now encodes and writes each event while holding the lock.
• Fixed a data race on the logger count in LoggerContext. Loggers are created under the lock of their parent logger, so loggers with different parents could be created at the same time and increments of the shared counter could be lost. As a result, LoggerContext.size() could return a value lower than the actual number of loggers. The counter is now an AtomicInteger. This issue was reported in issues/1038 by hcantunc. The fix was contributed in PR #1055 by seonwoo_jung.
• TimeBasedRollingPolicy now supports half-day periods. Date patterns with the AM/PM marker, for example %d{yyyy-MM-dd-a}, used to be detected as daily and rolled over only at midnight. They now roll over at both 00:00 and 12:00. This issue was reported in issues/976 by shakthifuture. The fix was contributed in PR #1051 by seonwoo_jung. See TimeBasedRollingPolicy.
• If org.jline.jansi.AnsiConsole cannot be found on the class path, JansiConsoleAppender now emits warnings that explain how to add org.jline:jansi-core and then writes to the plain console stream. See codes.html#missingJlineJansi.
• The unused ch.qos.logback.classic.util.LogbackMDCAdapterSimple class was removed. LogbackMDCAdapter remains the default MDC adapter.
• A bit-wise identical binary of this version can be reproduced by building from source code at commit 07d291ca0d280bc5da934ec9ff5f1da634fd7937 associated with the tag v_1.6.4. The release was built using Java "21" 2023-10-17 LTS build 21.0.1.+12-LTS-29 under Linux Debian 11.6.
Full Changelog: https://github.com/qos-ch/logback/compare/v_1.6.3...v_1.6.4
7.8.0.RELEASE
The Lettuce team is pleased to announce the Lettuce 7.8.0 minor release!
Lettuce 7.8.0 supports Redis 2.6+ up to Redis 8.x. In terms of Java runtime, Lettuce requires at least Java 8 and works with Java 24. The driver is tested against Redis 8.10, Redis 8.8, Redis 8.6, Redis 8.4, Redis 8.2, Redis 8.0, Redis 7.4 and Redis 7.2.
Thanks to all contributors who made Lettuce 7.8.0.RELEASE possible.
📗 Links Reference documentation: https://lettuce.io/core/7.8.0.RELEASE
⭐ New Features
- [Redis 8.10] Add FT.AGGREGATE REDUCE COLLECT support with complex-value FieldValue by @uglide in https://github.com/redis/lettuce/pull/3878
- Prepare public APIs for optional Reactor support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3915
- Extend ZRANGE with additional arguments by @Dgramada in https://github.com/redis/lettuce/pull/3908
- Rework codecs for redis search module by @viktoriya-kutsarova in https://github.com/redis/lettuce/pull/3884
🐞 Bug Fixes
- Relax timeouts on MOVING rebind without buffered commands by @ggivo in https://github.com/redis/lettuce/pull/3894
- Signal onError instead of hanging when a reactive complex-output command errors by @HwangRock in https://github.com/redis/lettuce/pull/3851
- Fix ObjectOutput handling of top-level scalar responses by @cfcromn in https://github.com/redis/lettuce/pull/3861
- LCS command broken for non String codecs by @Dgramada in https://github.com/redis/lettuce/pull/3919
- fix: XAUTOCLAIM with JUSTID reports deleted PEL entries as claimed messages by @waterWang in https://github.com/redis/lettuce/pull/3901
- Support Sentinel implementations with a partial command surface by @uglide in https://github.com/redis/lettuce/pull/3920
⚙️ Maintenance
- Bump Netty to 4.2.17.Final by @a-TODO-rov in https://github.com/redis/lettuce/pull/3899
- Upgrade Reactor Core to 3.8.7 by @a-TODO-rov in https://github.com/redis/lettuce/pull/3905
💡 Other
- Promote geo failover API to GA by @a-TODO-rov in https://github.com/redis/lettuce/pull/3914
- Deprecate sorted set commands by @Dgramada in https://github.com/redis/lettuce/pull/3913
- Deprecate legacy client-side caching support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3897
- Make partitions and readFrom volatile in PooledClusterConnectionProvider #3777 by @big-cir in https://github.com/redis/lettuce/pull/3783
- Report test metrics from a nightly workflow by @bobymicroby in https://github.com/redis/lettuce/pull/3903
- Add warm up docs by @a-TODO-rov in https://github.com/redis/lettuce/pull/3895
- Update the docs after 7.7 release by @a-TODO-rov in https://github.com/redis/lettuce/pull/3896
- Support running integration tests against externally provisioned Redis Enterprise databases by @uglide in https://github.com/redis/lettuce/pull/3898
❤️ New Contributors - Welcome to the Lettuce family!
- @cfcromn made their first contribution in https://github.com/redis/lettuce/pull/3861
- @waterWang made their first contribution in https://github.com/redis/lettuce/pull/3901
- @bobymicroby made their first contribution in https://github.com/redis/lettuce/pull/3903
Full Changelog: https://github.com/redis/lettuce/compare/7.7.0.RELEASE...7.8.0.RELEASE
7.8.0.RELEASE
The Lettuce team is pleased to announce the Lettuce 7.8.0 minor release!
Lettuce 7.8.0 supports Redis 2.6+ up to Redis 8.x. In terms of Java runtime, Lettuce requires at least Java 8 and works with Java 24. The driver is tested against Redis 8.10, Redis 8.8, Redis 8.6, Redis 8.4, Redis 8.2, Redis 8.0, Redis 7.4 and Redis 7.2.
Thanks to all contributors who made Lettuce 7.8.0.RELEASE possible.
📗 Links Reference documentation: https://lettuce.io/core/7.8.0.RELEASE
⭐ New Features
- [Redis 8.10] Add FT.AGGREGATE REDUCE COLLECT support with complex-value FieldValue by @uglide in https://github.com/redis/lettuce/pull/3878
- Prepare public APIs for optional Reactor support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3915
- Extend ZRANGE with additional arguments by @Dgramada in https://github.com/redis/lettuce/pull/3908
- Rework codecs for redis search module by @viktoriya-kutsarova in https://github.com/redis/lettuce/pull/3884
🐞 Bug Fixes
- Relax timeouts on MOVING rebind without buffered commands by @ggivo in https://github.com/redis/lettuce/pull/3894
- Signal onError instead of hanging when a reactive complex-output command errors by @HwangRock in https://github.com/redis/lettuce/pull/3851
- Fix ObjectOutput handling of top-level scalar responses by @cfcromn in https://github.com/redis/lettuce/pull/3861
- LCS command broken for non String codecs by @Dgramada in https://github.com/redis/lettuce/pull/3919
- fix: XAUTOCLAIM with JUSTID reports deleted PEL entries as claimed messages by @waterWang in https://github.com/redis/lettuce/pull/3901
- Support Sentinel implementations with a partial command surface by @uglide in https://github.com/redis/lettuce/pull/3920
⚙️ Maintenance
- Bump Netty to 4.2.17.Final by @a-TODO-rov in https://github.com/redis/lettuce/pull/3899
- Upgrade Reactor Core to 3.8.7 by @a-TODO-rov in https://github.com/redis/lettuce/pull/3905
💡 Other
- Promote geo failover API to GA by @a-TODO-rov in https://github.com/redis/lettuce/pull/3914
- Deprecate sorted set commands by @Dgramada in https://github.com/redis/lettuce/pull/3913
- Deprecate legacy client-side caching support by @a-TODO-rov in https://github.com/redis/lettuce/pull/3897
- Make partitions and readFrom volatile in PooledClusterConnectionProvider #3777 by @big-cir in https://github.com/redis/lettuce/pull/3783
- Report test metrics from a nightly workflow by @bobymicroby in https://github.com/redis/lettuce/pull/3903
- Add warm up docs by @a-TODO-rov in https://github.com/redis/lettuce/pull/3895
- Update the docs after 7.7 release by @a-TODO-rov in https://github.com/redis/lettuce/pull/3896
- Support running integration tests against externally provisioned Redis Enterprise databases by @uglide in https://github.com/redis/lettuce/pull/3898
❤️ New Contributors - Welcome to the Lettuce family!
- @cfcromn made their first contribution in https://github.com/redis/lettuce/pull/3861
- @waterWang made their first contribution in https://github.com/redis/lettuce/pull/3901
- @bobymicroby made their first contribution in https://github.com/redis/lettuce/pull/3903
Full Changelog: https://github.com/redis/lettuce/compare/7.7.0.RELEASE...7.8.0.RELEASE
Nightly
- acd7ce8: [rb] remove stale Windows pending guard from Firefox signed directory addon test (Titus Fortner)
- 587731e: [rust] fix flaky tests (#18073) (Titus Fortner) #18073
- cecd644: [build] Automated Selenium Manager Update (Selenium CI Bot)
- 2b06948: [js] Align BiDi Generator with the low-level contract (#17973) (Puja Jagani) #17973