diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8a0b292..b1f3fcc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,18 +8,24 @@ jobs: test_matrix: runs-on: ubuntu-latest strategy: + fail-fast: false matrix: - ruby-version: ['2.6.9', '2.7.6', 'jruby-9.3.0.0'] + ruby-version: ['2.7.6', 'jruby-9.4.11.0'] gemfile: - - rails_52 - rails_60 - rails_61 include: - ruby-version: 2.7.6 gemfile: rails_70 - exclude: - - ruby-version: 2.7.6 - gemfile: rails_52 + - ruby-version: 3.1.5 + gemfile: rails_71 + - ruby-version: 3.2.7 + gemfile: rails_72 + - ruby-version: 3.3.7 + gemfile: rails_80 + + + env: RAILS_ENV: test diff --git a/Appraisals b/Appraisals index 76ec6aa..bb54ea1 100644 --- a/Appraisals +++ b/Appraisals @@ -1,17 +1,46 @@ # https://github.com/thoughtbot/appraisal -appraise "rails-52" do - gem 'activerecord', '~> 5.2.0' -end - appraise "rails-60" do gem 'activerecord', '~> 6.0.0' + + # https://github.com/rails/rails/issues/54271 + gem "concurrent-ruby", "< 1.3.5" + + gem 'sqlite3', ">= 1.4.0", "< 2", :platform => [:ruby, :mswin] end appraise "rails-61" do gem 'activerecord', '~> 6.1.0' + + # https://github.com/rails/rails/issues/54271 + gem "concurrent-ruby", "< 1.3.5" + + gem 'sqlite3', ">= 1.4.0", "< 2", :platform => [:ruby, :mswin] end appraise "rails-70" do gem 'activerecord', '~> 7.0.0' + + # https://github.com/rails/rails/issues/54271 + gem "concurrent-ruby", "< 1.3.5" + + gem 'sqlite3', ">= 1.4.0", "< 2", :platform => [:ruby, :mswin] +end + +appraise "rails-71" do + gem 'activerecord', '~> 7.1.0' + + gem 'sqlite3', ">= 1.4.0", "< 3.0", :platform => [:ruby, :mswin] +end + +appraise "rails-72" do + gem 'activerecord', '~> 7.2.0' + + gem 'sqlite3', ">= 1.4.0", "< 3.0", :platform => [:ruby, :mswin] +end + +appraise "rails-80" do + gem 'activerecord', '~> 8.0.0' + + gem 'sqlite3', ">= 1.4.0", "< 3.0", :platform => [:ruby, :mswin] end diff --git a/Gemfile b/Gemfile index 902e0f4..bd41bf5 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,4 @@ group :test do gem 'redcarpet', :platform => :ruby # For fast, Github-like Markdown gem 'kramdown', :platform => :jruby # For Markdown without a C compiler gem 'test-unit' - - # This version of sqlite3 oughta be good for activerecord 5.1+ hopefully - gem 'sqlite3', ">= 1.4.0", "< 2.0", :platform => [:ruby, :mswin] end diff --git a/gemfiles/rails_60.gemfile b/gemfiles/rails_60.gemfile index 964c033..be6fe58 100644 --- a/gemfiles/rails_60.gemfile +++ b/gemfiles/rails_60.gemfile @@ -4,6 +4,8 @@ source "http://rubygems.org" gem "jruby-openssl", platform: :jruby gem "activerecord", "~> 6.0.0" +gem "concurrent-ruby", "< 1.3.5" +gem "sqlite3", ">= 1.4.0", "< 2", platform: [:ruby, :mswin] group :test do gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] @@ -13,7 +15,6 @@ group :test do gem "redcarpet", platform: :ruby gem "kramdown", platform: :jruby gem "test-unit" - gem "sqlite3", ">= 1.4.0", "< 2.0", platform: [:ruby, :mswin] end gemspec path: "../" diff --git a/gemfiles/rails_61.gemfile b/gemfiles/rails_61.gemfile index c8027e0..690e100 100644 --- a/gemfiles/rails_61.gemfile +++ b/gemfiles/rails_61.gemfile @@ -4,6 +4,8 @@ source "http://rubygems.org" gem "jruby-openssl", platform: :jruby gem "activerecord", "~> 6.1.0" +gem "concurrent-ruby", "< 1.3.5" +gem "sqlite3", ">= 1.4.0", "< 2", platform: [:ruby, :mswin] group :test do gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] @@ -13,7 +15,6 @@ group :test do gem "redcarpet", platform: :ruby gem "kramdown", platform: :jruby gem "test-unit" - gem "sqlite3", ">= 1.4.0", "< 2.0", platform: [:ruby, :mswin] end gemspec path: "../" diff --git a/gemfiles/rails_70.gemfile b/gemfiles/rails_70.gemfile index bdfa826..690d8a2 100644 --- a/gemfiles/rails_70.gemfile +++ b/gemfiles/rails_70.gemfile @@ -4,6 +4,8 @@ source "http://rubygems.org" gem "jruby-openssl", platform: :jruby gem "activerecord", "~> 7.0.0" +gem "concurrent-ruby", "< 1.3.5" +gem "sqlite3", ">= 1.4.0", "< 2", platform: [:ruby, :mswin] group :test do gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] @@ -13,7 +15,6 @@ group :test do gem "redcarpet", platform: :ruby gem "kramdown", platform: :jruby gem "test-unit" - gem "sqlite3", ">= 1.4.0", "< 2.0", platform: [:ruby, :mswin] end gemspec path: "../" diff --git a/gemfiles/rails_52.gemfile b/gemfiles/rails_71.gemfile similarity index 79% rename from gemfiles/rails_52.gemfile rename to gemfiles/rails_71.gemfile index fb6cab3..fea207b 100644 --- a/gemfiles/rails_52.gemfile +++ b/gemfiles/rails_71.gemfile @@ -3,7 +3,8 @@ source "http://rubygems.org" gem "jruby-openssl", platform: :jruby -gem "activerecord", "~> 5.2.0" +gem "activerecord", "~> 7.1.0" +gem "sqlite3", ">= 1.4.0", "< 3.0", platform: [:ruby, :mswin] group :test do gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] @@ -13,7 +14,6 @@ group :test do gem "redcarpet", platform: :ruby gem "kramdown", platform: :jruby gem "test-unit" - gem "sqlite3", ">= 1.4.0", "< 2.0", platform: [:ruby, :mswin] end gemspec path: "../" diff --git a/gemfiles/rails_72.gemfile b/gemfiles/rails_72.gemfile new file mode 100644 index 0000000..63f6424 --- /dev/null +++ b/gemfiles/rails_72.gemfile @@ -0,0 +1,19 @@ +# This file was generated by Appraisal + +source "http://rubygems.org" + +gem "jruby-openssl", platform: :jruby +gem "activerecord", "~> 7.2.0" +gem "sqlite3", ">= 1.4.0", "< 3.0", platform: [:ruby, :mswin] + +group :test do + gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] + gem "libxml-ruby", platform: [:ruby, :mswin] + gem "rake" + gem "yard" + gem "redcarpet", platform: :ruby + gem "kramdown", platform: :jruby + gem "test-unit" +end + +gemspec path: "../" diff --git a/gemfiles/rails_80.gemfile b/gemfiles/rails_80.gemfile new file mode 100644 index 0000000..07749a5 --- /dev/null +++ b/gemfiles/rails_80.gemfile @@ -0,0 +1,19 @@ +# This file was generated by Appraisal + +source "http://rubygems.org" + +gem "jruby-openssl", platform: :jruby +gem "activerecord", "~> 8.0.0" +gem "sqlite3", ">= 1.4.0", "< 3.0", platform: [:ruby, :mswin] + +group :test do + gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby] + gem "libxml-ruby", platform: [:ruby, :mswin] + gem "rake" + gem "yard" + gem "redcarpet", platform: :ruby + gem "kramdown", platform: :jruby + gem "test-unit" +end + +gemspec path: "../" diff --git a/ruby-oai.gemspec b/ruby-oai.gemspec index 78c3909..026e30b 100644 --- a/ruby-oai.gemspec +++ b/ruby-oai.gemspec @@ -15,10 +15,12 @@ Gem::Specification.new do |s| s.add_dependency('builder', '>=3.1.0') s.add_dependency('faraday', "< 3") s.add_dependency("faraday-follow_redirects", ">= 0.3.0", "< 2") + s.add_dependency("rexml") # rexml becomes bundled gem in ruby 3.0 - s.add_development_dependency "activerecord", ">= 5.2.0", "< 7.1" + s.add_development_dependency "activerecord", ">= 5.2.0", "< 8.1" s.add_development_dependency "appraisal" + s.add_development_dependency "webrick" s.files = %w(README.md Rakefile) + diff --git a/test/activerecord_provider/config/connection.rb b/test/activerecord_provider/config/connection.rb index d90874a..7bb5c29 100755 --- a/test/activerecord_provider/config/connection.rb +++ b/test/activerecord_provider/config/connection.rb @@ -17,10 +17,14 @@ ActiveRecord::MigrationContext.new( File.join(File.dirname(__FILE__), '..', 'database') ).migrate -else +elsif ActiveRecord.version < Gem::Version.new("7.2.0") ActiveRecord::MigrationContext.new( File.join(File.dirname(__FILE__), '..', 'database'), ActiveRecord::Base.connection.schema_migration ).migrate +else + ActiveRecord::MigrationContext.new( + File.join(File.dirname(__FILE__), '..', 'database') + ).migrate end diff --git a/test/client/tc_low_resolution_dates.rb b/test/client/tc_low_resolution_dates.rb index 29565c0..4ba7cf0 100644 --- a/test/client/tc_low_resolution_dates.rb +++ b/test/client/tc_low_resolution_dates.rb @@ -3,7 +3,7 @@ class LowResolutionDatesTest < Test::Unit::TestCase def test_low_res_date_parsing - client = OAI::Client.new 'http://authors.library.caltech.edu/cgi/oai2' + client = OAI::Client.new 'http://localhost:3333/oai' date = Date.new 2003, 1, 1