Skip to content

Dalli 4.0.0 release#1054

Merged
petergoldstein merged 3 commits into
mainfrom
v4.0.0-release
Jan 11, 2026
Merged

Dalli 4.0.0 release#1054
petergoldstein merged 3 commits into
mainfrom
v4.0.0-release

Conversation

@petergoldstein

@petergoldstein petergoldstein commented Jan 11, 2026

Copy link
Copy Markdown
Owner

Summary

This PR prepares the Dalli 4.0.0 release with breaking changes, security improvements, and expanded test coverage.

Breaking Changes

  • Ruby 3.1+ required - Dropped support for Ruby 2.6, 2.7, and 3.0
  • Removed Dalli::Server - Use Dalli::Protocol::Binary instead
  • Removed :compression option - Use :compress instead
  • Removed close_on_fork method - Use reconnect_on_fork instead

New Features & Improvements

  • Add security warning when using default Marshal serializer (can be silenced with silence_marshal_warning: true)
  • Add defense-in-depth input validation for stats command arguments
  • Add string_fastpath option to skip serialization for simple strings (byroot)
  • Meta protocol set performance improvement (danmayer)
  • Fix connection_pool 3.0 compatibility for Rack session store

Test Coverage

  • Add unit tests for binary protocol response processor
  • Add unit tests for meta protocol response processor
  • Add unit tests for meta protocol key regularizer
  • Add tests for stats input validation
  • Add tests for Marshal warning behavior

CI Updates

  • Update memcached test version from 1.6.34 to 1.6.40
  • Remove Ruby 2.6, 2.7, 3.0 from test matrix
  • Apply Ruby 3.1+ syntax improvements (anonymous block forwarding, Hash#except)

Test plan

  • All existing tests pass (535 runs, 143,385 assertions, 0 failures)
  • Rubocop passes with no offenses
  • New unit tests cover response processors and key regularizer
  • CI matrix tests Ruby 3.1, 3.2, 3.3, 3.4, 4.0, head, jruby-10
  • CI matrix tests memcached 1.5.22 and 1.6.40

🤖 Generated with Claude Code

petergoldstein and others added 3 commits January 11, 2026 16:48
Breaking changes:
- Require Ruby 3.1+ (drop support for Ruby 2.6, 2.7, 3.0)
- Remove deprecated Dalli::Server alias
- Remove deprecated :compression option (use :compress)
- Remove deprecated close_on_fork method (use reconnect_on_fork)

New features and improvements:
- Add security warning for default Marshal serializer (silence with silence_marshal_warning: true)
- Add defense-in-depth input validation for stats command
- Add unit tests for binary and meta response processors
- Add unit tests for meta key regularizer
- Update CI to test against memcached 1.6.40
- Apply Ruby 3.1+ syntax improvements (anonymous block forwarding, Hash#except)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Naming/PredicateName was renamed to Naming/PredicateMethod in newer
Rubocop versions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The benchmark job was timing out before completion.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@petergoldstein petergoldstein merged commit 9c65c4e into main Jan 11, 2026
49 of 50 checks passed
@petergoldstein petergoldstein deleted the v4.0.0-release branch January 26, 2026 15:20
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.

1 participant