From 4a0b7a50eac1e5da90d6f2527f3aa023c1094741 Mon Sep 17 00:00:00 2001 From: Jonathan Hefner Date: Mon, 2 Oct 2023 12:39:59 -0500 Subject: [PATCH] Avoid defining Hash#deep_merge and #deep_merge! `config` uses `DeepMerge.deep_merge!` instead of `Hash#deep_merge!`, so monkey patching `Hash` is unnecessary. Furthermore, DeepMerge's `Hash` monkey patch is not compatible with Rails 7.1 (see [rails#49457][]). This commit changes `require 'deep_merge'` to `require 'deep_merge/core'` so that DeepMerge's `Hash` monkey patch is no longer loaded. Users who rely on the monkey patch can load it manually via `require 'deep_merge/deep_merge_hash'`. Closes #314. [rails#49457]: https://github.com/rails/rails/issues/49457 --- CHANGELOG.md | 6 ++++++ lib/config.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b7dc03f0..b2a3e8a8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 5.0.0 + +### BREAKING CHANGES + +* `config` no longer loads `deep_merge`'s monkey patch for `Hash#deep_merge` and `Hash#deep_merge!` ([#342](https://github.com/rubyconfig/config/pull/342)). If you rely on those methods and are not using Rails / Active Support, you can load the monkey patch via `require 'deep_merge/deep_merge_hash'`. + ## 4.2.1 ### Bug fixes diff --git a/lib/config.rb b/lib/config.rb index 4713f8ba..5bd5ae11 100644 --- a/lib/config.rb +++ b/lib/config.rb @@ -6,7 +6,7 @@ require 'config/sources/hash_source' require 'config/sources/env_source' require 'config/validation/schema' -require 'deep_merge' +require 'deep_merge/core' module Config extend Config::Validation::Schema