From 7530e5a51c740b2652d4fc825c9c43143e60f552 Mon Sep 17 00:00:00 2001 From: HArsHA Ellanki Date: Mon, 2 Mar 2026 16:01:20 -0500 Subject: [PATCH 1/4] ruby upgrade and deep merge fix --- .github/workflows/rspec.yml | 4 ++-- .ruby-version | 2 +- lib/event_source.rb | 1 + lib/event_source/configure/config.rb | 2 +- lib/event_source/configure/servers.rb | 2 +- lib/event_source/protocols/http/faraday_queue_proxy.rb | 3 ++- spec/event_source/channel_spec.rb | 2 +- spec/event_source/connection_manager_spec.rb | 2 +- spec/rails_app/spec/railtie_spec.rb | 2 +- 9 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.github/workflows/rspec.yml b/.github/workflows/rspec.yml index 0f1b2a03..ae20d2dc 100644 --- a/.github/workflows/rspec.yml +++ b/.github/workflows/rspec.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4'] + ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -51,7 +51,7 @@ jobs: strategy: fail-fast: false matrix: - ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4'] + ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/.ruby-version b/.ruby-version index 0444f320..81f1b89f 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -3.2.1 \ No newline at end of file +3.4.7 \ No newline at end of file diff --git a/lib/event_source.rb b/lib/event_source.rb index 7597298e..ced79b12 100644 --- a/lib/event_source.rb +++ b/lib/event_source.rb @@ -11,6 +11,7 @@ require 'dry-struct' require 'oj' require 'active_support/all' # TODO: Remove ActiveSupport dependency +require 'deep_merge/rails_compat' require 'event_source/version' require 'event_source/ruby_versions' diff --git a/lib/event_source/configure/config.rb b/lib/event_source/configure/config.rb index f5cd74f6..42ece278 100644 --- a/lib/event_source/configure/config.rb +++ b/lib/event_source/configure/config.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'deep_merge' +require 'deep_merge/rails_compat' module EventSource module Configure diff --git a/lib/event_source/configure/servers.rb b/lib/event_source/configure/servers.rb index efab5baa..657bd9ec 100644 --- a/lib/event_source/configure/servers.rb +++ b/lib/event_source/configure/servers.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'deep_merge' +require 'deep_merge/rails_compat' module EventSource module Configure diff --git a/lib/event_source/protocols/http/faraday_queue_proxy.rb b/lib/event_source/protocols/http/faraday_queue_proxy.rb index e290909a..7465165e 100644 --- a/lib/event_source/protocols/http/faraday_queue_proxy.rb +++ b/lib/event_source/protocols/http/faraday_queue_proxy.rb @@ -49,7 +49,8 @@ def actions # @param [Object] subscriber_klass Subscriber class # @return [Queue] Queue instance def subscribe(subscriber_klass, _options) - unique_key = [app_name, formatted_exchange_name].join(delimiter) + subscriber_suffix = subscriber_klass.name.downcase.gsub('::', '_') + unique_key = [app_name, formatted_exchange_name].join(delimiter) + "_#{subscriber_suffix}" subscription_key = [app_name, formatted_exchange_name].join(delimiter) subscriber_suffix = subscriber_klass.name.downcase.gsub('::', '_') unique_key = subscription_key + "_#{subscriber_suffix}" diff --git a/spec/event_source/channel_spec.rb b/spec/event_source/channel_spec.rb index ada8f37e..0303f462 100644 --- a/spec/event_source/channel_spec.rb +++ b/spec/event_source/channel_spec.rb @@ -96,7 +96,7 @@ context '.cancel_consumers' do before do subject.subscribe_operations.values.each do |sub_op| - subscriber_klass = double('SubscriberKlass') + subscriber_klass = double('SubscriberKlass', name: "SubscriberKlass") sub_op.subscribe(subscriber_klass) end end diff --git a/spec/event_source/connection_manager_spec.rb b/spec/event_source/connection_manager_spec.rb index 3d6f14bb..72fac27b 100644 --- a/spec/event_source/connection_manager_spec.rb +++ b/spec/event_source/connection_manager_spec.rb @@ -116,7 +116,7 @@ connection.start unless connection.active? connection.add_channels(async_api_channels) channel.subscribe_operations.values.each do |sub_op| - subscriber_klass = double('SubscriberKlass') + subscriber_klass = double('SubscriberKlass', name: "SubscriberKlass") sub_op.subscribe(subscriber_klass) end end diff --git a/spec/rails_app/spec/railtie_spec.rb b/spec/rails_app/spec/railtie_spec.rb index ce6c8a1f..67172917 100644 --- a/spec/rails_app/spec/railtie_spec.rb +++ b/spec/rails_app/spec/railtie_spec.rb @@ -58,7 +58,7 @@ connection.add_channels(async_api_channels) channel.subscribe_operations.each_value do |subscribe_operation| - subscriber_klass = double('SubscriberKlass') + subscriber_klass = double('SubscriberKlass', name: "SubscriberKlass") subscribe_operation.subscribe(subscriber_klass) end From fba695cf41c5804e7f7b34afd5f6cb201ee59e1f Mon Sep 17 00:00:00 2001 From: HArsHA Ellanki Date: Wed, 15 Apr 2026 15:07:30 -0400 Subject: [PATCH 2/4] deep merge fix for both rails version below and above 7 --- lib/event_source.rb | 2 +- lib/event_source/configure/config.rb | 2 +- lib/event_source/configure/servers.rb | 2 +- lib/event_source/helpers.rb | 25 +++++++++++++++++++++++++ 4 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 lib/event_source/helpers.rb diff --git a/lib/event_source.rb b/lib/event_source.rb index ced79b12..00654de3 100644 --- a/lib/event_source.rb +++ b/lib/event_source.rb @@ -11,7 +11,7 @@ require 'dry-struct' require 'oj' require 'active_support/all' # TODO: Remove ActiveSupport dependency -require 'deep_merge/rails_compat' +require "event_source/helpers" require 'event_source/version' require 'event_source/ruby_versions' diff --git a/lib/event_source/configure/config.rb b/lib/event_source/configure/config.rb index 42ece278..225c5f3f 100644 --- a/lib/event_source/configure/config.rb +++ b/lib/event_source/configure/config.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'deep_merge/rails_compat' +require "event_source/helpers" module EventSource module Configure diff --git a/lib/event_source/configure/servers.rb b/lib/event_source/configure/servers.rb index 657bd9ec..749064af 100644 --- a/lib/event_source/configure/servers.rb +++ b/lib/event_source/configure/servers.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -require 'deep_merge/rails_compat' +require "event_source/helpers" module EventSource module Configure diff --git a/lib/event_source/helpers.rb b/lib/event_source/helpers.rb new file mode 100644 index 00000000..f6d1fd78 --- /dev/null +++ b/lib/event_source/helpers.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +if defined?(Rails::VERSION) && Rails::VERSION::MAJOR >= 7 + require 'deep_merge/rails_compat' +else + require 'deep_merge' +end + +module EventSource + # The `EventSource::Helpers` module serves as a namespace for helper methods used across the EventSource gem. + # These methods provide utility functions that are used by the other modules and classes in the gem. + module Helpers + def self.rails_7_1_or_higher? + defined?(Rails) && Rails::VERSION::MAJOR >= 7 + end + + def self.deep_merge_to_hash(target_hash, value) + if rails_7_1_or_higher? + target_hash.deeper_merge!(value) + else + target_hash.deep_merge!(value) + end + end + end +end \ No newline at end of file From f0c917e89e6b8aa839775d8d9ebbec0ba210b7d6 Mon Sep 17 00:00:00 2001 From: HArsHA Ellanki Date: Wed, 15 Apr 2026 16:57:39 -0400 Subject: [PATCH 3/4] removed old ruby version and duplicate code --- .github/workflows/rspec.yml | 4 ++-- lib/event_source/protocols/http/faraday_queue_proxy.rb | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rspec.yml b/.github/workflows/rspec.yml index ae20d2dc..8c3c827c 100644 --- a/.github/workflows/rspec.yml +++ b/.github/workflows/rspec.yml @@ -22,7 +22,7 @@ jobs: strategy: fail-fast: false matrix: - ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] + ruby_version: ['3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -51,7 +51,7 @@ jobs: strategy: fail-fast: false matrix: - ruby_version: ['2.7.5', '3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] + ruby_version: ['3.0.5', '3.1.4', '3.2.2', '3.3.8', '3.4.4', '3.4.7'] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 diff --git a/lib/event_source/protocols/http/faraday_queue_proxy.rb b/lib/event_source/protocols/http/faraday_queue_proxy.rb index 7465165e..9a53923b 100644 --- a/lib/event_source/protocols/http/faraday_queue_proxy.rb +++ b/lib/event_source/protocols/http/faraday_queue_proxy.rb @@ -49,8 +49,6 @@ def actions # @param [Object] subscriber_klass Subscriber class # @return [Queue] Queue instance def subscribe(subscriber_klass, _options) - subscriber_suffix = subscriber_klass.name.downcase.gsub('::', '_') - unique_key = [app_name, formatted_exchange_name].join(delimiter) + "_#{subscriber_suffix}" subscription_key = [app_name, formatted_exchange_name].join(delimiter) subscriber_suffix = subscriber_klass.name.downcase.gsub('::', '_') unique_key = subscription_key + "_#{subscriber_suffix}" From 1ecd745786aecad8e563afb7f25f89ef209259da Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 6 May 2026 15:13:07 +0000 Subject: [PATCH 4/4] Fix Rails version check to 7.1+ and add dependencies label to label-checker Agent-Logs-Url: https://github.com/ideacrew/event_source/sessions/7bc1ea89-0020-4f6d-9fa0-4f7fef871843 Co-authored-by: harshaellanki <20180210+harshaellanki@users.noreply.github.com> --- .github/workflows/label-checker.yml | 2 +- lib/event_source/helpers.rb | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/label-checker.yml b/.github/workflows/label-checker.yml index b3e3f93e..720ee4c0 100644 --- a/.github/workflows/label-checker.yml +++ b/.github/workflows/label-checker.yml @@ -17,5 +17,5 @@ jobs: - uses: docker://agilepathway/pull-request-label-checker:latest with: # At least one of the labels listed below must be present on the PR for the check to pass - any_of: breaking change,enhancement,bugfix,version bump,release,chore,documentation,security + any_of: breaking change,enhancement,bugfix,version bump,release,chore,documentation,security,dependencies repo_token: ${{ secrets.GITHUB_TOKEN }} diff --git a/lib/event_source/helpers.rb b/lib/event_source/helpers.rb index f6d1fd78..9eb3ef77 100644 --- a/lib/event_source/helpers.rb +++ b/lib/event_source/helpers.rb @@ -1,17 +1,11 @@ # frozen_string_literal: true -if defined?(Rails::VERSION) && Rails::VERSION::MAJOR >= 7 - require 'deep_merge/rails_compat' -else - require 'deep_merge' -end - module EventSource # The `EventSource::Helpers` module serves as a namespace for helper methods used across the EventSource gem. # These methods provide utility functions that are used by the other modules and classes in the gem. module Helpers def self.rails_7_1_or_higher? - defined?(Rails) && Rails::VERSION::MAJOR >= 7 + defined?(Rails) && Rails.gem_version >= Gem::Version.new('7.1.0') end def self.deep_merge_to_hash(target_hash, value) @@ -22,4 +16,10 @@ def self.deep_merge_to_hash(target_hash, value) end end end +end + +if EventSource::Helpers.rails_7_1_or_higher? + require 'deep_merge/rails_compat' +else + require 'deep_merge' end \ No newline at end of file