From c6814e61ee6e9100f19bfb965b67b7d0329233db Mon Sep 17 00:00:00 2001 From: Roberto Vasquez Angel <roberto.vasquez-angel@flip4new.de> Date: Fri, 23 Mar 2018 16:02:05 +0100 Subject: [PATCH 01/62] Remove force flag from migration This prevents potential destruction of already existent data. --- lib/generators/delayed_job/templates/migration.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/generators/delayed_job/templates/migration.rb b/lib/generators/delayed_job/templates/migration.rb index bb90f0b0..6269ff0a 100644 --- a/lib/generators/delayed_job/templates/migration.rb +++ b/lib/generators/delayed_job/templates/migration.rb @@ -1,6 +1,6 @@ class CreateDelayedJobs < ActiveRecord::Migration<%= migration_version %> def self.up - create_table :delayed_jobs, force: true do |table| + create_table :delayed_jobs do |table| table.integer :priority, default: 0, null: false # Allows some jobs to jump to the front of the queue table.integer :attempts, default: 0, null: false # Provides for retries, but still fail eventually. table.text :handler, null: false # YAML-encoded string of the object that will do work From 9e35c2e63062fab947c3081dac276a2db950bac3 Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@pcfry.com> Date: Wed, 6 Feb 2019 14:48:37 -0800 Subject: [PATCH 02/62] Optimize default sql performance Instead of reading the entire job record for our detect loop, just pluck the ID, and only read the job record after we've successfully locked the job. --- lib/delayed/backend/active_record.rb | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index b69fd050..83e72105 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -109,11 +109,15 @@ def self.reserve_with_scope_using_optimized_sql(ready_scope, worker, now) end def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) - # This is our old fashion, tried and true, but slower lookup - ready_scope.limit(worker.read_ahead).detect do |job| - count = ready_scope.where(id: job.id).update_all(locked_at: now, locked_by: worker.name) - count == 1 && job.reload + # This is our old fashion, tried and true, but possibly slower lookup + # Instead of reading the entire job record for our detect loop, just pluck the ID, + # and only read the job record after we've successfully locked the job. + locked_job_id = ready_scope.limit(worker.read_ahead).pluck(:id).detect do |job_id| + count = ready_scope.where(id: job_id).update_all(locked_at: now, locked_by: worker.name) + count == 1 end + + where(id: locked_job_id).first if locked_job_id end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From d3036fa3c9354daca0a6130f0aaa0e7418bdc915 Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@pcfry.com> Date: Thu, 7 Feb 2019 13:31:52 -0800 Subject: [PATCH 03/62] Update notes --- lib/delayed/backend/active_record.rb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index 83e72105..efa58128 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -112,6 +112,9 @@ def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) # This is our old fashion, tried and true, but possibly slower lookup # Instead of reading the entire job record for our detect loop, just pluck the ID, # and only read the job record after we've successfully locked the job. + # This can be particularly helpful when operating a large job cluster that uses + # a large read_ahead value to increase the odds of successfully locking a job with + # one method call to reserve_with_scope. locked_job_id = ready_scope.limit(worker.read_ahead).pluck(:id).detect do |job_id| count = ready_scope.where(id: job_id).update_all(locked_at: now, locked_by: worker.name) count == 1 From 49c33f212641a64de999c216b0863f6e8e4b48df Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@fry.sh> Date: Tue, 12 Feb 2019 11:40:16 -0800 Subject: [PATCH 04/62] Use `find_by` instead of `where` to avoid implicit ordering --- lib/delayed/backend/active_record.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index efa58128..7304e2e4 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -120,7 +120,7 @@ def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) count == 1 end - where(id: locked_job_id).first if locked_job_id + find_by(id: locked_job_id) if locked_job_id end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From 17de0daab8bcbb42029048610250750fce94dccd Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 14:05:59 -0500 Subject: [PATCH 05/62] Active record does not yet work with sqlite 1.4 --- gemfiles/sqlite3/3-0.gemfile | 2 +- gemfiles/sqlite3/3-1.gemfile | 2 +- gemfiles/sqlite3/3-2.gemfile | 2 +- gemfiles/sqlite3/4-0.gemfile | 2 +- gemfiles/sqlite3/4-1.gemfile | 2 +- gemfiles/sqlite3/4-2.gemfile | 2 +- gemfiles/sqlite3/5-0.gemfile | 2 +- gemfiles/sqlite3/5-1.gemfile | 2 +- gemfiles/sqlite3/5-2.gemfile | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gemfiles/sqlite3/3-0.gemfile b/gemfiles/sqlite3/3-0.gemfile index 71b10b4e..72f85ee8 100644 --- a/gemfiles/sqlite3/3-0.gemfile +++ b/gemfiles/sqlite3/3-0.gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "rake" group :test do - gem "sqlite3" + gem "sqlite3", "< 1.4" gem "coveralls", require: false gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/3-1.gemfile b/gemfiles/sqlite3/3-1.gemfile index 0099efad..ce158ca9 100644 --- a/gemfiles/sqlite3/3-1.gemfile +++ b/gemfiles/sqlite3/3-1.gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "rake" group :test do - gem "sqlite3" + gem "sqlite3", "< 1.4" gem "coveralls", require: false gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/3-2.gemfile b/gemfiles/sqlite3/3-2.gemfile index bb3394ea..a7fb4656 100644 --- a/gemfiles/sqlite3/3-2.gemfile +++ b/gemfiles/sqlite3/3-2.gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "rake" group :test do - gem "sqlite3" + gem "sqlite3", "< 1.4" gem "coveralls", require: false gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/4-0.gemfile b/gemfiles/sqlite3/4-0.gemfile index ba3e3327..634c13ec 100644 --- a/gemfiles/sqlite3/4-0.gemfile +++ b/gemfiles/sqlite3/4-0.gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "rake" group :test do - gem "sqlite3" + gem "sqlite3", "< 1.4" gem "coveralls", require: false gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/4-1.gemfile b/gemfiles/sqlite3/4-1.gemfile index 94a01013..03aafa9b 100644 --- a/gemfiles/sqlite3/4-1.gemfile +++ b/gemfiles/sqlite3/4-1.gemfile @@ -3,7 +3,7 @@ source "https://rubygems.org" gem "rake" group :test do - gem "sqlite3" + gem "sqlite3", "< 1.4" gem "coveralls", require: false gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index a2ae2f44..9c46aabf 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -8,7 +8,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3" + gem "sqlite3", "< 1.4" end gem "coveralls", require: false diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index bc6e076c..83d1ae25 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -8,7 +8,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3" + gem "sqlite3", "< 1.4" end gem "coveralls", require: false diff --git a/gemfiles/sqlite3/5-1.gemfile b/gemfiles/sqlite3/5-1.gemfile index 4c803830..aff40f70 100644 --- a/gemfiles/sqlite3/5-1.gemfile +++ b/gemfiles/sqlite3/5-1.gemfile @@ -8,7 +8,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3" + gem "sqlite3", "< 1.4" end gem "coveralls", require: false diff --git a/gemfiles/sqlite3/5-2.gemfile b/gemfiles/sqlite3/5-2.gemfile index 6dc5a0a0..1781b4f1 100644 --- a/gemfiles/sqlite3/5-2.gemfile +++ b/gemfiles/sqlite3/5-2.gemfile @@ -8,7 +8,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3" + gem "sqlite3", "< 1.4" end gem "coveralls", require: false From 00eb050fa732f36c3b1b09af8b082fb5567e2f49 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 14:14:49 -0500 Subject: [PATCH 06/62] Update ruby versions --- .travis.yml | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/.travis.yml b/.travis.yml index 88be7086..67e4b467 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,9 +22,10 @@ gemfile: # Supported - gemfiles/sqlite3/5-1.gemfile - gemfiles/sqlite3/5-2.gemfile rvm: # Supported - - 2.2.10 - - 2.3.7 - - 2.4.4 + - 2.3.8 + - 2.4.5 + - 2.5.3 + - 2.6.1 - jruby-9.1.8.0 jdk: oraclejdk8 @@ -62,25 +63,18 @@ matrix: # # The future # - # MRI 2.5.1 - - rvm: 2.5.1 - gemfile: gemfiles/mysql2/5-1.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/postgresql/5-1.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/sqlite3/5-1.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/mysql2/5-2.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/postgresql/5-2.gemfile - - rvm: 2.5.1 - gemfile: gemfiles/sqlite3/5-2.gemfile # Active Record head - - rvm: 2.5.1 + - rvm: 2.5.3 gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.5.1 + - rvm: 2.5.3 gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.5.1 + - rvm: 2.5.3 + gemfile: gemfiles/sqlite3/master.gemfile + - rvm: 2.6.1 + gemfile: gemfiles/mysql2/master.gemfile + - rvm: 2.6.1 + gemfile: gemfiles/postgresql/master.gemfile + - rvm: 2.6.1 gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - rvm: ruby-head From c4c130df578ae6b7eb89f5a4b50ca25c0c0d796c Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 14:27:15 -0500 Subject: [PATCH 07/62] Rubocop updates for latest rubocop --- .rubocop.yml | 3 +++ gemfiles/.rubocop.yml | 5 +++++ lib/delayed/backend/active_record.rb | 3 +++ 3 files changed, 11 insertions(+) create mode 100644 gemfiles/.rubocop.yml diff --git a/.rubocop.yml b/.rubocop.yml index 48e569cc..69ae01e9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -77,6 +77,9 @@ Style/FormatString: Style/Lambda: Enabled: false +Style/MultipleComparison: + Enabled: false + Style/NegatedIf: Enabled: false diff --git a/gemfiles/.rubocop.yml b/gemfiles/.rubocop.yml new file mode 100644 index 00000000..d10863b5 --- /dev/null +++ b/gemfiles/.rubocop.yml @@ -0,0 +1,5 @@ +inherit_from: + - ../.rubocop.yml + +Naming/FileName: + Enabled: false diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index b69fd050..bdb363c1 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -13,6 +13,7 @@ def reserve_sql_strategy=(val) if !(val == :optimized_sql || val == :default_sql) raise ArgumentError, "allowed values are :optimized_sql or :default_sql" end + @reserve_sql_strategy = val end end @@ -141,6 +142,7 @@ def self.reserve_with_scope_using_optimized_mysql(ready_scope, worker, now) # UPDATE...LIMIT. It uses separate queries to lock and return the job count = ready_scope.limit(1).update_all(locked_at: now, locked_by: worker.name) return nil if count == 0 + where(locked_at: now, locked_by: worker.name, failed_at: nil).first end @@ -154,6 +156,7 @@ def self.reserve_with_scope_using_optimized_mssql(ready_scope, worker, now) sql = "UPDATE #{quoted_table_name} SET locked_at = ?, locked_by = ? WHERE id IN (#{subquery_sql})" count = connection.execute(sanitize_sql([sql, now, worker.name])) return nil if count == 0 + # MSSQL JDBC doesn't support OUTPUT INSERTED.* for returning a result set, so query locked row where(locked_at: now, locked_by: worker.name, failed_at: nil).first end From 2dab4b99cfd674397c62b35472ed2e22f7eff5b5 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 16 Aug 2019 14:50:12 -0400 Subject: [PATCH 08/62] Bump travis ruby and jdk versions --- .travis.yml | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.travis.yml b/.travis.yml index 67e4b467..cd4bd6e8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,12 +23,12 @@ gemfile: # Supported - gemfiles/sqlite3/5-2.gemfile rvm: # Supported - 2.3.8 - - 2.4.5 - - 2.5.3 - - 2.6.1 - - jruby-9.1.8.0 + - 2.4.6 + - 2.5.5 + - 2.6.3 + - jruby-9.2.7.0 -jdk: oraclejdk8 +jdk: oraclejdk11 matrix: allow_failures: @@ -41,22 +41,22 @@ matrix: # The two combinations below are currently broken. We should stop allowing # failure as the issue is resolved. See: # https://github.com/jruby/activerecord-jdbc-adapter/issues/700 - - rvm: jruby-9.1.8.0 + - rvm: jruby-9.2.7.0 gemfile: gemfiles/mysql2/5-1.gemfile - - rvm: jruby-9.1.8.0 + - rvm: jruby-9.2.7.0 gemfile: gemfiles/postgresql/5-1.gemfile - - rvm: jruby-9.1.8.0 + - rvm: jruby-9.2.7.0 gemfile: gemfiles/mysql2/5-2.gemfile - - rvm: jruby-9.1.8.0 + - rvm: jruby-9.2.7.0 gemfile: gemfiles/postgresql/5-2.gemfile - - rvm: jruby-9.1.8.0 + - rvm: jruby-9.2.7.0 gemfile: gemfiles/sqlite3/5-2.gemfile include: # # Rubocop # - - rvm: 2.5.1 + - rvm: 2.5.5 gemfile: Gemfile env: - COMMAND=rubocop @@ -64,17 +64,17 @@ matrix: # The future # # Active Record head - - rvm: 2.5.3 + - rvm: 2.5.5 gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.5.3 + - rvm: 2.5.5 gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.5.3 + - rvm: 2.5.5 gemfile: gemfiles/sqlite3/master.gemfile - - rvm: 2.6.1 + - rvm: 2.6.3 gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.6.1 + - rvm: 2.6.3 gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.6.1 + - rvm: 2.6.3 gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - rvm: ruby-head @@ -129,11 +129,11 @@ matrix: - rvm: 2.1.9 gemfile: gemfiles/sqlite3/4-1.gemfile # Rails 5.0 was EOL with the release of 5.2 - - rvm: 2.4.4 + - rvm: 2.4.6 gemfile: gemfiles/mysql2/5-0.gemfile - - rvm: 2.4.4 + - rvm: 2.4.6 gemfile: gemfiles/postgresql/5-0.gemfile - - rvm: 2.4.4 + - rvm: 2.4.6 gemfile: gemfiles/sqlite3/5-0.gemfile # # The parallel dimension From 6615cf6162667262c5f406c2f652051985b6116a Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 16 Aug 2019 14:54:36 -0400 Subject: [PATCH 09/62] Add required database services --- .travis.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.travis.yml b/.travis.yml index cd4bd6e8..6ede0cae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,9 @@ language: ruby branches: only: - master +services: + - mysql + - postgresql before_script: - mysql -e 'create database delayed_job_test;' - mysql --version From af6251485070660f5f97a8b828257f00fce43e9c Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 16 Aug 2019 15:09:28 -0400 Subject: [PATCH 10/62] Add frozen_string_literal magic comment --- Gemfile | 2 ++ Rakefile | 2 ++ delayed_job_active_record.gemspec | 2 ++ gemfiles/mysql2/3-0.gemfile | 2 ++ gemfiles/mysql2/3-1.gemfile | 2 ++ gemfiles/mysql2/3-2.gemfile | 2 ++ gemfiles/mysql2/4-0.gemfile | 2 ++ gemfiles/mysql2/4-1.gemfile | 2 ++ gemfiles/mysql2/4-2.gemfile | 2 ++ gemfiles/mysql2/5-0.gemfile | 2 ++ gemfiles/mysql2/5-1.gemfile | 2 ++ gemfiles/mysql2/5-2.gemfile | 2 ++ gemfiles/mysql2/master.gemfile | 2 ++ gemfiles/postgresql/3-0.gemfile | 2 ++ gemfiles/postgresql/3-1.gemfile | 2 ++ gemfiles/postgresql/3-2.gemfile | 2 ++ gemfiles/postgresql/4-0.gemfile | 2 ++ gemfiles/postgresql/4-1.gemfile | 2 ++ gemfiles/postgresql/4-2.gemfile | 2 ++ gemfiles/postgresql/5-0.gemfile | 2 ++ gemfiles/postgresql/5-1.gemfile | 2 ++ gemfiles/postgresql/5-2.gemfile | 2 ++ gemfiles/postgresql/master.gemfile | 2 ++ gemfiles/sqlite3/3-0.gemfile | 2 ++ gemfiles/sqlite3/3-1.gemfile | 2 ++ gemfiles/sqlite3/3-2.gemfile | 2 ++ gemfiles/sqlite3/4-0.gemfile | 2 ++ gemfiles/sqlite3/4-1.gemfile | 2 ++ gemfiles/sqlite3/4-2.gemfile | 2 ++ gemfiles/sqlite3/5-0.gemfile | 2 ++ gemfiles/sqlite3/5-1.gemfile | 2 ++ gemfiles/sqlite3/5-2.gemfile | 2 ++ gemfiles/sqlite3/master.gemfile | 2 ++ lib/delayed/backend/active_record.rb | 2 ++ lib/delayed_job_active_record.rb | 2 ++ lib/generators/delayed_job/active_record_generator.rb | 2 ++ lib/generators/delayed_job/next_migration_version.rb | 2 ++ lib/generators/delayed_job/upgrade_generator.rb | 2 ++ spec/delayed/backend/active_record_spec.rb | 2 ++ spec/delayed/serialization/active_record_spec.rb | 2 ++ spec/helper.rb | 2 ++ 41 files changed, 82 insertions(+) diff --git a/Gemfile b/Gemfile index 6a063649..9f750668 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/Rakefile b/Rakefile index b8d3c778..3ce82364 100644 --- a/Rakefile +++ b/Rakefile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "bundler/gem_helper" Bundler::GemHelper.install_tasks diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index f0c5f348..4972524d 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Gem::Specification.new do |spec| spec.add_dependency "activerecord", [">= 3.0", "< 5.3"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] diff --git a/gemfiles/mysql2/3-0.gemfile b/gemfiles/mysql2/3-0.gemfile index 836d9985..e19ab399 100644 --- a/gemfiles/mysql2/3-0.gemfile +++ b/gemfiles/mysql2/3-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/3-1.gemfile b/gemfiles/mysql2/3-1.gemfile index 5eb7ed81..e7529864 100644 --- a/gemfiles/mysql2/3-1.gemfile +++ b/gemfiles/mysql2/3-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/3-2.gemfile b/gemfiles/mysql2/3-2.gemfile index 2fd7011f..e6c599c2 100644 --- a/gemfiles/mysql2/3-2.gemfile +++ b/gemfiles/mysql2/3-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/4-0.gemfile b/gemfiles/mysql2/4-0.gemfile index a7720eb1..416eced7 100644 --- a/gemfiles/mysql2/4-0.gemfile +++ b/gemfiles/mysql2/4-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/4-1.gemfile b/gemfiles/mysql2/4-1.gemfile index 6f204a0e..9d0d5602 100644 --- a/gemfiles/mysql2/4-1.gemfile +++ b/gemfiles/mysql2/4-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/4-2.gemfile b/gemfiles/mysql2/4-2.gemfile index 7e633d79..8a8610fc 100644 --- a/gemfiles/mysql2/4-2.gemfile +++ b/gemfiles/mysql2/4-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/5-0.gemfile b/gemfiles/mysql2/5-0.gemfile index 4c7d7d7d..dcf5d4ec 100644 --- a/gemfiles/mysql2/5-0.gemfile +++ b/gemfiles/mysql2/5-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/5-1.gemfile b/gemfiles/mysql2/5-1.gemfile index 249d3d2e..2a66992a 100644 --- a/gemfiles/mysql2/5-1.gemfile +++ b/gemfiles/mysql2/5-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/5-2.gemfile b/gemfiles/mysql2/5-2.gemfile index ff77e119..58c89300 100644 --- a/gemfiles/mysql2/5-2.gemfile +++ b/gemfiles/mysql2/5-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index 65659451..57ac46a5 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/3-0.gemfile b/gemfiles/postgresql/3-0.gemfile index b46ce039..5df71c60 100644 --- a/gemfiles/postgresql/3-0.gemfile +++ b/gemfiles/postgresql/3-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/3-1.gemfile b/gemfiles/postgresql/3-1.gemfile index 4fb54b95..96685679 100644 --- a/gemfiles/postgresql/3-1.gemfile +++ b/gemfiles/postgresql/3-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/3-2.gemfile b/gemfiles/postgresql/3-2.gemfile index e6ce602e..71cae40f 100644 --- a/gemfiles/postgresql/3-2.gemfile +++ b/gemfiles/postgresql/3-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/4-0.gemfile b/gemfiles/postgresql/4-0.gemfile index 31fba425..411d8bc6 100644 --- a/gemfiles/postgresql/4-0.gemfile +++ b/gemfiles/postgresql/4-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/4-1.gemfile b/gemfiles/postgresql/4-1.gemfile index 278501c1..ed86751f 100644 --- a/gemfiles/postgresql/4-1.gemfile +++ b/gemfiles/postgresql/4-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/4-2.gemfile b/gemfiles/postgresql/4-2.gemfile index 047833e4..ee591074 100644 --- a/gemfiles/postgresql/4-2.gemfile +++ b/gemfiles/postgresql/4-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/5-0.gemfile b/gemfiles/postgresql/5-0.gemfile index 3c71ef69..a0797428 100644 --- a/gemfiles/postgresql/5-0.gemfile +++ b/gemfiles/postgresql/5-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/5-1.gemfile b/gemfiles/postgresql/5-1.gemfile index 34e0c203..620753fc 100644 --- a/gemfiles/postgresql/5-1.gemfile +++ b/gemfiles/postgresql/5-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/5-2.gemfile b/gemfiles/postgresql/5-2.gemfile index e95902c7..141d9c42 100644 --- a/gemfiles/postgresql/5-2.gemfile +++ b/gemfiles/postgresql/5-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index 7ac422ba..55b60817 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/3-0.gemfile b/gemfiles/sqlite3/3-0.gemfile index 72f85ee8..51e1554a 100644 --- a/gemfiles/sqlite3/3-0.gemfile +++ b/gemfiles/sqlite3/3-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/3-1.gemfile b/gemfiles/sqlite3/3-1.gemfile index ce158ca9..f19ef48e 100644 --- a/gemfiles/sqlite3/3-1.gemfile +++ b/gemfiles/sqlite3/3-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/3-2.gemfile b/gemfiles/sqlite3/3-2.gemfile index a7fb4656..6717b18c 100644 --- a/gemfiles/sqlite3/3-2.gemfile +++ b/gemfiles/sqlite3/3-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/4-0.gemfile b/gemfiles/sqlite3/4-0.gemfile index 634c13ec..4f2a0231 100644 --- a/gemfiles/sqlite3/4-0.gemfile +++ b/gemfiles/sqlite3/4-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/4-1.gemfile b/gemfiles/sqlite3/4-1.gemfile index 03aafa9b..db43063d 100644 --- a/gemfiles/sqlite3/4-1.gemfile +++ b/gemfiles/sqlite3/4-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index 9c46aabf..43c159c9 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index 83d1ae25..e1dcc3ca 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/5-1.gemfile b/gemfiles/sqlite3/5-1.gemfile index aff40f70..b194e9c0 100644 --- a/gemfiles/sqlite3/5-1.gemfile +++ b/gemfiles/sqlite3/5-1.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/5-2.gemfile b/gemfiles/sqlite3/5-2.gemfile index 1781b4f1..4e133eb0 100644 --- a/gemfiles/sqlite3/5-2.gemfile +++ b/gemfiles/sqlite3/5-2.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index afd2bf9a..f3bd9885 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -1,3 +1,5 @@ +# frozen_string_literal: true + source "https://rubygems.org" gem "rake" diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index bdb363c1..691a7f9a 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "active_record/version" module Delayed module Backend diff --git a/lib/delayed_job_active_record.rb b/lib/delayed_job_active_record.rb index e6efd295..a09638e6 100644 --- a/lib/delayed_job_active_record.rb +++ b/lib/delayed_job_active_record.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "active_record" require "delayed_job" require "delayed/backend/active_record" diff --git a/lib/generators/delayed_job/active_record_generator.rb b/lib/generators/delayed_job/active_record_generator.rb index 3370f06b..b196a553 100644 --- a/lib/generators/delayed_job/active_record_generator.rb +++ b/lib/generators/delayed_job/active_record_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "generators/delayed_job/delayed_job_generator" require "generators/delayed_job/next_migration_version" require "rails/generators/migration" diff --git a/lib/generators/delayed_job/next_migration_version.rb b/lib/generators/delayed_job/next_migration_version.rb index 64983128..0eb0b8de 100644 --- a/lib/generators/delayed_job/next_migration_version.rb +++ b/lib/generators/delayed_job/next_migration_version.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module DelayedJob module NextMigrationVersion # while methods have moved around this has been the implementation diff --git a/lib/generators/delayed_job/upgrade_generator.rb b/lib/generators/delayed_job/upgrade_generator.rb index 2383f5ac..90a19773 100644 --- a/lib/generators/delayed_job/upgrade_generator.rb +++ b/lib/generators/delayed_job/upgrade_generator.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "generators/delayed_job/delayed_job_generator" require "generators/delayed_job/next_migration_version" require "rails/generators/migration" diff --git a/spec/delayed/backend/active_record_spec.rb b/spec/delayed/backend/active_record_spec.rb index dd7bad96..16820420 100644 --- a/spec/delayed/backend/active_record_spec.rb +++ b/spec/delayed/backend/active_record_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "helper" require "delayed/backend/active_record" diff --git a/spec/delayed/serialization/active_record_spec.rb b/spec/delayed/serialization/active_record_spec.rb index dbc4afae..4aa27f11 100644 --- a/spec/delayed/serialization/active_record_spec.rb +++ b/spec/delayed/serialization/active_record_spec.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "helper" describe ActiveRecord do diff --git a/spec/helper.rb b/spec/helper.rb index 80f3c280..06acfa35 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require "simplecov" require "coveralls" From 0b3a9eedfc0f7462ac427ecb91ee790caa3eac15 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 16 Aug 2019 15:09:49 -0400 Subject: [PATCH 11/62] Correct rubocop configuration --- .rubocop.yml | 5 +++-- Gemfile | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 69ae01e9..7a3adf27 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,5 +1,6 @@ -# Load the rubocop-rspec gem -require: rubocop-rspec +require: + - rubocop-rails + - rubocop-rspec Rails: Enabled: true diff --git a/Gemfile b/Gemfile index 9f750668..7580756e 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,7 @@ group :test do gem "coveralls", require: false gem "rspec", ">= 3" gem "rubocop" + gem "rubocop-rails" gem "rubocop-rspec" gem "simplecov", require: false end From 5429c1a38e48bcbc3d9a8daf2c398a84b205adf5 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 16 Aug 2019 15:56:41 -0400 Subject: [PATCH 12/62] Drop old mysql activerecord builds ActiveRecord <= 4.0 are not compatible with mysql 5.7. Choosing to drop these out of our test runs. --- .travis.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6ede0cae..bca7c8ab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -98,18 +98,12 @@ matrix: # # EOL Active Record # Rails 3.2 was maintained longer and is ruby 2.2 compatible - - rvm: 2.2.10 - gemfile: gemfiles/mysql2/3-2.gemfile - rvm: 2.2.10 gemfile: gemfiles/postgresql/3-2.gemfile - rvm: 2.2.10 gemfile: gemfiles/sqlite3/3-2.gemfile # Rails <= 4.0 was only compatible with ruby 2.0 # The test were running, but there are known incompatibilites - - rvm: 2.0.0-p648 - gemfile: gemfiles/mysql2/3-0.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/mysql2/3-1.gemfile - rvm: 2.0.0-p648 gemfile: gemfiles/postgresql/3-0.gemfile - rvm: 2.0.0-p648 @@ -118,8 +112,6 @@ matrix: gemfile: gemfiles/sqlite3/3-0.gemfile - rvm: 2.0.0-p648 gemfile: gemfiles/sqlite3/3-1.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/mysql2/4-0.gemfile - rvm: 2.0.0-p648 gemfile: gemfiles/postgresql/4-0.gemfile - rvm: 2.0.0-p648 From 745410dc2f89cfb9b85cce2e805d22752703b43e Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 14:55:42 -0500 Subject: [PATCH 13/62] Allow active record 6.0 --- delayed_job_active_record.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 4972524d..c1775b75 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,7 +1,7 @@ # frozen_string_literal: true Gem::Specification.new do |spec| - spec.add_dependency "activerecord", [">= 3.0", "< 5.3"] + spec.add_dependency "activerecord", [">= 3.0", "< 6.1"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" From ece98a3454a882fb5dddd7f21cdaa748e19a4fcb Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 14:57:20 -0500 Subject: [PATCH 14/62] Temporarily point at our compatibility branch --- gemfiles/mysql2/master.gemfile | 2 ++ gemfiles/postgresql/master.gemfile | 2 ++ gemfiles/sqlite3/master.gemfile | 2 ++ 3 files changed, 6 insertions(+) diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index 57ac46a5..e410d041 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index 55b60817..bb0cdbd8 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index f3bd9885..8481670c 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -20,4 +20,6 @@ group :test do gem "activerecord", github: "rails" end +gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" + gemspec path: "../../" From 1307e3dbc420a75e53a9564c2ec5803ab17512f6 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 18 Feb 2019 15:17:30 -0500 Subject: [PATCH 15/62] Bump postgres --- .travis.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.travis.yml b/.travis.yml index bca7c8ab..40cc3b5e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,8 @@ branches: services: - mysql - postgresql +addons: + postgresql: '9.6' before_script: - mysql -e 'create database delayed_job_test;' - mysql --version From 340add1d3443bd41f8ec06e50d7b104f1a03dc2b Mon Sep 17 00:00:00 2001 From: Petrik <petrik@deheus.net> Date: Tue, 9 Jul 2019 20:30:51 +0200 Subject: [PATCH 16/62] Fix primary key issue for Rails 3.x and 4.0 and mysql 5.7 MySQL 5.7 no longer supports null default values for the primary key. Override the Native default for primary keys in MySql. https://stackoverflow.com/a/34555109 --- spec/helper.rb | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/spec/helper.rb b/spec/helper.rb index 06acfa35..337771de 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -38,6 +38,17 @@ ActiveRecord::Base.logger = Delayed::Worker.logger ActiveRecord::Migration.verbose = false +# MySQL 5.7 no longer supports null default values for the primary key +# Override the default primary key type in Rails <= 4.0 +# https://stackoverflow.com/a/34555109 +if db_adapter == "mysql2" && + (::ActiveRecord::VERSION::MAJOR == 3 || + (::ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR == 0)) + class ActiveRecord::ConnectionAdapters::Mysql2Adapter + NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY" + end +end + migration_template = File.open("lib/generators/delayed_job/templates/migration.rb") # need to eval the template with the migration_version intact From 80b373625bf1b1f4f41ce780e9fad250bd61665d Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Tue, 20 Aug 2019 11:12:52 -0400 Subject: [PATCH 17/62] Tweak patch for mysql2 primary key For most versions the constant actually lives under `AbstractMysqlAdapter` --- spec/helper.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/spec/helper.rb b/spec/helper.rb index 337771de..0da3ba29 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -41,12 +41,15 @@ # MySQL 5.7 no longer supports null default values for the primary key # Override the default primary key type in Rails <= 4.0 # https://stackoverflow.com/a/34555109 -if db_adapter == "mysql2" && - (::ActiveRecord::VERSION::MAJOR == 3 || - (::ActiveRecord::VERSION::MAJOR == 4 && ActiveRecord::VERSION::MINOR == 0)) - class ActiveRecord::ConnectionAdapters::Mysql2Adapter - NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY" +if db_adapter == "mysql2" + types = if defined?(ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter) + # ActiveRecord 3.2+ + ActiveRecord::ConnectionAdapters::AbstractMysqlAdapter::NATIVE_DATABASE_TYPES + else + # ActiveRecord < 3.2 + ActiveRecord::ConnectionAdapters::Mysql2Adapter::NATIVE_DATABASE_TYPES end + types[:primary_key] = types[:primary_key].sub(" DEFAULT NULL", "") end migration_template = File.open("lib/generators/delayed_job/templates/migration.rb") From fd96df664b1c4bbe1023968fd48d4af53644fe79 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Tue, 20 Aug 2019 11:21:23 -0400 Subject: [PATCH 18/62] Update travis matrix for activerecord 6 --- .travis.yml | 30 +++++++++++++++++------------- gemfiles/mysql2/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/mysql2/master.gemfile | 2 +- gemfiles/postgresql/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/postgresql/master.gemfile | 2 +- gemfiles/sqlite3/6-0.gemfile | 23 +++++++++++++++++++++++ gemfiles/sqlite3/master.gemfile | 2 +- 7 files changed, 89 insertions(+), 16 deletions(-) create mode 100644 gemfiles/mysql2/6-0.gemfile create mode 100644 gemfiles/postgresql/6-0.gemfile create mode 100644 gemfiles/sqlite3/6-0.gemfile diff --git a/.travis.yml b/.travis.yml index 40cc3b5e..6d6de025 100644 --- a/.travis.yml +++ b/.travis.yml @@ -20,12 +20,15 @@ gemfile: # Supported - gemfiles/mysql2/4-2.gemfile - gemfiles/mysql2/5-1.gemfile - gemfiles/mysql2/5-2.gemfile + - gemfiles/mysql2/6-0.gemfile - gemfiles/postgresql/4-2.gemfile - gemfiles/postgresql/5-1.gemfile - gemfiles/postgresql/5-2.gemfile + - gemfiles/postgresql/6-0.gemfile - gemfiles/sqlite3/4-2.gemfile - gemfiles/sqlite3/5-1.gemfile - gemfiles/sqlite3/5-2.gemfile + - gemfiles/sqlite3/6-0.gemfile rvm: # Supported - 2.3.8 - 2.4.6 @@ -43,19 +46,20 @@ matrix: - gemfile: gemfiles/mysql2/master.gemfile # Future - gemfile: gemfiles/postgresql/master.gemfile # Future - gemfile: gemfiles/sqlite3/master.gemfile # Future - # The two combinations below are currently broken. We should stop allowing - # failure as the issue is resolved. See: - # https://github.com/jruby/activerecord-jdbc-adapter/issues/700 - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/mysql2/5-1.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/postgresql/5-1.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/mysql2/5-2.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/postgresql/5-2.gemfile - - rvm: jruby-9.2.7.0 - gemfile: gemfiles/sqlite3/5-2.gemfile + + exclude: + - gemfile: gemfiles/mysql2/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/mysql2/6-0.gemfile + rvm: 2.4.6 + - gemfile: gemfiles/postgresql/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/postgresql/6-0.gemfile + rvm: 2.4.6 + - gemfile: gemfiles/sqlite3/6-0.gemfile + rvm: 2.3.8 + - gemfile: gemfiles/sqlite3/6-0.gemfile + rvm: 2.4.6 include: # diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile new file mode 100644 index 00000000..74d1da37 --- /dev/null +++ b/gemfiles/mysql2/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcmysql-adapter", ">= 60.0.rc1" + end + + platforms :ruby, :mswin, :mingw do + gem "mysql2" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index e410d041..df677e1a 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile new file mode 100644 index 00000000..80090d8a --- /dev/null +++ b/gemfiles/postgresql/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcpostgresql-adapter", ">= 60.0.rc1" + end + + platforms :ruby, :mswin, :mingw do + gem "pg", "~> 0.18" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index bb0cdbd8..d4113a57 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" diff --git a/gemfiles/sqlite3/6-0.gemfile b/gemfiles/sqlite3/6-0.gemfile new file mode 100644 index 00000000..24c43c16 --- /dev/null +++ b/gemfiles/sqlite3/6-0.gemfile @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + gem "activerecord-jdbcsqlite3-adapter", ">= 60.0.rc1" + end + + platforms :ruby, :mswin, :mingw do + gem "sqlite3", "~> 1.4" + end + + gem "coveralls", require: false + gem "rspec", ">= 2.11" + gem "simplecov", require: false + + gem "activerecord", "~> 6.0.0" +end + +gemspec path: "../../" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index 8481670c..fd130839 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -20,6 +20,6 @@ group :test do gem "activerecord", github: "rails" end -gem "delayed_job", github: "collectiveidea/delayed_job", branch: "rails-6-compatibility" +gem "delayed_job", github: "collectiveidea/delayed_job" gemspec path: "../../" From 423830fcd8bfe02e05a87fa8009e4e3efc5816d0 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Tue, 20 Aug 2019 13:26:11 -0400 Subject: [PATCH 19/62] Remove defunct badges --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 7e87f786..b937f6db 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,6 @@ you're reading the documentation for the master branch. [](https://rubygems.org/gems/delayed_job_active_record) [](https://travis-ci.org/collectiveidea/delayed_job_active_record) -[](https://gemnasium.com/collectiveidea/delayed_job_active_record) -[](https://codeclimate.com/github/collectiveidea/delayed_job_active_record) [](https://coveralls.io/r/collectiveidea/delayed_job_active_record) ## Installation From 337c09c53f3e07b607ff8fe2495a2ae66499bc36 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Tue, 20 Aug 2019 13:45:33 -0400 Subject: [PATCH 20/62] Prepare 4.1.4 release --- README.md | 2 +- delayed_job_active_record.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b937f6db..ca4db81b 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ **If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. [View documentation for the latest release -(4.1.3).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.3)** +(4.1.4).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.4)** # DelayedJob ActiveRecord Backend diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index c1775b75..8b2ebb96 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -12,5 +12,5 @@ Gem::Specification.new do |spec| spec.name = "delayed_job_active_record" spec.require_paths = ["lib"] spec.summary = "ActiveRecord backend for DelayedJob" - spec.version = "4.1.3" + spec.version = "4.1.4" end From de6b3162510bb9303f1106bf8615606ffa5d88b7 Mon Sep 17 00:00:00 2001 From: Yuki Nishijima <mail@yukinishijima.net> Date: Tue, 28 Apr 2015 18:56:38 -0700 Subject: [PATCH 21/62] Add Railtie to delayed_job_active_record Explicitly requiring ActiveRecord models in `lib/delayed_job_active_record.rb` may result in losing custom configurations that are set in config/initializers on Rails. Let' use Railtie and ActiveSupport.on_load to set it up so that Delayed::Backend::ActiveRecord::Job model will respect arbitrary configs. --- lib/delayed/backend/active_record/railtie.rb | 14 ++++++++++++++ lib/delayed_job_active_record.rb | 11 ++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) create mode 100644 lib/delayed/backend/active_record/railtie.rb diff --git a/lib/delayed/backend/active_record/railtie.rb b/lib/delayed/backend/active_record/railtie.rb new file mode 100644 index 00000000..d126bc9e --- /dev/null +++ b/lib/delayed/backend/active_record/railtie.rb @@ -0,0 +1,14 @@ +module Delayed + module Backend + module ActiveRecord + class Railtie < ::Rails::Railtie + initializer 'delayed_job_active_record' do |_app| + ActiveSupport.on_load(:active_record) do + require "delayed/backend/active_record" + Delayed::Worker.backend = :active_record + end + end + end + end + end +end diff --git a/lib/delayed_job_active_record.rb b/lib/delayed_job_active_record.rb index a09638e6..896cdb3a 100644 --- a/lib/delayed_job_active_record.rb +++ b/lib/delayed_job_active_record.rb @@ -1,7 +1,12 @@ # frozen_string_literal: true -require "active_record" require "delayed_job" -require "delayed/backend/active_record" -Delayed::Worker.backend = :active_record +if defined?(Rails) + require "delayed/backend/active_record/railtie" +else + require "active_record" + require "delayed/backend/active_record" + + Delayed::Worker.backend = :active_record +end From 573dd7246ebd1e7e9331281c962e1801b0cad542 Mon Sep 17 00:00:00 2001 From: Petrik <petrik@deheus.net> Date: Tue, 9 Jul 2019 11:41:27 +0200 Subject: [PATCH 22/62] Fix Rails autoloading Delay initializing of backend until all initializers have run. --- lib/delayed/backend/active_record/railtie.rb | 10 +++++----- lib/delayed_job_active_record.rb | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/delayed/backend/active_record/railtie.rb b/lib/delayed/backend/active_record/railtie.rb index d126bc9e..e353ae77 100644 --- a/lib/delayed/backend/active_record/railtie.rb +++ b/lib/delayed/backend/active_record/railtie.rb @@ -1,12 +1,12 @@ +# frozen_string_literal: true + module Delayed module Backend module ActiveRecord class Railtie < ::Rails::Railtie - initializer 'delayed_job_active_record' do |_app| - ActiveSupport.on_load(:active_record) do - require "delayed/backend/active_record" - Delayed::Worker.backend = :active_record - end + config.after_initialize do + require "delayed/backend/active_record" + Delayed::Worker.backend = :active_record end end end diff --git a/lib/delayed_job_active_record.rb b/lib/delayed_job_active_record.rb index 896cdb3a..b6d4ca33 100644 --- a/lib/delayed_job_active_record.rb +++ b/lib/delayed_job_active_record.rb @@ -2,7 +2,7 @@ require "delayed_job" -if defined?(Rails) +if defined?(Rails::Railtie) require "delayed/backend/active_record/railtie" else require "active_record" From b7a609b64d40a97a654aa1898b2a739e4682ab7e Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@fry.sh> Date: Fri, 8 Nov 2019 08:20:30 -0800 Subject: [PATCH 23/62] Backward compatibility with Rails 3.0 Removing calls to `find_by` and `pluck` for Rails 3.0 compatibility. --- lib/delayed/backend/active_record.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index 7304e2e4..9c21b943 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -115,12 +115,12 @@ def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) # This can be particularly helpful when operating a large job cluster that uses # a large read_ahead value to increase the odds of successfully locking a job with # one method call to reserve_with_scope. - locked_job_id = ready_scope.limit(worker.read_ahead).pluck(:id).detect do |job_id| - count = ready_scope.where(id: job_id).update_all(locked_at: now, locked_by: worker.name) + locked_job_id = ready_scope.limit(worker.read_ahead).select(:id).detect do |job| + count = ready_scope.where(id: job.id).update_all(locked_at: now, locked_by: worker.name) count == 1 end - find_by(id: locked_job_id) if locked_job_id + find(locked_job_id) if locked_job_id end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From 750fada02d12761bf02e7012f7f4b667d3498d1b Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@fry.sh> Date: Fri, 8 Nov 2019 08:36:10 -0800 Subject: [PATCH 24/62] Pass ID to find --- lib/delayed/backend/active_record.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index 9c21b943..bc93f65b 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -115,12 +115,12 @@ def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) # This can be particularly helpful when operating a large job cluster that uses # a large read_ahead value to increase the odds of successfully locking a job with # one method call to reserve_with_scope. - locked_job_id = ready_scope.limit(worker.read_ahead).select(:id).detect do |job| + locked_job = ready_scope.limit(worker.read_ahead).select(:id).detect do |job| count = ready_scope.where(id: job.id).update_all(locked_at: now, locked_by: worker.name) count == 1 end - find(locked_job_id) if locked_job_id + find(locked_job.id) if locked_job end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From 4f0a7f55abe3c3d2f557468b54688d6bc35f6c06 Mon Sep 17 00:00:00 2001 From: Peter Fry <peter@fry.sh> Date: Fri, 8 Nov 2019 10:51:33 -0800 Subject: [PATCH 25/62] Use reload --- lib/delayed/backend/active_record.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index bc93f65b..7602cedf 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -120,7 +120,7 @@ def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) count == 1 end - find(locked_job.id) if locked_job + locked_job.reload if locked_job end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From 286c83476f17663f57d8b060437f9c8cf9e8ea95 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 8 Nov 2019 14:52:23 -0500 Subject: [PATCH 26/62] Cleanup test database Removing force from the migration means local runs need to delete the table first --- spec/helper.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spec/helper.rb b/spec/helper.rb index 0da3ba29..2b50e34d 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -72,6 +72,8 @@ def migration_version eval(migration_ruby) # rubocop:disable Security/Eval ActiveRecord::Schema.define do + drop_table :delayed_jobs, if_exists: true + CreateDelayedJobs.up create_table :stories, primary_key: :story_id, force: true do |table| From 88917890e3638fd825a179bb456bdeaf3d1c0451 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 8 Nov 2019 15:01:50 -0500 Subject: [PATCH 27/62] Fix for rubocop update Adding department name to all cops and disable safe navigator cop --- .rubocop.yml | 19 ++++++++++++------- spec/helper.rb | 4 ++-- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 7a3adf27..eabe3676 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -30,25 +30,25 @@ Style/EmptyMethod: EnforcedStyle: expanded # Align ends correctly. -EndAlignment: +Layout/EndAlignment: EnforcedStyleAlignWith: variable -LineLength: +Metrics/LineLength: Max: 120 -SignalException: +Style/SignalException: EnforcedStyle: only_raise -SpaceInsideBlockBraces: +Layout/SpaceInsideBlockBraces: SpaceBeforeBlockParameters: true -SpaceInsideHashLiteralBraces: +Layout/SpaceInsideHashLiteralBraces: EnforcedStyle: space -BracesAroundHashParameters: +Style/BracesAroundHashParameters: EnforcedStyle: context_dependent -StringLiterals: +Style/StringLiterals: EnforcedStyle: double_quotes ################# @@ -153,3 +153,8 @@ Style/FormatStringToken: Style/NumericPredicate: Enabled: false + +# We still allow really old versions of Ruby and Rails +# While I like the safe navigator, we don't want to use it here just yet +Style/SafeNavigation: + Enabled: false diff --git a/spec/helper.rb b/spec/helper.rb index 2b50e34d..b1477dd0 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -20,7 +20,7 @@ begin require "protected_attributes" -rescue LoadError # rubocop:disable HandleExceptions +rescue LoadError # rubocop:disable Lint/HandleExceptions end require "delayed_job_active_record" require "delayed/backend/shared_spec" @@ -30,7 +30,7 @@ db_adapter = ENV["ADAPTER"] gemfile = ENV["BUNDLE_GEMFILE"] -db_adapter ||= gemfile && gemfile[%r{gemfiles/(.*?)/}] && $1 # rubocop:disable PerlBackrefs +db_adapter ||= gemfile && gemfile[%r{gemfiles/(.*?)/}] && $1 # rubocop:disable Style/PerlBackrefs db_adapter ||= "sqlite3" config = YAML.load(File.read("spec/database.yml")) From ceb5b070a59ed99b4f6227e649e8874690873f86 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 8 Nov 2019 15:08:50 -0500 Subject: [PATCH 28/62] A touch of cleanup to the default sql method --- lib/delayed/backend/active_record.rb | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index cd4be656..d53c8fa6 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -113,17 +113,13 @@ def self.reserve_with_scope_using_optimized_sql(ready_scope, worker, now) def self.reserve_with_scope_using_default_sql(ready_scope, worker, now) # This is our old fashion, tried and true, but possibly slower lookup - # Instead of reading the entire job record for our detect loop, just pluck the ID, - # and only read the job record after we've successfully locked the job. - # This can be particularly helpful when operating a large job cluster that uses - # a large read_ahead value to increase the odds of successfully locking a job with - # one method call to reserve_with_scope. - locked_job = ready_scope.limit(worker.read_ahead).select(:id).detect do |job| + # Instead of reading the entire job record for our detect loop, we select only the id, + # and only read the full job record after we've successfully locked the job. + # This can have a noticable impact on large read_ahead configurations and large payload jobs. + ready_scope.limit(worker.read_ahead).select(:id).detect do |job| count = ready_scope.where(id: job.id).update_all(locked_at: now, locked_by: worker.name) - count == 1 + count == 1 && job.reload end - - locked_job.reload if locked_job end def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) From 0d1ed9a8d24015de87e6b7cc6967a4f8b626c8cc Mon Sep 17 00:00:00 2001 From: Ryan Lv <ryan.lv@sap.com> Date: Tue, 27 Dec 2016 13:58:06 +0800 Subject: [PATCH 29/62] Refactor sql statement Before `(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL` This sql statement is really confusing for sql newbie. After `((run_at <= ? AND (locked_at IS NULL OR locked_at < ?)) OR locked_by = ?) AND failed_at IS NULL` `And` has precedence over `Or`. they are equal. So this change will not break currently behavior. Just make it more plain for sql newbie. Reviewed by David Genord and Guihere Cavalcanti --- lib/delayed/backend/active_record.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index d53c8fa6..62b186a1 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -54,7 +54,7 @@ def self.set_delayed_job_table_name def self.ready_to_run(worker_name, max_run_time) where( - "(run_at <= ? AND (locked_at IS NULL OR locked_at < ?) OR locked_by = ?) AND failed_at IS NULL", + "((run_at <= ? AND (locked_at IS NULL OR locked_at < ?)) OR locked_by = ?) AND failed_at IS NULL", db_time_now, db_time_now - max_run_time, worker_name From d602a5dfdc14973af81f0387ee42c12fcdac73fd Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 8 Nov 2019 15:35:31 -0500 Subject: [PATCH 30/62] Fix spec setup for older activerecord --- spec/helper.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spec/helper.rb b/spec/helper.rb index b1477dd0..f1528db9 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -72,7 +72,10 @@ def migration_version eval(migration_ruby) # rubocop:disable Security/Eval ActiveRecord::Schema.define do - drop_table :delayed_jobs, if_exists: true + if table_exists?(:delayed_jobs) + # `if_exists: true` was only added in Rails 5 + drop_table :delayed_jobs + end CreateDelayedJobs.up From 6a899ebc11ed477910c7d4c43ce5356d0e795546 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 15:41:38 -0500 Subject: [PATCH 31/62] Updates to support rubocop 1.5.2 --- .rubocop.yml | 20 +++++++++++++++----- spec/helper.rb | 2 +- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index eabe3676..5a15ad1f 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,6 +8,8 @@ AllCops: Exclude: - lib/**/templates/* - vendor/**/* + NewCops: enable + SuggestExtensions: false ################# # [i] Overrides # @@ -33,7 +35,7 @@ Style/EmptyMethod: Layout/EndAlignment: EnforcedStyleAlignWith: variable -Metrics/LineLength: +Layout/LineLength: Max: 120 Style/SignalException: @@ -45,15 +47,17 @@ Layout/SpaceInsideBlockBraces: Layout/SpaceInsideHashLiteralBraces: EnforcedStyle: space -Style/BracesAroundHashParameters: - EnforcedStyle: context_dependent - Style/StringLiterals: EnforcedStyle: double_quotes ################# # Disabled cops # ################# +# We actually still work with ruby 2.0 but this setting only supports 2.4+ +# We aren't going to drop old versions just to make rubocop happy. +Gemspec/RequiredRubyVersion: + Enabled: false + Metrics/ClassLength: Enabled: false @@ -105,6 +109,9 @@ Style/WordArray: Rails/HasAndBelongsToMany: Enabled: false +Rails/RakeEnvironment: + Enabled: false + # enforces using the class name in a describe block (e.g. `describe TestedClass do`) RSpec/DescribeClass: Enabled: false @@ -127,12 +134,15 @@ RSpec/MessageExpectation: RSpec/MultipleExpectations: Enabled: false +RSpec/MultipleMemoizedHelpers: + Enabled: false + # enforces rules about how many nested `describe` blocks are allowed RSpec/NestedGroups: Enabled: false # enforces rules about using `it` or `describe` block methods instead of `feature` or `scenario` -Capybara/FeatureMethods: +RSpec/Capybara/FeatureMethods: Enabled: false ################### diff --git a/spec/helper.rb b/spec/helper.rb index f1528db9..83d10948 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -20,7 +20,7 @@ begin require "protected_attributes" -rescue LoadError # rubocop:disable Lint/HandleExceptions +rescue LoadError # rubocop:disable Lint/SuppressedException end require "delayed_job_active_record" require "delayed/backend/shared_spec" From 36c7813fd3db19699678183ce84dc5e5a6453f22 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 16:13:56 -0500 Subject: [PATCH 32/62] Cleanup from EOL ruby and rails versions --- .travis.yml | 97 ++++++++++++++++++++++++++--------------------------- 1 file changed, 47 insertions(+), 50 deletions(-) diff --git a/.travis.yml b/.travis.yml index 6d6de025..f770d4f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,24 +17,14 @@ env: - JRUBY_OPTS="$JRUBY_OPTS -Xcli.debug=true --debug" - COMMAND=rspec gemfile: # Supported - - gemfiles/mysql2/4-2.gemfile - - gemfiles/mysql2/5-1.gemfile - - gemfiles/mysql2/5-2.gemfile - gemfiles/mysql2/6-0.gemfile - - gemfiles/postgresql/4-2.gemfile - - gemfiles/postgresql/5-1.gemfile - - gemfiles/postgresql/5-2.gemfile - gemfiles/postgresql/6-0.gemfile - - gemfiles/sqlite3/4-2.gemfile - - gemfiles/sqlite3/5-1.gemfile - - gemfiles/sqlite3/5-2.gemfile - gemfiles/sqlite3/6-0.gemfile rvm: # Supported - - 2.3.8 - - 2.4.6 - - 2.5.5 - - 2.6.3 - - jruby-9.2.7.0 + - 2.5.8 + - 2.6.6 + - 2.7.2 + - jruby-9.2.13.0 jdk: oraclejdk11 @@ -47,25 +37,11 @@ matrix: - gemfile: gemfiles/postgresql/master.gemfile # Future - gemfile: gemfiles/sqlite3/master.gemfile # Future - exclude: - - gemfile: gemfiles/mysql2/6-0.gemfile - rvm: 2.3.8 - - gemfile: gemfiles/mysql2/6-0.gemfile - rvm: 2.4.6 - - gemfile: gemfiles/postgresql/6-0.gemfile - rvm: 2.3.8 - - gemfile: gemfiles/postgresql/6-0.gemfile - rvm: 2.4.6 - - gemfile: gemfiles/sqlite3/6-0.gemfile - rvm: 2.3.8 - - gemfile: gemfiles/sqlite3/6-0.gemfile - rvm: 2.4.6 - include: # # Rubocop # - - rvm: 2.5.5 + - rvm: 2.6.6 gemfile: Gemfile env: - COMMAND=rubocop @@ -73,32 +49,32 @@ matrix: # The future # # Active Record head - - rvm: 2.5.5 - gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.5.5 - gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.5.5 - gemfile: gemfiles/sqlite3/master.gemfile - rvm: 2.6.3 gemfile: gemfiles/mysql2/master.gemfile - rvm: 2.6.3 gemfile: gemfiles/postgresql/master.gemfile - rvm: 2.6.3 gemfile: gemfiles/sqlite3/master.gemfile + - rvm: 2.7.2 + gemfile: gemfiles/mysql2/master.gemfile + - rvm: 2.7.2 + gemfile: gemfiles/postgresql/master.gemfile + - rvm: 2.7.2 + gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - rvm: ruby-head - gemfile: gemfiles/mysql2/5-2.gemfile + gemfile: gemfiles/mysql2/6-0.gemfile - rvm: ruby-head - gemfile: gemfiles/postgresql/5-2.gemfile + gemfile: gemfiles/postgresql/6-0.gemfile - rvm: ruby-head - gemfile: gemfiles/sqlite3/5-2.gemfile + gemfile: gemfiles/sqlite3/6-0.gemfile # JRuby head - rvm: jruby-head - gemfile: gemfiles/mysql2/5-2.gemfile + gemfile: gemfiles/mysql2/6-0.gemfile - rvm: jruby-head - gemfile: gemfiles/postgresql/5-2.gemfile + gemfile: gemfiles/postgresql/6-0.gemfile - rvm: jruby-head - gemfile: gemfiles/sqlite3/5-2.gemfile + gemfile: gemfiles/sqlite3/6-0.gemfile # # The past # @@ -112,10 +88,10 @@ matrix: # The test were running, but there are known incompatibilites - rvm: 2.0.0-p648 gemfile: gemfiles/postgresql/3-0.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/postgresql/3-1.gemfile - rvm: 2.0.0-p648 gemfile: gemfiles/sqlite3/3-0.gemfile + - rvm: 2.0.0-p648 + gemfile: gemfiles/postgresql/3-1.gemfile - rvm: 2.0.0-p648 gemfile: gemfiles/sqlite3/3-1.gemfile - rvm: 2.0.0-p648 @@ -129,22 +105,43 @@ matrix: gemfile: gemfiles/postgresql/4-1.gemfile - rvm: 2.1.9 gemfile: gemfiles/sqlite3/4-1.gemfile - # Rails 5.0 was EOL with the release of 5.2 - - rvm: 2.4.6 + # Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4 + - rvm: 2.4.9 + gemfile: gemfiles/mysql2/4-2.gemfile + - rvm: 2.4.9 + gemfile: gemfiles/postgresql/4-2.gemfile + - rvm: 2.4.9 + gemfile: gemfiles/sqlite3/4-2.gemfile + # Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4 + - rvm: 2.4.9 gemfile: gemfiles/mysql2/5-0.gemfile - - rvm: 2.4.6 + - rvm: 2.4.9 gemfile: gemfiles/postgresql/5-0.gemfile - - rvm: 2.4.6 + - rvm: 2.4.9 gemfile: gemfiles/sqlite3/5-0.gemfile + # Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5 + - rvm: 2.5.8 + gemfile: gemfiles/mysql2/5-1.gemfile + - rvm: 2.5.8 + gemfile: gemfiles/postgresql/5-1.gemfile + - rvm: 2.5.8 + gemfile: gemfiles/sqlite3/5-1.gemfile + # While not yet EOL, 5.2 is only tested against up to ruby 2.5 https://github.com/rails/rails/blob/5-2-stable/.travis.yml + - rvm: 2.5.8 + gemfile: gemfiles/mysql2/5-2.gemfile + - rvm: 2.5.8 + gemfile: gemfiles/postgresql/5-2.gemfile + - rvm: 2.5.8 + gemfile: gemfiles/sqlite3/5-2.gemfile # # The parallel dimension # # Rubinius - rvm: rbx-2 - gemfile: gemfiles/mysql2/5-1.gemfile + gemfile: gemfiles/mysql2/6-0.gemfile - rvm: rbx-2 - gemfile: gemfiles/postgresql/5-1.gemfile + gemfile: gemfiles/postgresql/6-0.gemfile - rvm: rbx-2 - gemfile: gemfiles/sqlite3/5-1.gemfile + gemfile: gemfiles/sqlite3/6-0.gemfile sudo: false From 44eabb0d3a5403fd1da6d8a6bde1020423b70242 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 17:25:36 -0500 Subject: [PATCH 33/62] Attempt to use github actions --- .github/workflows/ci.yml | 156 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..a67850ee --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,156 @@ +name: CI + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + test: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + ruby: [2.5, 2.6, 2.7, jruby] + gemfile: + - gemfiles/mysql2/6-0.gemfile + - gemfiles/postgresql/6-0.gemfile + - gemfiles/sqlite3/6-0.gemfile + include: + # + # The future + # + # Active Record head + - ruby: 2.6 + gemfile: gemfiles/mysql2/master.gemfile + - ruby: 2.6 + gemfile: gemfiles/postgresql/master.gemfile + - ruby: 2.6 + gemfile: gemfiles/sqlite3/master.gemfile + - ruby: 2.7 + gemfile: gemfiles/mysql2/master.gemfile + - ruby: 2.7 + gemfile: gemfiles/postgresql/master.gemfile + - ruby: 2.7 + gemfile: gemfiles/sqlite3/master.gemfile + # MRI Ruby head + - ruby: head + gemfile: gemfiles/mysql2/6-0.gemfile + - ruby: head + gemfile: gemfiles/postgresql/6-0.gemfile + - ruby: head + gemfile: gemfiles/sqlite3/6-0.gemfile + # JRuby head + - ruby: jruby-head + gemfile: gemfiles/mysql2/6-0.gemfile + - ruby: jruby-head + gemfile: gemfiles/postgresql/6-0.gemfile + - ruby: jruby-head + gemfile: gemfiles/sqlite3/6-0.gemfile + # + # The past + # + # EOL Active Record + # Rails 3.2 was maintained longer and is ruby 2.2 compatible + - ruby: 2.2 + gemfile: gemfiles/postgresql/3-2.gemfile + - ruby: 2.2 + gemfile: gemfiles/sqlite3/3-2.gemfile + # Rails <= 4.0 was only compatible with ruby 2.0 + # The test were running, but there are known incompatibilites + # (Isn't supported on Github Actions) + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/postgresql/3-0.gemfile + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/sqlite3/3-0.gemfile + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/postgresql/3-1.gemfile + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/sqlite3/3-1.gemfile + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/postgresql/4-0.gemfile + # - rvm: 2.0.0-p648 + # gemfile: gemfiles/sqlite3/4-0.gemfile + # Rails 4.1 was only compatible with ruby 2.1 + - ruby: 2.1 + gemfile: gemfiles/mysql2/4-1.gemfile + - ruby: 2.1 + gemfile: gemfiles/postgresql/4-1.gemfile + - ruby: 2.1 + gemfile: gemfiles/sqlite3/4-1.gemfile + # Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4 + - ruby: 2.4 + gemfile: gemfiles/mysql2/4-2.gemfile + - ruby: 2.4 + gemfile: gemfiles/postgresql/4-2.gemfile + - ruby: 2.4 + gemfile: gemfiles/sqlite3/4-2.gemfile + # Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4 + - ruby: 2.4 + gemfile: gemfiles/mysql2/5-0.gemfile + - ruby: 2.4 + gemfile: gemfiles/postgresql/5-0.gemfile + - ruby: 2.4 + gemfile: gemfiles/sqlite3/5-0.gemfile + # Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5 + - ruby: 2.5 + gemfile: gemfiles/mysql2/5-1.gemfile + - ruby: 2.5 + gemfile: gemfiles/postgresql/5-1.gemfile + - ruby: 2.5 + gemfile: gemfiles/sqlite3/5-1.gemfile + # While not yet EOL, 5.2 is only tested against up to ruby 2.5 https://github.com/rails/rails/blob/5-2-stable/.travis.yml + - ruby: 2.5 + gemfile: gemfiles/mysql2/5-2.gemfile + - ruby: 2.5 + gemfile: gemfiles/postgresql/5-2.gemfile + - ruby: 2.5 + gemfile: gemfiles/sqlite3/5-2.gemfile + # + # The parallel dimension + # + # Rubinius (Isn't supported on Github Actions) + # - rvm: rbx-2 + # gemfile: gemfiles/mysql2/6-0.gemfile + # - rvm: rbx-2 + # gemfile: gemfiles/postgresql/6-0.gemfile + # - rvm: rbx-2 + # gemfile: gemfiles/sqlite3/6-0.gemfile + services: + postgres: + image: postgres + # Provide the password for postgres + env: + POSTGRES_DB: delayed_job_test + POSTGRES_PASSWORD: postgres + # Set health checks to wait until postgres has started + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + # Maps tcp port 5432 on service container to the host + - 5432:5432 + mysql: + image: mysql:5.7 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_DATABASE: delayed_job_test + ports: + - 3306:3306 + options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 + + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + env: + BUNDLE_GEMFILE: ${{ matrix.gemfile }} + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + - name: Run tests + env: + BUNDLE_GEMFILE: ${{ matrix.gemfile }} + run: bundle exec rspec From eb6c9527d9b62e5b575aecfc179d5ec5ef0bdaef Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 17:31:56 -0500 Subject: [PATCH 34/62] Update db config for Github actions --- spec/database.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/spec/database.yml b/spec/database.yml index 225b4bcf..0c41446c 100644 --- a/spec/database.yml +++ b/spec/database.yml @@ -1,19 +1,26 @@ mysql: adapter: mysql + host: 127.0.0.1 database: delayed_job_test username: root + port: 3306 encoding: utf8 mysql2: adapter: mysql2 + host: 127.0.0.1 database: delayed_job_test username: root + port: 3306 encoding: utf8 postgresql: adapter: postgresql + host: 127.0.0.1 database: delayed_job_test username: postgres + password: postgres + port: 5432 sqlite3: adapter: sqlite3 From 65c7907dfe4b0fe6fc8001389a6f579dea060d6f Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 18:43:24 -0500 Subject: [PATCH 35/62] Fix coveralls report --- .github/workflows/ci.yml | 16 ++++++++++++++++ Gemfile | 2 +- gemfiles/mysql2/3-0.gemfile | 2 +- gemfiles/mysql2/3-1.gemfile | 2 +- gemfiles/mysql2/3-2.gemfile | 2 +- gemfiles/mysql2/4-0.gemfile | 2 +- gemfiles/mysql2/4-1.gemfile | 2 +- gemfiles/mysql2/4-2.gemfile | 2 +- gemfiles/mysql2/5-0.gemfile | 2 +- gemfiles/mysql2/5-1.gemfile | 2 +- gemfiles/mysql2/5-2.gemfile | 2 +- gemfiles/mysql2/6-0.gemfile | 2 +- gemfiles/mysql2/master.gemfile | 2 +- gemfiles/postgresql/3-0.gemfile | 2 +- gemfiles/postgresql/3-1.gemfile | 2 +- gemfiles/postgresql/3-2.gemfile | 2 +- gemfiles/postgresql/4-0.gemfile | 2 +- gemfiles/postgresql/4-1.gemfile | 2 +- gemfiles/postgresql/4-2.gemfile | 2 +- gemfiles/postgresql/5-0.gemfile | 2 +- gemfiles/postgresql/5-1.gemfile | 2 +- gemfiles/postgresql/5-2.gemfile | 2 +- gemfiles/postgresql/6-0.gemfile | 2 +- gemfiles/postgresql/master.gemfile | 2 +- gemfiles/sqlite3/3-0.gemfile | 2 +- gemfiles/sqlite3/3-1.gemfile | 2 +- gemfiles/sqlite3/3-2.gemfile | 2 +- gemfiles/sqlite3/4-0.gemfile | 2 +- gemfiles/sqlite3/4-1.gemfile | 2 +- gemfiles/sqlite3/4-2.gemfile | 2 +- gemfiles/sqlite3/5-0.gemfile | 2 +- gemfiles/sqlite3/5-1.gemfile | 2 +- gemfiles/sqlite3/5-2.gemfile | 2 +- gemfiles/sqlite3/6-0.gemfile | 2 +- gemfiles/sqlite3/master.gemfile | 2 +- spec/helper.rb | 11 +++++++---- 36 files changed, 57 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a67850ee..605673bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -154,3 +154,19 @@ jobs: env: BUNDLE_GEMFILE: ${{ matrix.gemfile }} run: bundle exec rspec + - name: Coveralls Parallel + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.github_token }} + flag-name: run-${{ matrix.ruby }}-${{ matrix.gemfile }} + parallel: true + + finish: + needs: test + runs-on: ubuntu-latest + steps: + - name: Coveralls Finished + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.github_token }} + parallel-finished: true diff --git a/Gemfile b/Gemfile index 7580756e..b61d03ca 100644 --- a/Gemfile +++ b/Gemfile @@ -17,12 +17,12 @@ group :test do gem "sqlite3" end - gem "coveralls", require: false gem "rspec", ">= 3" gem "rubocop" gem "rubocop-rails" gem "rubocop-rspec" gem "simplecov", require: false + gem "simplecov-lcov", require: false end gemspec diff --git a/gemfiles/mysql2/3-0.gemfile b/gemfiles/mysql2/3-0.gemfile index e19ab399..b3b512e9 100644 --- a/gemfiles/mysql2/3-0.gemfile +++ b/gemfiles/mysql2/3-0.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "activerecord-mysql2-adapter" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/mysql2/3-1.gemfile b/gemfiles/mysql2/3-1.gemfile index e7529864..02bab73e 100644 --- a/gemfiles/mysql2/3-1.gemfile +++ b/gemfiles/mysql2/3-1.gemfile @@ -6,9 +6,9 @@ gem "rake" gem "mysql2", "~> 0.3.10" -gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false +gem "simplecov-lcov", require: false gem "activerecord", "~> 3.1.0" diff --git a/gemfiles/mysql2/3-2.gemfile b/gemfiles/mysql2/3-2.gemfile index e6c599c2..0418af4c 100644 --- a/gemfiles/mysql2/3-2.gemfile +++ b/gemfiles/mysql2/3-2.gemfile @@ -6,9 +6,9 @@ gem "rake" gem "mysql2", "~> 0.3.10" -gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false +gem "simplecov-lcov", require: false gem "activerecord", "~> 3.2.0" diff --git a/gemfiles/mysql2/4-0.gemfile b/gemfiles/mysql2/4-0.gemfile index 416eced7..68e58a9f 100644 --- a/gemfiles/mysql2/4-0.gemfile +++ b/gemfiles/mysql2/4-0.gemfile @@ -6,9 +6,9 @@ gem "rake" gem "mysql2", "~> 0.3.10" -gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false +gem "simplecov-lcov", require: false gem "activerecord", "~> 4.0.0" diff --git a/gemfiles/mysql2/4-1.gemfile b/gemfiles/mysql2/4-1.gemfile index 9d0d5602..c5b16d87 100644 --- a/gemfiles/mysql2/4-1.gemfile +++ b/gemfiles/mysql2/4-1.gemfile @@ -6,9 +6,9 @@ gem "rake" gem "mysql2", "~> 0.3.13" -gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false +gem "simplecov-lcov", require: false gem "activerecord", "~> 4.1.0" diff --git a/gemfiles/mysql2/4-2.gemfile b/gemfiles/mysql2/4-2.gemfile index 8a8610fc..541f06d6 100644 --- a/gemfiles/mysql2/4-2.gemfile +++ b/gemfiles/mysql2/4-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2", ">= 0.3.13", "< 0.5" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/mysql2/5-0.gemfile b/gemfiles/mysql2/5-0.gemfile index dcf5d4ec..1535d5dd 100644 --- a/gemfiles/mysql2/5-0.gemfile +++ b/gemfiles/mysql2/5-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/mysql2/5-1.gemfile b/gemfiles/mysql2/5-1.gemfile index 2a66992a..42d10e0b 100644 --- a/gemfiles/mysql2/5-1.gemfile +++ b/gemfiles/mysql2/5-1.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/mysql2/5-2.gemfile b/gemfiles/mysql2/5-2.gemfile index 58c89300..604dd440 100644 --- a/gemfiles/mysql2/5-2.gemfile +++ b/gemfiles/mysql2/5-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile index 74d1da37..bf0fa973 100644 --- a/gemfiles/mysql2/6-0.gemfile +++ b/gemfiles/mysql2/6-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index df677e1a..9ca0e8a0 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -13,9 +13,9 @@ group :test do gem "mysql2" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", github: "rails" end diff --git a/gemfiles/postgresql/3-0.gemfile b/gemfiles/postgresql/3-0.gemfile index 5df71c60..75521b03 100644 --- a/gemfiles/postgresql/3-0.gemfile +++ b/gemfiles/postgresql/3-0.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "pg", "~> 0.18" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/postgresql/3-1.gemfile b/gemfiles/postgresql/3-1.gemfile index 96685679..b5240c30 100644 --- a/gemfiles/postgresql/3-1.gemfile +++ b/gemfiles/postgresql/3-1.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "pg", "~> 0.18" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.1.0" end diff --git a/gemfiles/postgresql/3-2.gemfile b/gemfiles/postgresql/3-2.gemfile index 71cae40f..8a0a68e2 100644 --- a/gemfiles/postgresql/3-2.gemfile +++ b/gemfiles/postgresql/3-2.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "pg", "~> 0.18" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/postgresql/4-0.gemfile b/gemfiles/postgresql/4-0.gemfile index 411d8bc6..5a663ec9 100644 --- a/gemfiles/postgresql/4-0.gemfile +++ b/gemfiles/postgresql/4-0.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "pg", "~> 0.18" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.0.0" end diff --git a/gemfiles/postgresql/4-1.gemfile b/gemfiles/postgresql/4-1.gemfile index ed86751f..dc163cb5 100644 --- a/gemfiles/postgresql/4-1.gemfile +++ b/gemfiles/postgresql/4-1.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "pg", "~> 0.18" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/postgresql/4-2.gemfile b/gemfiles/postgresql/4-2.gemfile index ee591074..ecf500db 100644 --- a/gemfiles/postgresql/4-2.gemfile +++ b/gemfiles/postgresql/4-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/postgresql/5-0.gemfile b/gemfiles/postgresql/5-0.gemfile index a0797428..b2363a8c 100644 --- a/gemfiles/postgresql/5-0.gemfile +++ b/gemfiles/postgresql/5-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/postgresql/5-1.gemfile b/gemfiles/postgresql/5-1.gemfile index 620753fc..4f4505ea 100644 --- a/gemfiles/postgresql/5-1.gemfile +++ b/gemfiles/postgresql/5-1.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/postgresql/5-2.gemfile b/gemfiles/postgresql/5-2.gemfile index 141d9c42..6d244ed5 100644 --- a/gemfiles/postgresql/5-2.gemfile +++ b/gemfiles/postgresql/5-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile index 80090d8a..70762cfd 100644 --- a/gemfiles/postgresql/6-0.gemfile +++ b/gemfiles/postgresql/6-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index d4113a57..5f5956aa 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -13,9 +13,9 @@ group :test do gem "pg", "~> 0.18" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", github: "rails" end diff --git a/gemfiles/sqlite3/3-0.gemfile b/gemfiles/sqlite3/3-0.gemfile index 51e1554a..f7b6c253 100644 --- a/gemfiles/sqlite3/3-0.gemfile +++ b/gemfiles/sqlite3/3-0.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "sqlite3", "< 1.4" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/sqlite3/3-1.gemfile b/gemfiles/sqlite3/3-1.gemfile index f19ef48e..f0fd1094 100644 --- a/gemfiles/sqlite3/3-1.gemfile +++ b/gemfiles/sqlite3/3-1.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "sqlite3", "< 1.4" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.1.0" end diff --git a/gemfiles/sqlite3/3-2.gemfile b/gemfiles/sqlite3/3-2.gemfile index 6717b18c..3c1cd917 100644 --- a/gemfiles/sqlite3/3-2.gemfile +++ b/gemfiles/sqlite3/3-2.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "sqlite3", "< 1.4" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/sqlite3/4-0.gemfile b/gemfiles/sqlite3/4-0.gemfile index 4f2a0231..8a99f7ff 100644 --- a/gemfiles/sqlite3/4-0.gemfile +++ b/gemfiles/sqlite3/4-0.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "sqlite3", "< 1.4" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.0.0" end diff --git a/gemfiles/sqlite3/4-1.gemfile b/gemfiles/sqlite3/4-1.gemfile index db43063d..7ee34625 100644 --- a/gemfiles/sqlite3/4-1.gemfile +++ b/gemfiles/sqlite3/4-1.gemfile @@ -7,9 +7,9 @@ gem "rake" group :test do gem "sqlite3", "< 1.4" - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index 43c159c9..7a45e6ec 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3", "< 1.4" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index e1dcc3ca..44b23282 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3", "< 1.4" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/sqlite3/5-1.gemfile b/gemfiles/sqlite3/5-1.gemfile index b194e9c0..31d8a489 100644 --- a/gemfiles/sqlite3/5-1.gemfile +++ b/gemfiles/sqlite3/5-1.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3", "< 1.4" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/sqlite3/5-2.gemfile b/gemfiles/sqlite3/5-2.gemfile index 4e133eb0..682f4053 100644 --- a/gemfiles/sqlite3/5-2.gemfile +++ b/gemfiles/sqlite3/5-2.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3", "< 1.4" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/sqlite3/6-0.gemfile b/gemfiles/sqlite3/6-0.gemfile index 24c43c16..9f48cc50 100644 --- a/gemfiles/sqlite3/6-0.gemfile +++ b/gemfiles/sqlite3/6-0.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3", "~> 1.4" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index fd130839..393c6a57 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -13,9 +13,9 @@ group :test do gem "sqlite3" end - gem "coveralls", require: false gem "rspec", ">= 2.11" gem "simplecov", require: false + gem "simplecov-lcov", require: false gem "activerecord", github: "rails" end diff --git a/spec/helper.rb b/spec/helper.rb index 83d10948..8d5bf258 100644 --- a/spec/helper.rb +++ b/spec/helper.rb @@ -1,18 +1,21 @@ # frozen_string_literal: true require "simplecov" -require "coveralls" +require "simplecov-lcov" -SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new( +SimpleCov::Formatter::LcovFormatter.config do |c| + c.report_with_single_file = true + c.single_report_path = "coverage/lcov.info" +end +SimpleCov.formatters = SimpleCov::Formatter::MultiFormatter.new( [ SimpleCov::Formatter::HTMLFormatter, - Coveralls::SimpleCov::Formatter + SimpleCov::Formatter::LcovFormatter ] ) SimpleCov.start do add_filter "/spec/" - minimum_coverage(73.33) end require "logger" From 15f168f9c6d82f9be59468cc5f1f440550cd4671 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 19:24:20 -0500 Subject: [PATCH 36/62] Allow experimental failures --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 605673bb..e80f7b17 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -117,6 +117,7 @@ jobs: # gemfile: gemfiles/postgresql/6-0.gemfile # - rvm: rbx-2 # gemfile: gemfiles/sqlite3/6-0.gemfile + continue-on-error: ${{ endsWith(matrix.gemfile, 'master.gemfile') || endsWith(matrix.ruby, 'head') }} services: postgres: image: postgres From 2b6a1bfaae661408e6e5be8354469677f5b4cf49 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 19:36:23 -0500 Subject: [PATCH 37/62] Set minimum version for simplecov --- Gemfile | 4 ++-- gemfiles/mysql2/3-0.gemfile | 4 ++-- gemfiles/mysql2/3-1.gemfile | 4 ++-- gemfiles/mysql2/3-2.gemfile | 4 ++-- gemfiles/mysql2/4-0.gemfile | 4 ++-- gemfiles/mysql2/4-1.gemfile | 4 ++-- gemfiles/mysql2/4-2.gemfile | 4 ++-- gemfiles/mysql2/5-0.gemfile | 4 ++-- gemfiles/mysql2/5-1.gemfile | 4 ++-- gemfiles/mysql2/5-2.gemfile | 4 ++-- gemfiles/mysql2/6-0.gemfile | 4 ++-- gemfiles/mysql2/master.gemfile | 4 ++-- gemfiles/postgresql/3-0.gemfile | 4 ++-- gemfiles/postgresql/3-1.gemfile | 4 ++-- gemfiles/postgresql/3-2.gemfile | 4 ++-- gemfiles/postgresql/4-0.gemfile | 4 ++-- gemfiles/postgresql/4-1.gemfile | 4 ++-- gemfiles/postgresql/4-2.gemfile | 4 ++-- gemfiles/postgresql/5-0.gemfile | 4 ++-- gemfiles/postgresql/5-1.gemfile | 4 ++-- gemfiles/postgresql/5-2.gemfile | 4 ++-- gemfiles/postgresql/6-0.gemfile | 4 ++-- gemfiles/postgresql/master.gemfile | 4 ++-- gemfiles/sqlite3/3-0.gemfile | 4 ++-- gemfiles/sqlite3/3-1.gemfile | 4 ++-- gemfiles/sqlite3/3-2.gemfile | 4 ++-- gemfiles/sqlite3/4-0.gemfile | 4 ++-- gemfiles/sqlite3/4-1.gemfile | 4 ++-- gemfiles/sqlite3/4-2.gemfile | 4 ++-- gemfiles/sqlite3/5-0.gemfile | 4 ++-- gemfiles/sqlite3/5-1.gemfile | 4 ++-- gemfiles/sqlite3/5-2.gemfile | 4 ++-- gemfiles/sqlite3/6-0.gemfile | 4 ++-- gemfiles/sqlite3/master.gemfile | 4 ++-- 34 files changed, 68 insertions(+), 68 deletions(-) diff --git a/Gemfile b/Gemfile index b61d03ca..2feab4db 100644 --- a/Gemfile +++ b/Gemfile @@ -21,8 +21,8 @@ group :test do gem "rubocop" gem "rubocop-rails" gem "rubocop-rspec" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false end gemspec diff --git a/gemfiles/mysql2/3-0.gemfile b/gemfiles/mysql2/3-0.gemfile index b3b512e9..5c795a97 100644 --- a/gemfiles/mysql2/3-0.gemfile +++ b/gemfiles/mysql2/3-0.gemfile @@ -8,8 +8,8 @@ group :test do gem "activerecord-mysql2-adapter" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/mysql2/3-1.gemfile b/gemfiles/mysql2/3-1.gemfile index 02bab73e..88ab34c8 100644 --- a/gemfiles/mysql2/3-1.gemfile +++ b/gemfiles/mysql2/3-1.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" -gem "simplecov", require: false -gem "simplecov-lcov", require: false +gem "simplecov", ">= 0.20.0", require: false +gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.1.0" diff --git a/gemfiles/mysql2/3-2.gemfile b/gemfiles/mysql2/3-2.gemfile index 0418af4c..e0b06405 100644 --- a/gemfiles/mysql2/3-2.gemfile +++ b/gemfiles/mysql2/3-2.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" -gem "simplecov", require: false -gem "simplecov-lcov", require: false +gem "simplecov", ">= 0.20.0", require: false +gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.2.0" diff --git a/gemfiles/mysql2/4-0.gemfile b/gemfiles/mysql2/4-0.gemfile index 68e58a9f..c6308680 100644 --- a/gemfiles/mysql2/4-0.gemfile +++ b/gemfiles/mysql2/4-0.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" -gem "simplecov", require: false -gem "simplecov-lcov", require: false +gem "simplecov", ">= 0.20.0", require: false +gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.0.0" diff --git a/gemfiles/mysql2/4-1.gemfile b/gemfiles/mysql2/4-1.gemfile index c5b16d87..fdcc9cc4 100644 --- a/gemfiles/mysql2/4-1.gemfile +++ b/gemfiles/mysql2/4-1.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.13" gem "rspec", ">= 2.11" -gem "simplecov", require: false -gem "simplecov-lcov", require: false +gem "simplecov", ">= 0.20.0", require: false +gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.1.0" diff --git a/gemfiles/mysql2/4-2.gemfile b/gemfiles/mysql2/4-2.gemfile index 541f06d6..66d9e95c 100644 --- a/gemfiles/mysql2/4-2.gemfile +++ b/gemfiles/mysql2/4-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/mysql2/5-0.gemfile b/gemfiles/mysql2/5-0.gemfile index 1535d5dd..9634e9d1 100644 --- a/gemfiles/mysql2/5-0.gemfile +++ b/gemfiles/mysql2/5-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/mysql2/5-1.gemfile b/gemfiles/mysql2/5-1.gemfile index 42d10e0b..245d42aa 100644 --- a/gemfiles/mysql2/5-1.gemfile +++ b/gemfiles/mysql2/5-1.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/mysql2/5-2.gemfile b/gemfiles/mysql2/5-2.gemfile index 604dd440..5603af01 100644 --- a/gemfiles/mysql2/5-2.gemfile +++ b/gemfiles/mysql2/5-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile index bf0fa973..539a3917 100644 --- a/gemfiles/mysql2/6-0.gemfile +++ b/gemfiles/mysql2/6-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index 9ca0e8a0..99de96d1 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end diff --git a/gemfiles/postgresql/3-0.gemfile b/gemfiles/postgresql/3-0.gemfile index 75521b03..f1f76235 100644 --- a/gemfiles/postgresql/3-0.gemfile +++ b/gemfiles/postgresql/3-0.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/postgresql/3-1.gemfile b/gemfiles/postgresql/3-1.gemfile index b5240c30..541e9d85 100644 --- a/gemfiles/postgresql/3-1.gemfile +++ b/gemfiles/postgresql/3-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.1.0" end diff --git a/gemfiles/postgresql/3-2.gemfile b/gemfiles/postgresql/3-2.gemfile index 8a0a68e2..99903982 100644 --- a/gemfiles/postgresql/3-2.gemfile +++ b/gemfiles/postgresql/3-2.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/postgresql/4-0.gemfile b/gemfiles/postgresql/4-0.gemfile index 5a663ec9..5f07d69f 100644 --- a/gemfiles/postgresql/4-0.gemfile +++ b/gemfiles/postgresql/4-0.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.0.0" end diff --git a/gemfiles/postgresql/4-1.gemfile b/gemfiles/postgresql/4-1.gemfile index dc163cb5..18756ff5 100644 --- a/gemfiles/postgresql/4-1.gemfile +++ b/gemfiles/postgresql/4-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/postgresql/4-2.gemfile b/gemfiles/postgresql/4-2.gemfile index ecf500db..b6335fdd 100644 --- a/gemfiles/postgresql/4-2.gemfile +++ b/gemfiles/postgresql/4-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/postgresql/5-0.gemfile b/gemfiles/postgresql/5-0.gemfile index b2363a8c..54ac4b81 100644 --- a/gemfiles/postgresql/5-0.gemfile +++ b/gemfiles/postgresql/5-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/postgresql/5-1.gemfile b/gemfiles/postgresql/5-1.gemfile index 4f4505ea..91627dd6 100644 --- a/gemfiles/postgresql/5-1.gemfile +++ b/gemfiles/postgresql/5-1.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/postgresql/5-2.gemfile b/gemfiles/postgresql/5-2.gemfile index 6d244ed5..99f71d10 100644 --- a/gemfiles/postgresql/5-2.gemfile +++ b/gemfiles/postgresql/5-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile index 70762cfd..37ff814c 100644 --- a/gemfiles/postgresql/6-0.gemfile +++ b/gemfiles/postgresql/6-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index 5f5956aa..ed4af75d 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end diff --git a/gemfiles/sqlite3/3-0.gemfile b/gemfiles/sqlite3/3-0.gemfile index f7b6c253..2788517b 100644 --- a/gemfiles/sqlite3/3-0.gemfile +++ b/gemfiles/sqlite3/3-0.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.0.0" end diff --git a/gemfiles/sqlite3/3-1.gemfile b/gemfiles/sqlite3/3-1.gemfile index f0fd1094..1969fda0 100644 --- a/gemfiles/sqlite3/3-1.gemfile +++ b/gemfiles/sqlite3/3-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.1.0" end diff --git a/gemfiles/sqlite3/3-2.gemfile b/gemfiles/sqlite3/3-2.gemfile index 3c1cd917..321870e6 100644 --- a/gemfiles/sqlite3/3-2.gemfile +++ b/gemfiles/sqlite3/3-2.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/sqlite3/4-0.gemfile b/gemfiles/sqlite3/4-0.gemfile index 8a99f7ff..58f19ce5 100644 --- a/gemfiles/sqlite3/4-0.gemfile +++ b/gemfiles/sqlite3/4-0.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.0.0" end diff --git a/gemfiles/sqlite3/4-1.gemfile b/gemfiles/sqlite3/4-1.gemfile index 7ee34625..eb11aaa7 100644 --- a/gemfiles/sqlite3/4-1.gemfile +++ b/gemfiles/sqlite3/4-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index 7a45e6ec..9d63c8e2 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" end diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index 44b23282..86690e13 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" end diff --git a/gemfiles/sqlite3/5-1.gemfile b/gemfiles/sqlite3/5-1.gemfile index 31d8a489..c9aefcaf 100644 --- a/gemfiles/sqlite3/5-1.gemfile +++ b/gemfiles/sqlite3/5-1.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.1.0" end diff --git a/gemfiles/sqlite3/5-2.gemfile b/gemfiles/sqlite3/5-2.gemfile index 682f4053..b3d195fb 100644 --- a/gemfiles/sqlite3/5-2.gemfile +++ b/gemfiles/sqlite3/5-2.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.2.0" end diff --git a/gemfiles/sqlite3/6-0.gemfile b/gemfiles/sqlite3/6-0.gemfile index 9f48cc50..4f858454 100644 --- a/gemfiles/sqlite3/6-0.gemfile +++ b/gemfiles/sqlite3/6-0.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 6.0.0" end diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index 393c6a57..0f24c089 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -14,8 +14,8 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", require: false - gem "simplecov-lcov", require: false + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", github: "rails" end From bee840d6152443bca97d8f65a29709a4ca92d320 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 19:46:59 -0500 Subject: [PATCH 38/62] Older versions of AR do not work with PG 12 --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e80f7b17..35340f59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -120,7 +120,8 @@ jobs: continue-on-error: ${{ endsWith(matrix.gemfile, 'master.gemfile') || endsWith(matrix.ruby, 'head') }} services: postgres: - image: postgres + # AR before 4.2.6 doesn't work with 12 + image: postgres:11-alpine # Provide the password for postgres env: POSTGRES_DB: delayed_job_test From 33929a530ac84946975107a45dac3072e8486072 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 21:33:25 -0500 Subject: [PATCH 39/62] Correct version incompatabilities in old ruby --- gemfiles/mysql2/3-2.gemfile | 4 ++-- gemfiles/mysql2/4-1.gemfile | 4 ++-- gemfiles/mysql2/4-2.gemfile | 2 +- gemfiles/mysql2/5-0.gemfile | 2 +- gemfiles/postgresql/3-2.gemfile | 4 ++-- gemfiles/postgresql/4-1.gemfile | 4 ++-- gemfiles/postgresql/4-2.gemfile | 2 +- gemfiles/postgresql/5-0.gemfile | 2 +- gemfiles/sqlite3/3-2.gemfile | 4 ++-- gemfiles/sqlite3/4-1.gemfile | 4 ++-- gemfiles/sqlite3/4-2.gemfile | 2 +- gemfiles/sqlite3/5-0.gemfile | 2 +- 12 files changed, 18 insertions(+), 18 deletions(-) diff --git a/gemfiles/mysql2/3-2.gemfile b/gemfiles/mysql2/3-2.gemfile index e0b06405..7c5b0555 100644 --- a/gemfiles/mysql2/3-2.gemfile +++ b/gemfiles/mysql2/3-2.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.10" gem "rspec", ">= 2.11" -gem "simplecov", ">= 0.20.0", require: false -gem "simplecov-lcov", ">= 0.8.0", require: false +gem "simplecov", ">= 0.17.0", require: false +gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" diff --git a/gemfiles/mysql2/4-1.gemfile b/gemfiles/mysql2/4-1.gemfile index fdcc9cc4..7e08a6ef 100644 --- a/gemfiles/mysql2/4-1.gemfile +++ b/gemfiles/mysql2/4-1.gemfile @@ -7,8 +7,8 @@ gem "rake" gem "mysql2", "~> 0.3.13" gem "rspec", ">= 2.11" -gem "simplecov", ">= 0.20.0", require: false -gem "simplecov-lcov", ">= 0.8.0", require: false +gem "simplecov", ">= 0.17.0", require: false +gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" diff --git a/gemfiles/mysql2/4-2.gemfile b/gemfiles/mysql2/4-2.gemfile index 66d9e95c..ec864669 100644 --- a/gemfiles/mysql2/4-2.gemfile +++ b/gemfiles/mysql2/4-2.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" diff --git a/gemfiles/mysql2/5-0.gemfile b/gemfiles/mysql2/5-0.gemfile index 9634e9d1..61c8eb04 100644 --- a/gemfiles/mysql2/5-0.gemfile +++ b/gemfiles/mysql2/5-0.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" diff --git a/gemfiles/postgresql/3-2.gemfile b/gemfiles/postgresql/3-2.gemfile index 99903982..54017ba8 100644 --- a/gemfiles/postgresql/3-2.gemfile +++ b/gemfiles/postgresql/3-2.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false - gem "simplecov-lcov", ">= 0.8.0", require: false + gem "simplecov", ">= 0.17.0", require: false + gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/postgresql/4-1.gemfile b/gemfiles/postgresql/4-1.gemfile index 18756ff5..ec6e40e3 100644 --- a/gemfiles/postgresql/4-1.gemfile +++ b/gemfiles/postgresql/4-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "pg", "~> 0.18" gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false - gem "simplecov-lcov", ">= 0.8.0", require: false + gem "simplecov", ">= 0.17.0", require: false + gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/postgresql/4-2.gemfile b/gemfiles/postgresql/4-2.gemfile index b6335fdd..6ee5bb3a 100644 --- a/gemfiles/postgresql/4-2.gemfile +++ b/gemfiles/postgresql/4-2.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" diff --git a/gemfiles/postgresql/5-0.gemfile b/gemfiles/postgresql/5-0.gemfile index 54ac4b81..fdf9448d 100644 --- a/gemfiles/postgresql/5-0.gemfile +++ b/gemfiles/postgresql/5-0.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" diff --git a/gemfiles/sqlite3/3-2.gemfile b/gemfiles/sqlite3/3-2.gemfile index 321870e6..1521817c 100644 --- a/gemfiles/sqlite3/3-2.gemfile +++ b/gemfiles/sqlite3/3-2.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false - gem "simplecov-lcov", ">= 0.8.0", require: false + gem "simplecov", ">= 0.17.0", require: false + gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 3.2.0" end diff --git a/gemfiles/sqlite3/4-1.gemfile b/gemfiles/sqlite3/4-1.gemfile index eb11aaa7..0c3720f5 100644 --- a/gemfiles/sqlite3/4-1.gemfile +++ b/gemfiles/sqlite3/4-1.gemfile @@ -8,8 +8,8 @@ group :test do gem "sqlite3", "< 1.4" gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false - gem "simplecov-lcov", ">= 0.8.0", require: false + gem "simplecov", ">= 0.17.0", require: false + gem "simplecov-lcov", "< 0.8.0", require: false gem "activerecord", "~> 4.1.0" end diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index 9d63c8e2..dcca26d3 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 4.2.0" diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index 86690e13..3498c34d 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -14,7 +14,7 @@ group :test do end gem "rspec", ">= 2.11" - gem "simplecov", ">= 0.20.0", require: false + gem "simplecov", ">= 0.18.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false gem "activerecord", "~> 5.0.0" From be150fd011c3583c571b168915d52bf99aea9b05 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 21:42:05 -0500 Subject: [PATCH 40/62] mysql segfaults on ruby 2.1 --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 35340f59..2f11ea8c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,8 +73,6 @@ jobs: # - rvm: 2.0.0-p648 # gemfile: gemfiles/sqlite3/4-0.gemfile # Rails 4.1 was only compatible with ruby 2.1 - - ruby: 2.1 - gemfile: gemfiles/mysql2/4-1.gemfile - ruby: 2.1 gemfile: gemfiles/postgresql/4-1.gemfile - ruby: 2.1 From 110ea0ac30c109b5b123e502f0af580763e001dc Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 22:01:32 -0500 Subject: [PATCH 41/62] Add packaging and performance rubocops --- .rubocop.yml | 2 ++ Gemfile | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 5a15ad1f..bb1eab8e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,4 +1,6 @@ require: + - rubocop-packaging + - rubocop-performance - rubocop-rails - rubocop-rspec diff --git a/Gemfile b/Gemfile index 2feab4db..270c0b85 100644 --- a/Gemfile +++ b/Gemfile @@ -18,11 +18,17 @@ group :test do end gem "rspec", ">= 3" + + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false +end + +group :rubocop do gem "rubocop" + gem "rubocop-packaging" + gem "rubocop-performance" gem "rubocop-rails" gem "rubocop-rspec" - gem "simplecov", ">= 0.20.0", require: false - gem "simplecov-lcov", ">= 0.8.0", require: false end gemspec From 65752256a36174f794b0a711783821d9520cc6bd Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 22:01:43 -0500 Subject: [PATCH 42/62] Add rubocop workflow --- .github/workflows/rubocop.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 .github/workflows/rubocop.yml diff --git a/.github/workflows/rubocop.yml b/.github/workflows/rubocop.yml new file mode 100644 index 00000000..7519676e --- /dev/null +++ b/.github/workflows/rubocop.yml @@ -0,0 +1,30 @@ +name: RuboCop + +on: [push, pull_request] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - name: Set up Ruby 2.7 + uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.7 + - name: Generate lockfile for cache key + run: bundle lock + - name: Cache gems + uses: actions/cache@v1 + with: + path: vendor/bundle + key: ${{ runner.os }}-rubocop-${{ hashFiles('**/Gemfile.lock') }} + restore-keys: | + ${{ runner.os }}-rubocop- + - name: Install gems + run: | + bundle config path vendor/bundle + bundle config set without 'default test' + bundle install --jobs 4 --retry 3 + - name: Run RuboCop + run: bundle exec rubocop --parallel From 187ee428db19e9d1bc95c8155732ff9348e111fa Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 22:02:21 -0500 Subject: [PATCH 43/62] Remove travis config --- .travis.yml | 147 ---------------------------------------------------- 1 file changed, 147 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index f770d4f7..00000000 --- a/.travis.yml +++ /dev/null @@ -1,147 +0,0 @@ -language: ruby -branches: - only: - - master -services: - - mysql - - postgresql -addons: - postgresql: '9.6' -before_script: - - mysql -e 'create database delayed_job_test;' - - mysql --version - - psql -c 'create database delayed_job_test;' -U postgres -script: bundle exec $COMMAND -env: - global: - - JRUBY_OPTS="$JRUBY_OPTS -Xcli.debug=true --debug" - - COMMAND=rspec -gemfile: # Supported - - gemfiles/mysql2/6-0.gemfile - - gemfiles/postgresql/6-0.gemfile - - gemfiles/sqlite3/6-0.gemfile -rvm: # Supported - - 2.5.8 - - 2.6.6 - - 2.7.2 - - jruby-9.2.13.0 - -jdk: oraclejdk11 - -matrix: - allow_failures: - - rvm: jruby-head # Future - - rvm: rbx-2 # Parallel dimension - - rvm: ruby-head # Future - - gemfile: gemfiles/mysql2/master.gemfile # Future - - gemfile: gemfiles/postgresql/master.gemfile # Future - - gemfile: gemfiles/sqlite3/master.gemfile # Future - - include: - # - # Rubocop - # - - rvm: 2.6.6 - gemfile: Gemfile - env: - - COMMAND=rubocop - # - # The future - # - # Active Record head - - rvm: 2.6.3 - gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.6.3 - gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.6.3 - gemfile: gemfiles/sqlite3/master.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/mysql2/master.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/postgresql/master.gemfile - - rvm: 2.7.2 - gemfile: gemfiles/sqlite3/master.gemfile - # MRI Ruby head - - rvm: ruby-head - gemfile: gemfiles/mysql2/6-0.gemfile - - rvm: ruby-head - gemfile: gemfiles/postgresql/6-0.gemfile - - rvm: ruby-head - gemfile: gemfiles/sqlite3/6-0.gemfile - # JRuby head - - rvm: jruby-head - gemfile: gemfiles/mysql2/6-0.gemfile - - rvm: jruby-head - gemfile: gemfiles/postgresql/6-0.gemfile - - rvm: jruby-head - gemfile: gemfiles/sqlite3/6-0.gemfile - # - # The past - # - # EOL Active Record - # Rails 3.2 was maintained longer and is ruby 2.2 compatible - - rvm: 2.2.10 - gemfile: gemfiles/postgresql/3-2.gemfile - - rvm: 2.2.10 - gemfile: gemfiles/sqlite3/3-2.gemfile - # Rails <= 4.0 was only compatible with ruby 2.0 - # The test were running, but there are known incompatibilites - - rvm: 2.0.0-p648 - gemfile: gemfiles/postgresql/3-0.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/sqlite3/3-0.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/postgresql/3-1.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/sqlite3/3-1.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/postgresql/4-0.gemfile - - rvm: 2.0.0-p648 - gemfile: gemfiles/sqlite3/4-0.gemfile - # Rails 4.1 was only compatible with ruby 2.1 - - rvm: 2.1.9 - gemfile: gemfiles/mysql2/4-1.gemfile - - rvm: 2.1.9 - gemfile: gemfiles/postgresql/4-1.gemfile - - rvm: 2.1.9 - gemfile: gemfiles/sqlite3/4-1.gemfile - # Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4 - - rvm: 2.4.9 - gemfile: gemfiles/mysql2/4-2.gemfile - - rvm: 2.4.9 - gemfile: gemfiles/postgresql/4-2.gemfile - - rvm: 2.4.9 - gemfile: gemfiles/sqlite3/4-2.gemfile - # Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4 - - rvm: 2.4.9 - gemfile: gemfiles/mysql2/5-0.gemfile - - rvm: 2.4.9 - gemfile: gemfiles/postgresql/5-0.gemfile - - rvm: 2.4.9 - gemfile: gemfiles/sqlite3/5-0.gemfile - # Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5 - - rvm: 2.5.8 - gemfile: gemfiles/mysql2/5-1.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/postgresql/5-1.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/sqlite3/5-1.gemfile - # While not yet EOL, 5.2 is only tested against up to ruby 2.5 https://github.com/rails/rails/blob/5-2-stable/.travis.yml - - rvm: 2.5.8 - gemfile: gemfiles/mysql2/5-2.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/postgresql/5-2.gemfile - - rvm: 2.5.8 - gemfile: gemfiles/sqlite3/5-2.gemfile - # - # The parallel dimension - # - # Rubinius - - rvm: rbx-2 - gemfile: gemfiles/mysql2/6-0.gemfile - - rvm: rbx-2 - gemfile: gemfiles/postgresql/6-0.gemfile - - rvm: rbx-2 - gemfile: gemfiles/sqlite3/6-0.gemfile - -sudo: false From b4686bb8ae0177f91df5bcb9de015cb34b36bd30 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 7 Dec 2020 22:06:53 -0500 Subject: [PATCH 44/62] Update readme badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ca4db81b..ea06d34e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ you're reading the documentation for the master branch. # DelayedJob ActiveRecord Backend [](https://rubygems.org/gems/delayed_job_active_record) -[](https://travis-ci.org/collectiveidea/delayed_job_active_record) + [](https://coveralls.io/r/collectiveidea/delayed_job_active_record) ## Installation From cf6f864733e2273e822e458e4fd360f76eec074a Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 15:32:40 -0500 Subject: [PATCH 45/62] Updated jdbc adapters were released --- gemfiles/mysql2/6-0.gemfile | 2 +- gemfiles/postgresql/6-0.gemfile | 2 +- gemfiles/sqlite3/6-0.gemfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile index 539a3917..e7f4dae9 100644 --- a/gemfiles/mysql2/6-0.gemfile +++ b/gemfiles/mysql2/6-0.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcmysql-adapter", ">= 60.0.rc1" + gem "activerecord-jdbcmysql-adapter" end platforms :ruby, :mswin, :mingw do diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile index 37ff814c..0114ea45 100644 --- a/gemfiles/postgresql/6-0.gemfile +++ b/gemfiles/postgresql/6-0.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcpostgresql-adapter", ">= 60.0.rc1" + gem "activerecord-jdbcpostgresql-adapter" end platforms :ruby, :mswin, :mingw do diff --git a/gemfiles/sqlite3/6-0.gemfile b/gemfiles/sqlite3/6-0.gemfile index 4f858454..e69f1fb1 100644 --- a/gemfiles/sqlite3/6-0.gemfile +++ b/gemfiles/sqlite3/6-0.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcsqlite3-adapter", ">= 60.0.rc1" + gem "activerecord-jdbcsqlite3-adapter" end platforms :ruby, :mswin, :mingw do From c459b7c8b390320a7db72b23cb766b7e92104116 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 15:33:06 -0500 Subject: [PATCH 46/62] Rely on latest jdbc code for edge testing --- gemfiles/mysql2/master.gemfile | 2 +- gemfiles/postgresql/master.gemfile | 2 +- gemfiles/sqlite3/master.gemfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index 99de96d1..dafeeff9 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcmysql-adapter" + gem "activerecord-jdbcmysql-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index ed4af75d..5b508780 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcpostgresql-adapter" + gem "activerecord-jdbcpostgresql-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index 0f24c089..ee339446 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -6,7 +6,7 @@ gem "rake" group :test do platforms :jruby do - gem "activerecord-jdbcsqlite3-adapter" + gem "activerecord-jdbcsqlite3-adapter", github: "jruby/activerecord-jdbc-adapter" end platforms :ruby, :mswin, :mingw do From d88886e02980bf91a336e00e962d470edfaa5e69 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 15:33:47 -0500 Subject: [PATCH 47/62] Allow rails 6.1 --- delayed_job_active_record.gemspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 8b2ebb96..7a6a7bbc 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,7 +1,7 @@ # frozen_string_literal: true Gem::Specification.new do |spec| - spec.add_dependency "activerecord", [">= 3.0", "< 6.1"] + spec.add_dependency "activerecord", [">= 3.0", "< 6.2"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" From 3d6f9f7c20c9f3c3979626df45e36e533093c09d Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 15:53:05 -0500 Subject: [PATCH 48/62] Add Rails 6.1 to biuld grid --- .github/workflows/ci.yml | 25 ++++++++++++------------- gemfiles/mysql2/6-1.gemfile | 24 ++++++++++++++++++++++++ gemfiles/mysql2/master.gemfile | 2 +- gemfiles/postgresql/6-1.gemfile | 24 ++++++++++++++++++++++++ gemfiles/postgresql/master.gemfile | 2 +- gemfiles/sqlite3/6-1.gemfile | 24 ++++++++++++++++++++++++ gemfiles/sqlite3/master.gemfile | 2 +- 7 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 gemfiles/mysql2/6-1.gemfile create mode 100644 gemfiles/postgresql/6-1.gemfile create mode 100644 gemfiles/sqlite3/6-1.gemfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2f11ea8c..7b0e7f6f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,9 +14,15 @@ jobs: matrix: ruby: [2.5, 2.6, 2.7, jruby] gemfile: + - gemfiles/mysql2/5-2.gemfile + - gemfiles/postgresql/5-2.gemfile + - gemfiles/sqlite3/5-2.gemfile - gemfiles/mysql2/6-0.gemfile - gemfiles/postgresql/6-0.gemfile - gemfiles/sqlite3/6-0.gemfile + - gemfiles/mysql2/6-1.gemfile + - gemfiles/postgresql/6-1.gemfile + - gemfiles/sqlite3/6-1.gemfile include: # # The future @@ -36,18 +42,18 @@ jobs: gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - ruby: head - gemfile: gemfiles/mysql2/6-0.gemfile + gemfile: gemfiles/mysql2/6-1.gemfile - ruby: head - gemfile: gemfiles/postgresql/6-0.gemfile + gemfile: gemfiles/postgresql/6-1.gemfile - ruby: head - gemfile: gemfiles/sqlite3/6-0.gemfile + gemfile: gemfiles/sqlite3/6-1.gemfile # JRuby head - ruby: jruby-head - gemfile: gemfiles/mysql2/6-0.gemfile + gemfile: gemfiles/mysql2/6-1.gemfile - ruby: jruby-head - gemfile: gemfiles/postgresql/6-0.gemfile + gemfile: gemfiles/postgresql/6-1.gemfile - ruby: jruby-head - gemfile: gemfiles/sqlite3/6-0.gemfile + gemfile: gemfiles/sqlite3/6-1.gemfile # # The past # @@ -98,13 +104,6 @@ jobs: gemfile: gemfiles/postgresql/5-1.gemfile - ruby: 2.5 gemfile: gemfiles/sqlite3/5-1.gemfile - # While not yet EOL, 5.2 is only tested against up to ruby 2.5 https://github.com/rails/rails/blob/5-2-stable/.travis.yml - - ruby: 2.5 - gemfile: gemfiles/mysql2/5-2.gemfile - - ruby: 2.5 - gemfile: gemfiles/postgresql/5-2.gemfile - - ruby: 2.5 - gemfile: gemfiles/sqlite3/5-2.gemfile # # The parallel dimension # diff --git a/gemfiles/mysql2/6-1.gemfile b/gemfiles/mysql2/6-1.gemfile new file mode 100644 index 00000000..a350c325 --- /dev/null +++ b/gemfiles/mysql2/6-1.gemfile @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + # Remove github when 61.0 releases + gem "activerecord-jdbcmysql-adapter", github: "jruby/activerecord-jdbc-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "mysql2", "~> 0.5" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 6.1.0" +end + +gemspec path: "../../" diff --git a/gemfiles/mysql2/master.gemfile b/gemfiles/mysql2/master.gemfile index dafeeff9..2fa7be31 100644 --- a/gemfiles/mysql2/master.gemfile +++ b/gemfiles/mysql2/master.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2" + gem "mysql2", "~> 0.5" end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/6-1.gemfile b/gemfiles/postgresql/6-1.gemfile new file mode 100644 index 00000000..19cb2b83 --- /dev/null +++ b/gemfiles/postgresql/6-1.gemfile @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + # Remove github when 61.0 releases + gem "activerecord-jdbcpostgresql-adapter", github: "jruby/activerecord-jdbc-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "pg", "~> 1.1" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 6.1.0" +end + +gemspec path: "../../" diff --git a/gemfiles/postgresql/master.gemfile b/gemfiles/postgresql/master.gemfile index 5b508780..8e6af335 100644 --- a/gemfiles/postgresql/master.gemfile +++ b/gemfiles/postgresql/master.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", "~> 1.1" end gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/6-1.gemfile b/gemfiles/sqlite3/6-1.gemfile new file mode 100644 index 00000000..cf00d980 --- /dev/null +++ b/gemfiles/sqlite3/6-1.gemfile @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :jruby do + # Remove github when 61.0 releases + gem "activerecord-jdbcsqlite3-adapter", github: "jruby/activerecord-jdbc-adapter" + end + + platforms :ruby, :mswin, :mingw do + gem "sqlite3", "~> 1.4" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 6.1.0" +end + +gemspec path: "../../" diff --git a/gemfiles/sqlite3/master.gemfile b/gemfiles/sqlite3/master.gemfile index ee339446..e2342249 100644 --- a/gemfiles/sqlite3/master.gemfile +++ b/gemfiles/sqlite3/master.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3" + gem "sqlite3", "~> 1.4" end gem "rspec", ">= 2.11" From 9bcaa27371e385ebd51ea349544ce4449bcffe4a Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 16:02:35 -0500 Subject: [PATCH 49/62] Correct legacy database adapter versions --- gemfiles/mysql2/4-2.gemfile | 2 +- gemfiles/mysql2/5-0.gemfile | 2 +- gemfiles/mysql2/5-1.gemfile | 2 +- gemfiles/mysql2/5-2.gemfile | 2 +- gemfiles/mysql2/6-0.gemfile | 2 +- gemfiles/postgresql/4-2.gemfile | 2 +- gemfiles/postgresql/5-0.gemfile | 2 +- gemfiles/postgresql/5-1.gemfile | 2 +- gemfiles/postgresql/5-2.gemfile | 2 +- gemfiles/postgresql/6-0.gemfile | 2 +- gemfiles/sqlite3/4-2.gemfile | 2 +- gemfiles/sqlite3/5-0.gemfile | 2 +- gemfiles/sqlite3/5-1.gemfile | 2 +- gemfiles/sqlite3/5-2.gemfile | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/gemfiles/mysql2/4-2.gemfile b/gemfiles/mysql2/4-2.gemfile index ec864669..27225289 100644 --- a/gemfiles/mysql2/4-2.gemfile +++ b/gemfiles/mysql2/4-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2", ">= 0.3.13", "< 0.5" + gem "mysql2", [">= 0.3.13", "< 0.5"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/mysql2/5-0.gemfile b/gemfiles/mysql2/5-0.gemfile index 61c8eb04..46561217 100644 --- a/gemfiles/mysql2/5-0.gemfile +++ b/gemfiles/mysql2/5-0.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2" + gem "mysql2", [">= 0.3.18", "< 0.6.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/mysql2/5-1.gemfile b/gemfiles/mysql2/5-1.gemfile index 245d42aa..e4794542 100644 --- a/gemfiles/mysql2/5-1.gemfile +++ b/gemfiles/mysql2/5-1.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2" + gem "mysql2", [">= 0.3.18", "< 0.6.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/mysql2/5-2.gemfile b/gemfiles/mysql2/5-2.gemfile index 5603af01..e9e29970 100644 --- a/gemfiles/mysql2/5-2.gemfile +++ b/gemfiles/mysql2/5-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2" + gem "mysql2", [">= 0.4.4", "< 0.6.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/mysql2/6-0.gemfile b/gemfiles/mysql2/6-0.gemfile index e7f4dae9..047b5b23 100644 --- a/gemfiles/mysql2/6-0.gemfile +++ b/gemfiles/mysql2/6-0.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "mysql2" + gem "mysql2", ">= 0.4.4" end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/4-2.gemfile b/gemfiles/postgresql/4-2.gemfile index 6ee5bb3a..d9ce2220 100644 --- a/gemfiles/postgresql/4-2.gemfile +++ b/gemfiles/postgresql/4-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", "~> 0.15" end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/5-0.gemfile b/gemfiles/postgresql/5-0.gemfile index fdf9448d..af510ae8 100644 --- a/gemfiles/postgresql/5-0.gemfile +++ b/gemfiles/postgresql/5-0.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/5-1.gemfile b/gemfiles/postgresql/5-1.gemfile index 91627dd6..4aa022d7 100644 --- a/gemfiles/postgresql/5-1.gemfile +++ b/gemfiles/postgresql/5-1.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/5-2.gemfile b/gemfiles/postgresql/5-2.gemfile index 99f71d10..758fd1bb 100644 --- a/gemfiles/postgresql/5-2.gemfile +++ b/gemfiles/postgresql/5-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/postgresql/6-0.gemfile b/gemfiles/postgresql/6-0.gemfile index 0114ea45..d26dc504 100644 --- a/gemfiles/postgresql/6-0.gemfile +++ b/gemfiles/postgresql/6-0.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "pg", "~> 0.18" + gem "pg", [">= 0.18", "< 2.0"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/4-2.gemfile b/gemfiles/sqlite3/4-2.gemfile index dcca26d3..3dd24edc 100644 --- a/gemfiles/sqlite3/4-2.gemfile +++ b/gemfiles/sqlite3/4-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3", "< 1.4" + gem "sqlite3", "~> 1.3.6" end gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/5-0.gemfile b/gemfiles/sqlite3/5-0.gemfile index 3498c34d..e6534cb0 100644 --- a/gemfiles/sqlite3/5-0.gemfile +++ b/gemfiles/sqlite3/5-0.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3", "< 1.4" + gem "sqlite3", "~> 1.3.6" end gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/5-1.gemfile b/gemfiles/sqlite3/5-1.gemfile index c9aefcaf..e26dac0f 100644 --- a/gemfiles/sqlite3/5-1.gemfile +++ b/gemfiles/sqlite3/5-1.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3", "< 1.4" + gem "sqlite3", ["~> 1.3", ">= 1.3.6"] end gem "rspec", ">= 2.11" diff --git a/gemfiles/sqlite3/5-2.gemfile b/gemfiles/sqlite3/5-2.gemfile index b3d195fb..e504f4f5 100644 --- a/gemfiles/sqlite3/5-2.gemfile +++ b/gemfiles/sqlite3/5-2.gemfile @@ -10,7 +10,7 @@ group :test do end platforms :ruby, :mswin, :mingw do - gem "sqlite3", "< 1.4" + gem "sqlite3", ["~> 1.3", ">= 1.3.6"] end gem "rspec", ">= 2.11" From 001b24687ca146581cb7b075f4353ea99ed51f70 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Wed, 9 Dec 2020 16:50:20 -0500 Subject: [PATCH 50/62] Prepare 4.1.5 release --- README.md | 2 +- delayed_job_active_record.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ea06d34e..b996bd2e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ **If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. [View documentation for the latest release -(4.1.4).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.4)** +(4.1.5).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.5)** # DelayedJob ActiveRecord Backend diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 7a6a7bbc..7df7e94f 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -12,5 +12,5 @@ Gem::Specification.new do |spec| spec.name = "delayed_job_active_record" spec.require_paths = ["lib"] spec.summary = "ActiveRecord backend for DelayedJob" - spec.version = "4.1.4" + spec.version = "4.1.5" end From 09350615677a47748820f2ed65602fe0c4625773 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 26 Mar 2021 10:16:03 -0400 Subject: [PATCH 51/62] Revert "Fix Rails autoloading" --- lib/delayed/backend/active_record/railtie.rb | 14 -------------- lib/delayed_job_active_record.rb | 11 +++-------- 2 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 lib/delayed/backend/active_record/railtie.rb diff --git a/lib/delayed/backend/active_record/railtie.rb b/lib/delayed/backend/active_record/railtie.rb deleted file mode 100644 index e353ae77..00000000 --- a/lib/delayed/backend/active_record/railtie.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -module Delayed - module Backend - module ActiveRecord - class Railtie < ::Rails::Railtie - config.after_initialize do - require "delayed/backend/active_record" - Delayed::Worker.backend = :active_record - end - end - end - end -end diff --git a/lib/delayed_job_active_record.rb b/lib/delayed_job_active_record.rb index b6d4ca33..a09638e6 100644 --- a/lib/delayed_job_active_record.rb +++ b/lib/delayed_job_active_record.rb @@ -1,12 +1,7 @@ # frozen_string_literal: true +require "active_record" require "delayed_job" +require "delayed/backend/active_record" -if defined?(Rails::Railtie) - require "delayed/backend/active_record/railtie" -else - require "active_record" - require "delayed/backend/active_record" - - Delayed::Worker.backend = :active_record -end +Delayed::Worker.backend = :active_record From d65b0f9900f5b0c78c341c7c0209c2d138d64ec5 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Fri, 26 Mar 2021 11:37:21 -0400 Subject: [PATCH 52/62] Prepare 4.1.6 release --- README.md | 2 +- delayed_job_active_record.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b996bd2e..88f029a6 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ **If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. [View documentation for the latest release -(4.1.5).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.5)** +(4.1.6).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.6)** # DelayedJob ActiveRecord Backend diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 7df7e94f..f801480d 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -12,5 +12,5 @@ Gem::Specification.new do |spec| spec.name = "delayed_job_active_record" spec.require_paths = ["lib"] spec.summary = "ActiveRecord backend for DelayedJob" - spec.version = "4.1.5" + spec.version = "4.1.6" end From cded883d5eeab45ddff8e697177b23779202bfa0 Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 11 Oct 2021 14:50:37 +0900 Subject: [PATCH 53/62] Support Rails 7.0 --- .github/workflows/ci.yml | 72 +++++++++++++++++++++++-------- delayed_job_active_record.gemspec | 2 +- gemfiles/mysql2/7-0.gemfile | 19 ++++++++ gemfiles/postgresql/7-0.gemfile | 19 ++++++++ gemfiles/sqlite3/7-0.gemfile | 19 ++++++++ 5 files changed, 112 insertions(+), 19 deletions(-) create mode 100644 gemfiles/mysql2/7-0.gemfile create mode 100644 gemfiles/postgresql/7-0.gemfile create mode 100644 gemfiles/sqlite3/7-0.gemfile diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7b0e7f6f..a200b043 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,41 +12,41 @@ jobs: strategy: fail-fast: false matrix: - ruby: [2.5, 2.6, 2.7, jruby] + ruby: [2.7, 3.0] gemfile: - - gemfiles/mysql2/5-2.gemfile - - gemfiles/postgresql/5-2.gemfile - - gemfiles/sqlite3/5-2.gemfile - - gemfiles/mysql2/6-0.gemfile - - gemfiles/postgresql/6-0.gemfile - - gemfiles/sqlite3/6-0.gemfile - - gemfiles/mysql2/6-1.gemfile - - gemfiles/postgresql/6-1.gemfile - - gemfiles/sqlite3/6-1.gemfile + - gemfiles/mysql2/7-0.gemfile + - gemfiles/postgresql/7-0.gemfile + - gemfiles/sqlite3/7-0.gemfile include: # # The future # # Active Record head - - ruby: 2.6 + - ruby: 2.7 gemfile: gemfiles/mysql2/master.gemfile - - ruby: 2.6 + - ruby: 3.0 gemfile: gemfiles/postgresql/master.gemfile - - ruby: 2.6 - gemfile: gemfiles/sqlite3/master.gemfile - ruby: 2.7 + gemfile: gemfiles/sqlite3/master.gemfile + - ruby: 3.0 gemfile: gemfiles/mysql2/master.gemfile - ruby: 2.7 gemfile: gemfiles/postgresql/master.gemfile - - ruby: 2.7 + - ruby: 3.0 gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - ruby: head - gemfile: gemfiles/mysql2/6-1.gemfile + gemfile: gemfiles/mysql2/master.gemfile - ruby: head - gemfile: gemfiles/postgresql/6-1.gemfile + gemfile: gemfiles/postgresql/master.gemfile - ruby: head - gemfile: gemfiles/sqlite3/6-1.gemfile + gemfile: gemfiles/sqlite3/master.gemfile + - ruby: head + gemfile: gemfiles/mysql2/7-0.gemfile + - ruby: head + gemfile: gemfiles/postgresql/7-0.gemfile + - ruby: head + gemfile: gemfiles/sqlite3/7-0.gemfile # JRuby head - ruby: jruby-head gemfile: gemfiles/mysql2/6-1.gemfile @@ -55,6 +55,31 @@ jobs: - ruby: jruby-head gemfile: gemfiles/sqlite3/6-1.gemfile # + # The current + # + - ruby: 2.5 + gemfile: gemfiles/mysql2/6-1.gemfile + - ruby: 2.5 + gemfile: gemfiles/postgresql/6-1.gemfile + - ruby: 2.5 + gemfile: gemfiles/sqlite3/6-1.gemfile + - ruby: 2.6 + gemfile: gemfiles/mysql2/6-1.gemfile + - ruby: 2.6 + gemfile: gemfiles/postgresql/6-1.gemfile + - ruby: 2.6 + gemfile: gemfiles/sqlite3/6-1.gemfile + - ruby: 2.7 + gemfile: gemfiles/mysql2/6-1.gemfile + - ruby: 2.7 + gemfile: gemfiles/postgresql/6-1.gemfile + - ruby: 2.7 + gemfile: gemfiles/sqlite3/6-1.gemfile + - ruby: jruby-9.2 + gemfile: gemfiles/mysql2/6-1.gemfile + - ruby: jruby-9.3 + gemfile: gemfiles/postgresql/6-1.gemfile + # # The past # # EOL Active Record @@ -104,6 +129,17 @@ jobs: gemfile: gemfiles/postgresql/5-1.gemfile - ruby: 2.5 gemfile: gemfiles/sqlite3/5-1.gemfile + # Rails 6.0 was EOL with the release of 7.0 and compatible with ruby 2.6 + - ruby: 2.6 + gemfile: gemfiles/mysql2/6-0.gemfile + - ruby: 2.6 + gemfile: gemfiles/postgresql/6-0.gemfile + - ruby: 2.6 + gemfile: gemfiles/sqlite3/6-0.gemfile + - ruby: jruby-9.2 + gemfile: gemfiles/mysql2/6-0.gemfile + - ruby: jruby-9.3 + gemfile: gemfiles/postgresql/6-0.gemfile # # The parallel dimension # diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index f801480d..2bc81374 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,7 +1,7 @@ # frozen_string_literal: true Gem::Specification.new do |spec| - spec.add_dependency "activerecord", [">= 3.0", "< 6.2"] + spec.add_dependency "activerecord", [">= 3.0", "< 7.1"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" diff --git a/gemfiles/mysql2/7-0.gemfile b/gemfiles/mysql2/7-0.gemfile new file mode 100644 index 00000000..045269bd --- /dev/null +++ b/gemfiles/mysql2/7-0.gemfile @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :ruby, :mswin, :mingw do + gem "mysql2", "~> 0.5" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 7.0.0.alpha2" +end + +gemspec path: "../../" diff --git a/gemfiles/postgresql/7-0.gemfile b/gemfiles/postgresql/7-0.gemfile new file mode 100644 index 00000000..a7fa29c3 --- /dev/null +++ b/gemfiles/postgresql/7-0.gemfile @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :ruby, :mswin, :mingw do + gem "pg", "~> 1.1" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 7.0.0.alpha2" +end + +gemspec path: "../../" diff --git a/gemfiles/sqlite3/7-0.gemfile b/gemfiles/sqlite3/7-0.gemfile new file mode 100644 index 00000000..125254f2 --- /dev/null +++ b/gemfiles/sqlite3/7-0.gemfile @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +source "https://rubygems.org" + +gem "rake" + +group :test do + platforms :ruby, :mswin, :mingw do + gem "sqlite3", "~> 1.4" + end + + gem "rspec", ">= 2.11" + gem "simplecov", ">= 0.20.0", require: false + gem "simplecov-lcov", ">= 0.8.0", require: false + + gem "activerecord", "~> 7.0.0.alpha2" +end + +gemspec path: "../../" From 72da7676697cf995a42fd8140a834bfd6eef6a69 Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 1 Nov 2021 17:32:01 +0900 Subject: [PATCH 54/62] Fix a broken spec due to Psych >= 4 Since psych4.0, the load method has been safe_load, which causes the following error. So I use YAML#load_dj to avoid them. ref: ref: https://github.com/collectiveidea/delayed_job/pull/1152/commits/b4ddd3dfe1450f1e51f9a6ac90db3134b5d7af78 ``` 1) ActiveRecord loads classes with non-default primary key Failure/Error: expect do YAML.load(Story.create.to_yaml) end.not_to raise_error expected no Exception, got #<Psych::DisallowedClass: Tried to load unspecified class: Story> with backtrace: # ./spec/delayed/serialization/active_record_spec.rb:8:in `block (3 levels) in <top (required)>' # ./spec/delayed/serialization/active_record_spec.rb:7:in `block (2 levels) in <top (required)>' # ./spec/delayed/serialization/active_record_spec.rb:7:in `block (2 levels) in <top (required)>' ``` --- spec/delayed/serialization/active_record_spec.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/delayed/serialization/active_record_spec.rb b/spec/delayed/serialization/active_record_spec.rb index 4aa27f11..f0b0cd30 100644 --- a/spec/delayed/serialization/active_record_spec.rb +++ b/spec/delayed/serialization/active_record_spec.rb @@ -5,13 +5,13 @@ describe ActiveRecord do it "loads classes with non-default primary key" do expect do - YAML.load(Story.create.to_yaml) + YAML.load_dj(Story.create.to_yaml) end.not_to raise_error end it "loads classes even if not in default scope" do expect do - YAML.load(Story.create(scoped: false).to_yaml) + YAML.load_dj(Story.create(scoped: false).to_yaml) end.not_to raise_error end end From 3715b87c5e92470310d09d1f8d46a285b77a60c2 Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 15 Nov 2021 17:53:19 +0900 Subject: [PATCH 55/62] Set rubygems_mfa_required in gemspec ref: https://github.com/rubocop/rubocop/pull/10239 --- delayed_job_active_record.gemspec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 2bc81374..f49cdf46 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -3,6 +3,9 @@ Gem::Specification.new do |spec| spec.add_dependency "activerecord", [">= 3.0", "< 7.1"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] + spec.metadata = { + "rubygems_mfa_required" => "true" + } spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" spec.email = ["bryckbost@gmail.com", "matt@griffinonline.org", "sferik@gmail.com"] From 47e45711ee1061bc6499552ee888bdc87b958570 Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 17 Jan 2022 17:34:43 +0900 Subject: [PATCH 56/62] Enclose every ruby version in quotations If we use Ruby 3.0 without quotations in YAML, It is interpreted as "3". If you specify 3 on GitHub Actions, it means the latest stable version of the 3 series, so 3.1 will be used. --- .github/workflows/ci.yml | 64 ++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a200b043..9e1f96fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: [2.7, 3.0] + ruby: ['2.7', '3.0'] gemfile: - gemfiles/mysql2/7-0.gemfile - gemfiles/postgresql/7-0.gemfile @@ -22,17 +22,17 @@ jobs: # The future # # Active Record head - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/mysql2/master.gemfile - - ruby: 3.0 + - ruby: '3.0' gemfile: gemfiles/postgresql/master.gemfile - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/sqlite3/master.gemfile - - ruby: 3.0 + - ruby: '3.0' gemfile: gemfiles/mysql2/master.gemfile - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/postgresql/master.gemfile - - ruby: 3.0 + - ruby: '3.0' gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - ruby: head @@ -57,23 +57,23 @@ jobs: # # The current # - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/mysql2/6-1.gemfile - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/postgresql/6-1.gemfile - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/sqlite3/6-1.gemfile - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/mysql2/6-1.gemfile - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/postgresql/6-1.gemfile - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/sqlite3/6-1.gemfile - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/mysql2/6-1.gemfile - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/postgresql/6-1.gemfile - - ruby: 2.7 + - ruby: '2.7' gemfile: gemfiles/sqlite3/6-1.gemfile - ruby: jruby-9.2 gemfile: gemfiles/mysql2/6-1.gemfile @@ -84,9 +84,9 @@ jobs: # # EOL Active Record # Rails 3.2 was maintained longer and is ruby 2.2 compatible - - ruby: 2.2 + - ruby: '2.2' gemfile: gemfiles/postgresql/3-2.gemfile - - ruby: 2.2 + - ruby: '2.2' gemfile: gemfiles/sqlite3/3-2.gemfile # Rails <= 4.0 was only compatible with ruby 2.0 # The test were running, but there are known incompatibilites @@ -104,37 +104,37 @@ jobs: # - rvm: 2.0.0-p648 # gemfile: gemfiles/sqlite3/4-0.gemfile # Rails 4.1 was only compatible with ruby 2.1 - - ruby: 2.1 + - ruby: '2.1' gemfile: gemfiles/postgresql/4-1.gemfile - - ruby: 2.1 + - ruby: '2.1' gemfile: gemfiles/sqlite3/4-1.gemfile # Rails 4.2 was EOL with the release of 6.0 and compatible with ruby 2.4 - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/mysql2/4-2.gemfile - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/postgresql/4-2.gemfile - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/sqlite3/4-2.gemfile # Rails 5.0 was EOL with the release of 5.2 and compatible with ruby 2.4 - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/mysql2/5-0.gemfile - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/postgresql/5-0.gemfile - - ruby: 2.4 + - ruby: '2.4' gemfile: gemfiles/sqlite3/5-0.gemfile # Rails 5.1 was EOL with the release of 6.0 and compatible with ruby 2.5 - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/mysql2/5-1.gemfile - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/postgresql/5-1.gemfile - - ruby: 2.5 + - ruby: '2.5' gemfile: gemfiles/sqlite3/5-1.gemfile # Rails 6.0 was EOL with the release of 7.0 and compatible with ruby 2.6 - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/mysql2/6-0.gemfile - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/postgresql/6-0.gemfile - - ruby: 2.6 + - ruby: '2.6' gemfile: gemfiles/sqlite3/6-0.gemfile - ruby: jruby-9.2 gemfile: gemfiles/mysql2/6-0.gemfile From fa6187c541a74605e91fabb1d8747c693116b29c Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 17 Jan 2022 17:36:31 +0900 Subject: [PATCH 57/62] Add Ruby 3.1 on CI --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e1f96fa..32203067 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['2.7', '3.0'] + ruby: ['2.7', '3.0', '3.1'] gemfile: - gemfiles/mysql2/7-0.gemfile - gemfiles/postgresql/7-0.gemfile From dd7e90da128a1f33055ded67f44cc0e9f63063e9 Mon Sep 17 00:00:00 2001 From: willnet <netwillnet@gmail.com> Date: Mon, 17 Jan 2022 17:49:48 +0900 Subject: [PATCH 58/62] Use Rails 7.0.1 Rails 7.0.0 doesn't work with Ruby 3.1. ref: https://github.com/rails/rails/pull/43951 --- gemfiles/mysql2/7-0.gemfile | 2 +- gemfiles/postgresql/7-0.gemfile | 2 +- gemfiles/sqlite3/7-0.gemfile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gemfiles/mysql2/7-0.gemfile b/gemfiles/mysql2/7-0.gemfile index 045269bd..57bcae35 100644 --- a/gemfiles/mysql2/7-0.gemfile +++ b/gemfiles/mysql2/7-0.gemfile @@ -13,7 +13,7 @@ group :test do gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false - gem "activerecord", "~> 7.0.0.alpha2" + gem "activerecord", "~> 7.0.1" end gemspec path: "../../" diff --git a/gemfiles/postgresql/7-0.gemfile b/gemfiles/postgresql/7-0.gemfile index a7fa29c3..5e1a693d 100644 --- a/gemfiles/postgresql/7-0.gemfile +++ b/gemfiles/postgresql/7-0.gemfile @@ -13,7 +13,7 @@ group :test do gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false - gem "activerecord", "~> 7.0.0.alpha2" + gem "activerecord", "~> 7.0.1" end gemspec path: "../../" diff --git a/gemfiles/sqlite3/7-0.gemfile b/gemfiles/sqlite3/7-0.gemfile index 125254f2..b8950958 100644 --- a/gemfiles/sqlite3/7-0.gemfile +++ b/gemfiles/sqlite3/7-0.gemfile @@ -13,7 +13,7 @@ group :test do gem "simplecov", ">= 0.20.0", require: false gem "simplecov-lcov", ">= 0.8.0", require: false - gem "activerecord", "~> 7.0.0.alpha2" + gem "activerecord", "~> 7.0.1" end gemspec path: "../../" From e6d350ae60c327f81d6039db21cefa9a43e7a3fb Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 17 Jan 2022 20:07:08 -0500 Subject: [PATCH 59/62] Update the test matrix --- .github/workflows/ci.yml | 95 +++++++++++++++++++++++----------------- 1 file changed, 54 insertions(+), 41 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 32203067..3a630cf6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,8 +12,14 @@ jobs: strategy: fail-fast: false matrix: - ruby: ['2.7', '3.0', '3.1'] + ruby: ['2.7', '3.0', '3.1', 'jruby-9.3'] gemfile: + - gemfiles/mysql2/6-0.gemfile + - gemfiles/postgresql/6-0.gemfile + - gemfiles/sqlite3/6-0.gemfile + - gemfiles/mysql2/6-1.gemfile + - gemfiles/postgresql/6-1.gemfile + - gemfiles/sqlite3/6-1.gemfile - gemfiles/mysql2/7-0.gemfile - gemfiles/postgresql/7-0.gemfile - gemfiles/sqlite3/7-0.gemfile @@ -24,16 +30,22 @@ jobs: # Active Record head - ruby: '2.7' gemfile: gemfiles/mysql2/master.gemfile - - ruby: '3.0' + - ruby: '2.7' gemfile: gemfiles/postgresql/master.gemfile - ruby: '2.7' gemfile: gemfiles/sqlite3/master.gemfile - ruby: '3.0' gemfile: gemfiles/mysql2/master.gemfile - - ruby: '2.7' + - ruby: '3.0' gemfile: gemfiles/postgresql/master.gemfile - ruby: '3.0' gemfile: gemfiles/sqlite3/master.gemfile + - ruby: '3.1' + gemfile: gemfiles/mysql2/master.gemfile + - ruby: '3.1' + gemfile: gemfiles/postgresql/master.gemfile + - ruby: '3.1' + gemfile: gemfiles/sqlite3/master.gemfile # MRI Ruby head - ruby: head gemfile: gemfiles/mysql2/master.gemfile @@ -54,31 +66,43 @@ jobs: gemfile: gemfiles/postgresql/6-1.gemfile - ruby: jruby-head gemfile: gemfiles/sqlite3/6-1.gemfile + # - # The current + # Current # - - ruby: '2.5' - gemfile: gemfiles/mysql2/6-1.gemfile - - ruby: '2.5' - gemfile: gemfiles/postgresql/6-1.gemfile - - ruby: '2.5' - gemfile: gemfiles/sqlite3/6-1.gemfile + # MRI Ruby 2.6 + - ruby: '2.6' + gemfile: gemfiles/mysql2/6-0.gemfile + - ruby: '2.6' + gemfile: gemfiles/postgresql/6-0.gemfile + - ruby: '2.6' + gemfile: gemfiles/sqlite3/6-0.gemfile - ruby: '2.6' gemfile: gemfiles/mysql2/6-1.gemfile - ruby: '2.6' gemfile: gemfiles/postgresql/6-1.gemfile - ruby: '2.6' gemfile: gemfiles/sqlite3/6-1.gemfile + # Rails 5.2 + - ruby: '2.6' + gemfile: gemfiles/mysql2/5-2.gemfile + - ruby: '2.6' + gemfile: gemfiles/postgresql/5-2.gemfile + - ruby: '2.6' + gemfile: gemfiles/sqlite3/5-2.gemfile - ruby: '2.7' - gemfile: gemfiles/mysql2/6-1.gemfile + gemfile: gemfiles/mysql2/5-2.gemfile - ruby: '2.7' - gemfile: gemfiles/postgresql/6-1.gemfile + gemfile: gemfiles/postgresql/5-2.gemfile - ruby: '2.7' - gemfile: gemfiles/sqlite3/6-1.gemfile - - ruby: jruby-9.2 - gemfile: gemfiles/mysql2/6-1.gemfile - - ruby: jruby-9.3 - gemfile: gemfiles/postgresql/6-1.gemfile + gemfile: gemfiles/sqlite3/5-2.gemfile + - ruby: 'jruby-9.2' + gemfile: gemfiles/mysql2/5-2.gemfile + - ruby: 'jruby-9.2' + gemfile: gemfiles/postgresql/5-2.gemfile + - ruby: 'jruby-9.2' + gemfile: gemfiles/sqlite3/5-2.gemfile + # # The past # @@ -90,19 +114,18 @@ jobs: gemfile: gemfiles/sqlite3/3-2.gemfile # Rails <= 4.0 was only compatible with ruby 2.0 # The test were running, but there are known incompatibilites - # (Isn't supported on Github Actions) - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/postgresql/3-0.gemfile - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/sqlite3/3-0.gemfile - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/postgresql/3-1.gemfile - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/sqlite3/3-1.gemfile - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/postgresql/4-0.gemfile - # - rvm: 2.0.0-p648 - # gemfile: gemfiles/sqlite3/4-0.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/postgresql/3-0.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/sqlite3/3-0.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/postgresql/3-1.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/sqlite3/3-1.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/postgresql/4-0.gemfile + - ruby: 2.0.0 + gemfile: gemfiles/sqlite3/4-0.gemfile # Rails 4.1 was only compatible with ruby 2.1 - ruby: '2.1' gemfile: gemfiles/postgresql/4-1.gemfile @@ -129,17 +152,7 @@ jobs: gemfile: gemfiles/postgresql/5-1.gemfile - ruby: '2.5' gemfile: gemfiles/sqlite3/5-1.gemfile - # Rails 6.0 was EOL with the release of 7.0 and compatible with ruby 2.6 - - ruby: '2.6' - gemfile: gemfiles/mysql2/6-0.gemfile - - ruby: '2.6' - gemfile: gemfiles/postgresql/6-0.gemfile - - ruby: '2.6' - gemfile: gemfiles/sqlite3/6-0.gemfile - - ruby: jruby-9.2 - gemfile: gemfiles/mysql2/6-0.gemfile - - ruby: jruby-9.3 - gemfile: gemfiles/postgresql/6-0.gemfile + # # The parallel dimension # From 7bd1abbe3c437777cfdb2e95a46336902398ed03 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 17 Jan 2022 20:14:12 -0500 Subject: [PATCH 60/62] Allow less than Active Record 8 Active Record shouldn't introduce any breaking changes until version 8 --- delayed_job_active_record.gemspec | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index f49cdf46..325368e2 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -1,17 +1,15 @@ # frozen_string_literal: true Gem::Specification.new do |spec| - spec.add_dependency "activerecord", [">= 3.0", "< 7.1"] + spec.add_dependency "activerecord", [">= 3.0", "< 8.0"] spec.add_dependency "delayed_job", [">= 3.0", "< 5"] - spec.metadata = { - "rubygems_mfa_required" => "true" - } spec.authors = ["Brian Ryckbost", "Matt Griffin", "Erik Michaels-Ober"] spec.description = "ActiveRecord backend for Delayed::Job, originally authored by Tobias Lütke" spec.email = ["bryckbost@gmail.com", "matt@griffinonline.org", "sferik@gmail.com"] spec.files = %w[CONTRIBUTING.md LICENSE.md README.md delayed_job_active_record.gemspec] + Dir["lib/**/*.rb"] spec.homepage = "http://github.com/collectiveidea/delayed_job_active_record" spec.licenses = ["MIT"] + spec.metadata = { "rubygems_mfa_required" => "true" } spec.name = "delayed_job_active_record" spec.require_paths = ["lib"] spec.summary = "ActiveRecord backend for DelayedJob" From 97f26a3e1b82b338cd8270aad988c75b82ea5c86 Mon Sep 17 00:00:00 2001 From: David Genord II <david@collectiveidea.com> Date: Mon, 17 Jan 2022 20:47:27 -0500 Subject: [PATCH 61/62] Prepare 4.1.7 release --- README.md | 2 +- delayed_job_active_record.gemspec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88f029a6..49c821ec 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ **If you're viewing this at https://github.com/collectiveidea/delayed_job_active_record, you're reading the documentation for the master branch. [View documentation for the latest release -(4.1.6).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.6)** +(4.1.7).](https://github.com/collectiveidea/delayed_job_active_record/tree/v4.1.7)** # DelayedJob ActiveRecord Backend diff --git a/delayed_job_active_record.gemspec b/delayed_job_active_record.gemspec index 325368e2..91f8a852 100644 --- a/delayed_job_active_record.gemspec +++ b/delayed_job_active_record.gemspec @@ -13,5 +13,5 @@ Gem::Specification.new do |spec| spec.name = "delayed_job_active_record" spec.require_paths = ["lib"] spec.summary = "ActiveRecord backend for DelayedJob" - spec.version = "4.1.6" + spec.version = "4.1.7" end From e260ca204f2275ed1c2bda5ebc2728577fd5f7e7 Mon Sep 17 00:00:00 2001 From: Kenneth Chan <kenneth@docsend.com> Date: Tue, 24 Jul 2018 15:49:25 -0700 Subject: [PATCH 62/62] Apply SKIP LOCKED optimization for reserving a delayed job entry --- lib/delayed/backend/active_record.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/delayed/backend/active_record.rb b/lib/delayed/backend/active_record.rb index 62b186a1..1380ec8e 100644 --- a/lib/delayed/backend/active_record.rb +++ b/lib/delayed/backend/active_record.rb @@ -131,7 +131,7 @@ def self.reserve_with_scope_using_optimized_postgres(ready_scope, worker, now) # use 'FOR UPDATE' and we would have many locking conflicts quoted_name = connection.quote_table_name(table_name) subquery = ready_scope.limit(1).lock(true).select("id").to_sql - sql = "UPDATE #{quoted_name} SET locked_at = ?, locked_by = ? WHERE id IN (#{subquery}) RETURNING *" + sql = "UPDATE #{quoted_name} SET locked_at = ?, locked_by = ? WHERE id IN (#{subquery} SKIP LOCKED) RETURNING *" reserved = find_by_sql([sql, now, worker.name]) reserved[0] end