From b6e72bc9ef75f3f563c7bcee5fba8f4ec4aa8965 Mon Sep 17 00:00:00 2001 From: ollietulloch Date: Fri, 24 Jan 2025 09:06:58 +0000 Subject: [PATCH 1/7] Fix concurrent-ruby version to 1.3.4 --- ndr_error.gemspec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ndr_error.gemspec b/ndr_error.gemspec index 25a2b70..fb6129f 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -20,6 +20,8 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.add_dependency 'rails', '>= 6.1', '< 7.3' + # See https://github.com/rails/rails/issues/54260. + s.add_dependency 'concurrent-ruby', '1.3.4' # Support rails 6.1 with Ruby 3.1 s.add_dependency 'net-imap' From 42b3594d4a48cad8f7ef00fd2f203ff2b3a23a74 Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Fri, 24 Jan 2025 12:02:20 +0000 Subject: [PATCH 2/7] Require latest ndr_ui with bootstrap 5 support. Fix concurrent-ruby version to 1.3.4 for older Rails versions --- gemfiles/Gemfile.rails61 | 3 +++ gemfiles/Gemfile.rails70 | 3 +++ ndr_error.gemspec | 4 +--- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gemfiles/Gemfile.rails61 b/gemfiles/Gemfile.rails61 index ff27abf..8fdb206 100644 --- a/gemfiles/Gemfile.rails61 +++ b/gemfiles/Gemfile.rails61 @@ -7,3 +7,6 @@ gem 'rails', '~> 6.1.0' # Rails 6.1 does not support sqlite3 2.x; it specifies gem "sqlite3", "~> 1.4" # in lib/active_record/connection_adapters/sqlite3_adapter.rb gem 'sqlite3', '~> 1.7' + +# Latest concurrent-ruby breaks Rails < 7.1. See https://github.com/rails/rails/issues/54260 +gem 'concurrent-ruby', '1.3.4' diff --git a/gemfiles/Gemfile.rails70 b/gemfiles/Gemfile.rails70 index 1792693..085807e 100644 --- a/gemfiles/Gemfile.rails70 +++ b/gemfiles/Gemfile.rails70 @@ -7,3 +7,6 @@ gem 'rails', '~> 7.0.0' # Rails 7.0 does not support sqlite3 2.x; it specifies gem "sqlite3", "~> 1.4" # in lib/active_record/connection_adapters/sqlite3_adapter.rb gem 'sqlite3', '~> 1.7' + +# Latest concurrent-ruby breaks Rails < 7.1. See https://github.com/rails/rails/issues/54260 +gem 'concurrent-ruby', '1.3.4' diff --git a/ndr_error.gemspec b/ndr_error.gemspec index fb6129f..5b91377 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -20,8 +20,6 @@ Gem::Specification.new do |s| s.required_ruby_version = '>= 3.0' s.add_dependency 'rails', '>= 6.1', '< 7.3' - # See https://github.com/rails/rails/issues/54260. - s.add_dependency 'concurrent-ruby', '1.3.4' # Support rails 6.1 with Ruby 3.1 s.add_dependency 'net-imap' @@ -30,7 +28,7 @@ Gem::Specification.new do |s| s.add_dependency 'will_paginate' - s.add_dependency 'ndr_ui' + s.add_dependency 'ndr_ui', '>= 5.0' s.add_development_dependency 'pry' s.add_development_dependency 'puma' From 1ff0f84679e15772c7275a5d8b96a07096df2845 Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Fri, 24 Jan 2025 12:06:46 +0000 Subject: [PATCH 3/7] GitHub Actions gem installation fix: run tests with psych version 4 --- ndr_error.gemspec | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ndr_error.gemspec b/ndr_error.gemspec index 5b91377..80f3fff 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -38,6 +38,11 @@ Gem::Specification.new do |s| # cf. gemfiles/Gemfile.rails70 s.add_development_dependency 'sqlite3' + # Workaround build issue on GitHub Actions with ruby <= 3.1 when installing sass-embedded + # gem version 1.81.0: NoMethodError: undefined method `parse' for # + # https://bugs.ruby-lang.org/issues/19371 + spec.add_development_dependency 'psych', '< 5' + s.add_development_dependency 'mocha' s.add_development_dependency 'test-unit', '~> 3.0' From 0d35fb31ca3488f17292bf814aeec47932d51dcd Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Fri, 24 Jan 2025 12:08:52 +0000 Subject: [PATCH 4/7] fix typo --- ndr_error.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ndr_error.gemspec b/ndr_error.gemspec index 80f3fff..7cb405a 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -41,7 +41,7 @@ Gem::Specification.new do |s| # Workaround build issue on GitHub Actions with ruby <= 3.1 when installing sass-embedded # gem version 1.81.0: NoMethodError: undefined method `parse' for # # https://bugs.ruby-lang.org/issues/19371 - spec.add_development_dependency 'psych', '< 5' + s.add_development_dependency 'psych', '< 5' s.add_development_dependency 'mocha' s.add_development_dependency 'test-unit', '~> 3.0' From a6fbedf4cd3f683a93ef1b906b8f3bb3e06174c7 Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Thu, 30 Jan 2025 14:08:43 +0000 Subject: [PATCH 5/7] Require older ndr_ui with bootstrap 3 support. --- ndr_error.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ndr_error.gemspec b/ndr_error.gemspec index 7cb405a..bda397b 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |s| s.add_dependency 'will_paginate' - s.add_dependency 'ndr_ui', '>= 5.0' + s.add_dependency 'ndr_ui', '< 5.0' s.add_development_dependency 'pry' s.add_development_dependency 'puma' From 0e10cb4a55923a3a3688240bde0f012c8bf94555 Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Thu, 30 Jan 2025 14:36:28 +0000 Subject: [PATCH 6/7] Retry assert_current_path to resolve Chrome 132 test brittleness --- test/test_helper.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/test/test_helper.rb b/test/test_helper.rb index 968a4cb..7935061 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -33,6 +33,23 @@ # Instead, insert fixtures afresh between each test: setup { DatabaseCleaner.start } teardown { DatabaseCleaner.clean } + + # assert_current_path is brittle with Chrome 132 on capybara 3.40.0 + # Retry up to 3 times on error + def assert_current_path(path, **options, &optional_filter_block) + failures = 0 + begin + super + rescue Selenium::WebDriver::Error::WebDriverError => e + failures += 1 + if e.message.start_with?('aborted by navigation: loader has changed ' \ + "while resolving nodes\n") && failures <= 3 + # puts "Retrying after failure #{failures}: #{e.class} #{e.message}" + retry + end + raise + end + end end # Include all capybara + poltergeist config From 9c2120fba0330bd37b2cde9394c7de904910eb6f Mon Sep 17 00:00:00 2001 From: Brian Shand Date: Thu, 30 Jan 2025 14:58:25 +0000 Subject: [PATCH 7/7] Rubocop tweaks --- ndr_error.gemspec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ndr_error.gemspec b/ndr_error.gemspec index bda397b..b3cec27 100644 --- a/ndr_error.gemspec +++ b/ndr_error.gemspec @@ -3,7 +3,9 @@ $LOAD_PATH.push File.expand_path('lib', __dir__) # Maintain your gem's version: require 'ndr_error/version' -# Describe your gem and declare its dependencies: +# We list development dependencies for all Rails versions here. +# Rails version-specific dependencies can go in the relevant Gemfile. +# rubocop:disable Gemspec/DevelopmentDependencies Gem::Specification.new do |s| s.name = 'ndr_error' s.version = NdrError::VERSION @@ -50,3 +52,4 @@ Gem::Specification.new do |s| s.add_development_dependency 'ndr_dev_support', '>= 5.10' s.add_development_dependency 'simplecov' end +# rubocop:enable Gemspec/DevelopmentDependencies