From f7ef10742c5f585a3a4b115d76513eb34071d568 Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 09:44:03 -0700 Subject: [PATCH 1/7] Expands appraisals to include multiple rails/orm versions --- Appraisals | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/Appraisals b/Appraisals index 14db46d..7144651 100644 --- a/Appraisals +++ b/Appraisals @@ -1,12 +1,30 @@ # frozen_string_literal: true +appraise 'rails-4-sqlite3' do + gem 'rails', '4.2.11.3' + gem 'sqlite3' +end + +appraise 'rails-5-sqlite3' do + gem 'rails', '5.2.4.4' + gem 'sqlite3' +end -appraise 'sqlite3' do - gem 'rails', '~> 5.2' +appraise 'rails-6-sqlite3' do + gem 'rails', '6.0.3.4' gem 'sqlite3' end -appraise 'mongodb' do - gem 'rails', '~> 5.2' - gem 'mongoid' - gem 'bson_ext' +appraise 'rails-4-mongodb' do + gem 'rails', '4.2.11.3' + gem 'mongoid', '5.4' +end + +appraise 'rails-5-mongodb' do + gem 'rails', '5.2.4.4' + gem 'mongoid', '6.4' +end + +appraise 'rails-6-mongodb' do + gem 'rails', '6.0.3.4' + gem 'mongoid', '7.2' end From 85dd9433c1cfd8dfe1969abfe953f2ee8e503ef3 Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 09:47:52 -0700 Subject: [PATCH 2/7] Comment out rails load defaults --- spec/dummy/config/application.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/dummy/config/application.rb b/spec/dummy/config/application.rb index 3c23b9d..a5e2c73 100644 --- a/spec/dummy/config/application.rb +++ b/spec/dummy/config/application.rb @@ -16,9 +16,9 @@ module Dummy class Application < Rails::Application - config.load_defaults 5.0 - unless ENV['BUNDLE_GEMFILE'].include?('mongodb') - Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true - end + # config.load_defaults 5.0 + # unless ENV['BUNDLE_GEMFILE'].include?('mongodb') + # Rails.application.config.active_record.sqlite3.represent_boolean_as_integer = true + # end end end From 8a6e8b5ef3a92c736d395e509c78488fe59cbb0c Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 09:52:06 -0700 Subject: [PATCH 3/7] Add ruby 2.7 to circle tests --- .circleci/config.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 9086601..6eacf84 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -55,11 +55,16 @@ jobs: docker: - image: circleci/ruby:2.5-node-browsers - image: circleci/mongo - build: + ruby-2.6: <<: *build_config docker: - image: circleci/ruby:2.6-node-browsers - image: circleci/mongo + ruby-2.7: + <<: *build_config + docker: + - image: circleci/ruby:2.7-node-browsers + - image: circleci/mongo workflows: version: 2 @@ -67,4 +72,5 @@ workflows: jobs: - ruby-2.4 - ruby-2.5 - - build + - ruby-2.6 + - ruby-2.7 From d187794ed9961bd1ade46dfb2edbf6e7d7be39ac Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 09:56:40 -0700 Subject: [PATCH 4/7] More config compatibility issues --- spec/dummy/config/environments/test.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/dummy/config/environments/test.rb b/spec/dummy/config/environments/test.rb index 9a24535..c9ecc12 100644 --- a/spec/dummy/config/environments/test.rb +++ b/spec/dummy/config/environments/test.rb @@ -13,10 +13,10 @@ config.eager_load = true # Configure public file server for tests with Cache-Control for performance - config.public_file_server.enabled = true - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" - } + # config.public_file_server.enabled = true + # config.public_file_server.headers = { + # 'Cache-Control' => "public, max-age=#{1.hour.to_i}" + # } # Show full error reports and disable caching config.consider_all_requests_local = true From 4f92be93abb2670aa86a83869f2738d9b0ef0233 Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 10:08:41 -0700 Subject: [PATCH 5/7] Rails 4 and CircleCI do not get along with Bundler > 2 --- Appraisals | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Appraisals b/Appraisals index 7144651..42e6ebd 100644 --- a/Appraisals +++ b/Appraisals @@ -1,8 +1,4 @@ # frozen_string_literal: true -appraise 'rails-4-sqlite3' do - gem 'rails', '4.2.11.3' - gem 'sqlite3' -end appraise 'rails-5-sqlite3' do gem 'rails', '5.2.4.4' @@ -14,11 +10,6 @@ appraise 'rails-6-sqlite3' do gem 'sqlite3' end -appraise 'rails-4-mongodb' do - gem 'rails', '4.2.11.3' - gem 'mongoid', '5.4' -end - appraise 'rails-5-mongodb' do gem 'rails', '5.2.4.4' gem 'mongoid', '6.4' From a07fdd420d7c9a64593463580d93f41155231a6b Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 10:53:46 -0700 Subject: [PATCH 6/7] See if we can't expand compatibility again --- Appraisals | 32 +++++++++++++++++------- bin/setup | 7 ++++-- devise_2fa.gemspec | 4 ++- spec/dummy/config/initializers/devise.rb | 2 +- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/Appraisals b/Appraisals index 42e6ebd..605fdb0 100644 --- a/Appraisals +++ b/Appraisals @@ -1,21 +1,35 @@ # frozen_string_literal: true -appraise 'rails-5-sqlite3' do +appraise 'rails_4_2_sqlite3' do + gem 'rails', '4.2.11.3' + gem 'sqlite3', '~> 1.3.6' +end + +appraise 'rails_5_2_sqlite3' do gem 'rails', '5.2.4.4' - gem 'sqlite3' + gem 'sqlite3', '~> 1.3.6' +end + +if Gem::Requirement.new('>= 2.5.0').satisfied_by?(Gem::Version.new(RUBY_VERSION)) + appraise 'rails_6_0_sqlite3' do + gem 'rails', '6.0.3.4' + gem 'sqlite3', '~> 1.4' + end end -appraise 'rails-6-sqlite3' do - gem 'rails', '6.0.3.4' - gem 'sqlite3' +appraise 'rails_4_2_mongodb' do + gem 'rails', '4.2.11.3' + gem 'mongoid', '5.4' end -appraise 'rails-5-mongodb' do +appraise 'rails_5_2_mongodb' do gem 'rails', '5.2.4.4' gem 'mongoid', '6.4' end -appraise 'rails-6-mongodb' do - gem 'rails', '6.0.3.4' - gem 'mongoid', '7.2' +if Gem::Requirement.new('>= 2.5.0').satisfied_by?(Gem::Version.new(RUBY_VERSION)) + appraise 'rails_6_0_mongodb' do + gem 'rails', '6.0.3.4' + gem 'mongoid', '7.2' + end end diff --git a/bin/setup b/bin/setup index 44a17a1..be61fb2 100755 --- a/bin/setup +++ b/bin/setup @@ -6,8 +6,11 @@ set -e DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" echo "Installing dependencies" -gem install bundler --conservative -bundle check || bundle install +gem update --system --force --no-document +gem uninstall -v '>= 2' bundler || true +gem install bundler -v '< 2' --no-document + +bundle check || bundle install --jobs=3 --retry=3 bundle exec appraisal install diff --git a/devise_2fa.gemspec b/devise_2fa.gemspec index 51ea539..117c88e 100644 --- a/devise_2fa.gemspec +++ b/devise_2fa.gemspec @@ -18,7 +18,9 @@ Gem::Specification.new do |gem| gem.test_files = gem.files.grep(%r{^(test|spec|features)/}) gem.require_paths = ['lib'] - gem.add_dependency "rails", ">= 4.1", "< 6.1" + gem.required_ruby_version = '>= 2.4.0' + + gem.add_dependency 'rails', '>= 4.1', '< 6.1' gem.add_runtime_dependency 'devise', '~> 4.6' gem.add_runtime_dependency 'rotp', '~> 5.1' diff --git a/spec/dummy/config/initializers/devise.rb b/spec/dummy/config/initializers/devise.rb index 0bc3442..0ab9793 100644 --- a/spec/dummy/config/initializers/devise.rb +++ b/spec/dummy/config/initializers/devise.rb @@ -8,7 +8,7 @@ # confirmation, reset password and unlock tokens in the database. # Devise will use the `secret_key_base` as its `secret_key` # by default. You can change it below and use your own secret key. - # config.secret_key = '4e16edbe729fb51c9803b5397d7ea7827a6d8e6cd8a7fe8b09810652b9458afb623a14850fafdeee853815c09b140d3552eac721f571d8673f0e1be6c4707567' + config.secret_key = '4e16edbe729fb51c9803b5397d7ea7827a6d8e6cd8a7fe8b09810652b9458afb623a14850fafdeee853815c09b140d3552eac721f571d8673f0e1be6c4707567' # ==> Controller configuration # Configure the parent class to the devise controllers. From a1cdfb7416abd7567542233140042139f8029ecd Mon Sep 17 00:00:00 2001 From: William Todd Date: Thu, 10 Dec 2020 13:11:57 -0700 Subject: [PATCH 7/7] EOL Rails 4 --- Appraisals | 10 ---------- bin/setup | 3 --- devise_2fa.gemspec | 2 +- 3 files changed, 1 insertion(+), 14 deletions(-) diff --git a/Appraisals b/Appraisals index 605fdb0..7fc457b 100644 --- a/Appraisals +++ b/Appraisals @@ -1,10 +1,5 @@ # frozen_string_literal: true -appraise 'rails_4_2_sqlite3' do - gem 'rails', '4.2.11.3' - gem 'sqlite3', '~> 1.3.6' -end - appraise 'rails_5_2_sqlite3' do gem 'rails', '5.2.4.4' gem 'sqlite3', '~> 1.3.6' @@ -17,11 +12,6 @@ if Gem::Requirement.new('>= 2.5.0').satisfied_by?(Gem::Version.new(RUBY_VERSION) end end -appraise 'rails_4_2_mongodb' do - gem 'rails', '4.2.11.3' - gem 'mongoid', '5.4' -end - appraise 'rails_5_2_mongodb' do gem 'rails', '5.2.4.4' gem 'mongoid', '6.4' diff --git a/bin/setup b/bin/setup index be61fb2..f7a7c4f 100755 --- a/bin/setup +++ b/bin/setup @@ -6,9 +6,6 @@ set -e DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" echo "Installing dependencies" -gem update --system --force --no-document -gem uninstall -v '>= 2' bundler || true -gem install bundler -v '< 2' --no-document bundle check || bundle install --jobs=3 --retry=3 diff --git a/devise_2fa.gemspec b/devise_2fa.gemspec index 117c88e..dd83dc1 100644 --- a/devise_2fa.gemspec +++ b/devise_2fa.gemspec @@ -20,7 +20,7 @@ Gem::Specification.new do |gem| gem.required_ruby_version = '>= 2.4.0' - gem.add_dependency 'rails', '>= 4.1', '< 6.1' + gem.add_dependency 'rails', '>= 5', '< 6.1' gem.add_runtime_dependency 'devise', '~> 4.6' gem.add_runtime_dependency 'rotp', '~> 5.1'