Skip to content

Commit

Permalink
Merge pull request #624 from mislav/rails6-compat
Browse files Browse the repository at this point in the history
Add Rails 6.1 compatibility
  • Loading branch information
mislav authored May 5, 2021
2 parents 8113fdd + e94c51e commit 2a1580c
Show file tree
Hide file tree
Showing 27 changed files with 223 additions and 220 deletions.
178 changes: 100 additions & 78 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
sudo: false
bundler_args: "--standalone --binstubs --without development"
bundler_args: "--binstubs"
cache: bundler
script: script/test_all
services:
Expand All @@ -10,88 +10,110 @@ before_script:
- mysql -e 'create database will_paginate;'
- psql -c 'create database will_paginate;' -U postgres
rvm:
- 2.1.8
- 2.2.7
- 2.3.8
- 2.4.5
- 2.5.3
- 2.6.3
- 2.7.0
- '2.1'
- '2.2'
- '2.3'
- '2.4'
- '2.5'
- '2.6'
- '2.7'
gemfile:
- Gemfile
- Gemfile.rails3.0
- Gemfile.rails3.1
- Gemfile.rails3.2
- Gemfile.rails4.0
- Gemfile.rails4.1
- Gemfile.rails4.2
- Gemfile.rails5.0
- Gemfile.rails5.1
- Gemfile.rails5.2
- Gemfile.rails-edge
- environments/Gemfile.rails3.0.rb
- environments/Gemfile.rails3.1.rb
- environments/Gemfile.rails3.2.rb
- environments/Gemfile.rails4.0.rb
- environments/Gemfile.rails4.1.rb
- environments/Gemfile.rails4.2.rb
- environments/Gemfile.rails5.0.rb
- environments/Gemfile.rails5.1.rb
- environments/Gemfile.rails5.2.rb
- environments/Gemfile.rails6.0.rb
- environments/Gemfile.rails-edge.rb
- environments/Gemfile.non-rails.rb
matrix:
exclude:
- rvm: 2.1.8
- rvm: '2.1'
gemfile: Gemfile
- rvm: 2.2.7
- rvm: '2.2'
gemfile: Gemfile
- rvm: 2.3.8
- rvm: '2.3'
gemfile: Gemfile
- rvm: 2.4.5
- rvm: '2.4'
gemfile: Gemfile
- rvm: 2.4.5
gemfile: Gemfile.rails3.0
- rvm: 2.5.3
gemfile: Gemfile.rails3.0
- rvm: 2.6.3
gemfile: Gemfile.rails3.0
- rvm: 2.7.0
gemfile: Gemfile.rails3.0
- rvm: 2.4.5
gemfile: Gemfile.rails3.1
- rvm: 2.5.3
gemfile: Gemfile.rails3.1
- rvm: 2.6.3
gemfile: Gemfile.rails3.1
- rvm: 2.7.0
gemfile: Gemfile.rails3.1
- rvm: 2.4.5
gemfile: Gemfile.rails3.2
- rvm: 2.5.3
gemfile: Gemfile.rails3.2
- rvm: 2.6.3
gemfile: Gemfile.rails3.2
- rvm: 2.7.0
gemfile: Gemfile.rails3.2
- rvm: 2.4.5
gemfile: Gemfile.rails4.0
- rvm: 2.5.3
gemfile: Gemfile.rails4.0
- rvm: 2.6.3
gemfile: Gemfile.rails4.0
- rvm: 2.7.0
gemfile: Gemfile.rails4.0
- rvm: 2.4.5
gemfile: Gemfile.rails4.1
- rvm: 2.5.3
gemfile: Gemfile.rails4.1
- rvm: 2.6.3
gemfile: Gemfile.rails4.1
- rvm: 2.7.0
gemfile: Gemfile.rails4.1
- rvm: 2.7.0
gemfile: Gemfile.rails4.2
- rvm: 2.1.8
gemfile: Gemfile.rails5.0
- rvm: 2.1.8
gemfile: Gemfile.rails5.1
- rvm: 2.1.8
gemfile: Gemfile.rails5.2
- rvm: 2.1.8
gemfile: Gemfile.rails-edge
- rvm: 2.2.7
gemfile: Gemfile.rails-edge
- rvm: 2.3.8
gemfile: Gemfile.rails-edge
- rvm: 2.4.5
gemfile: Gemfile.rails-edge
- rvm: '2.4'
gemfile: environments/Gemfile.rails3.0.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails3.0.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails3.0.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails3.0.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails3.1.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails3.1.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails3.1.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails3.1.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails3.2.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails3.2.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails3.2.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails3.2.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails4.0.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails4.0.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails4.0.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails4.0.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails4.1.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails4.1.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails4.1.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails4.1.rb
- rvm: '2.7'
gemfile: environments/Gemfile.rails4.2.rb
- rvm: '2.1'
gemfile: environments/Gemfile.rails5.0.rb
- rvm: '2.1'
gemfile: environments/Gemfile.rails5.1.rb
- rvm: '2.1'
gemfile: environments/Gemfile.rails5.2.rb
- rvm: '2.1'
gemfile: environments/Gemfile.rails6.0.rb
- rvm: '2.2'
gemfile: environments/Gemfile.rails6.0.rb
- rvm: '2.3'
gemfile: environments/Gemfile.rails6.0.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails6.0.rb
- rvm: '2.1'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.2'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.3'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.4'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.5'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.6'
gemfile: environments/Gemfile.rails-edge.rb
- rvm: '2.1'
gemfile: environments/Gemfile.non-rails.rb
- rvm: '2.2'
gemfile: environments/Gemfile.non-rails.rb
- rvm: '2.3'
gemfile: environments/Gemfile.non-rails.rb
- rvm: '2.4'
gemfile: environments/Gemfile.non-rails.rb
12 changes: 3 additions & 9 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
source 'https://rubygems.org'

rails_version = '~> 6.0.2'
# We test against other Rails versions, too. See `environments/`
rails_version = '~> 6.1.2'

gem 'activerecord', rails_version
gem 'actionpack', rails_version
Expand All @@ -10,11 +11,4 @@ gem 'mocha', '~> 0.9.8'

gem 'sqlite3', '~> 1.4.0'
gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 0.18.4', :group => :pg

gem 'sequel', '~> 5.29'
gem 'dm-core'
gem 'dm-aggregates'
gem 'dm-migrations'
gem 'dm-sqlite-adapter'
gem 'mongoid', '~> 7.0.4'
gem 'pg', '~> 1.2', :group => :pg
13 changes: 13 additions & 0 deletions environments/Gemfile.non-rails.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
source 'https://rubygems.org'

gem 'rspec', '~> 2.99'
gem 'mocha', '~> 0.9.8'

gem 'sqlite3', '~> 1.4.0'

gem 'sequel', '~> 5.29'
gem 'dm-core'
gem 'dm-aggregates'
gem 'dm-migrations'
gem 'dm-sqlite-adapter'
gem 'mongoid', '~> 7.2.0'
8 changes: 3 additions & 5 deletions Gemfile.rails-edge → environments/Gemfile.rails-edge.rb
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
source 'https://rubygems.org'

gem 'arel', git: 'https://github.com/rails/arel.git', branch: 'master'

gem 'activerecord', git: 'https://github.com/rails/rails.git', branch: 'master'
gem 'actionpack', git: 'https://github.com/rails/rails.git', branch: 'master'
gem 'activerecord', git: 'https://github.com/rails/rails.git', branch: 'main'
gem 'actionpack', git: 'https://github.com/rails/rails.git', branch: 'main'

gem 'thread_safe'

Expand All @@ -13,4 +11,4 @@
gem 'sqlite3', '~> 1.4.0'

gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 0.11', :group => :pg
gem 'pg', '~> 1.2', :group => :pg
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 1 addition & 1 deletion Gemfile.rails5.2 → environments/Gemfile.rails5.2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@

gem 'sqlite3', '~> 1.3.6'
gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 0.18.4', :group => :pg
gem 'pg', '~> 1.2.3', :group => :pg
14 changes: 14 additions & 0 deletions environments/Gemfile.rails6.0.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
source 'https://rubygems.org'

rails_version = '~> 6.0.0'

gem 'activerecord', rails_version
gem 'actionpack', rails_version

gem 'rspec', '~> 2.99'
gem 'mocha', '~> 0.9.8'

gem 'sqlite3', '~> 1.4.0'

gem 'mysql2', '~> 0.5.2', :group => :mysql
gem 'pg', '~> 1.2', :group => :pg
8 changes: 6 additions & 2 deletions script/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ set -e

if type -p brew >/dev/null; then
brew bundle --no-upgrade
export PATH="$(brew --prefix mysql@5.7)/bin:$PATH"
mysql_prefix="$(brew --prefix mysql@5.7)"
openssl_prefix="$(brew --prefix openssl@1.1)"
bundle config set --local build.mysql2 --with-mysql-config="${mysql_prefix}/bin/mysql_config" --with-ldflags="-L${openssl_prefix}/lib"

while [ ! -e /tmp/mysql.sock ] && [ ! -e /var/run/mysql5/mysqld.sock ]; do
echo "Waiting for mysql to start up ..." >&2
Expand All @@ -15,4 +17,6 @@ fi
mysql -u root -e 'CREATE DATABASE IF NOT EXISTS will_paginate;'
psql --dbname will_paginate -c '' 2>/dev/null || createdb will_paginate

bundle install --binstubs --path "${PWD}/vendor/bundle"
bundle config set path "$PWD/vendor/bundle"
bundle install
bundle binstubs rspec-core
26 changes: 14 additions & 12 deletions script/ci-matrix
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,27 @@ ruby_versions = data.fetch('rvm')
gemfiles = data.fetch('gemfile')

requirements = {
'Gemfile.rails3.0' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails3.1' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails3.2' => Gem::Requirement.new('< 2.4'),
'Gemfile.rails4.0' => Gem::Requirement.new(['< 2.4', '>= 1.9']),
'Gemfile.rails4.1' => Gem::Requirement.new(['< 2.4', '>= 1.9']),
'Gemfile.rails4.2' => Gem::Requirement.new(['>= 1.9', '< 2.7']),
'Gemfile.rails5.0' => Gem::Requirement.new('>= 2.2'),
'Gemfile.rails5.1' => Gem::Requirement.new('>= 2.2'),
'Gemfile.rails5.2' => Gem::Requirement.new('>= 2.2'),
'Gemfile' => Gem::Requirement.new('>= 2.5.0'),
'Gemfile.rails-edge' => Gem::Requirement.new('>= 2.5.0'),
'environments/Gemfile.rails3.0.rb' => '< 2.4',
'environments/Gemfile.rails3.1.rb' => '< 2.4',
'environments/Gemfile.rails3.2.rb' => '< 2.4',
'environments/Gemfile.rails4.0.rb' => ['< 2.4', '>= 1.9'],
'environments/Gemfile.rails4.1.rb' => ['< 2.4', '>= 1.9'],
'environments/Gemfile.rails4.2.rb' => ['>= 1.9', '< 2.7'],
'environments/Gemfile.rails5.0.rb' => '>= 2.2',
'environments/Gemfile.rails5.1.rb' => '>= 2.2',
'environments/Gemfile.rails5.2.rb' => '>= 2.2',
'environments/Gemfile.rails6.0.rb' => '>= 2.5',
'Gemfile' => '>= 2.5',
'environments/Gemfile.rails-edge.rb' => '>= 2.7',
'environments/Gemfile.non-rails.rb' => '>= 2.5',
}

commands = {}

commands['excludes'] = -> {
excludes = []
gemfiles.each do |gemfile|
req = requirements.fetch(gemfile)
req = Gem::Requirement.new(requirements.fetch(gemfile))
ruby_versions.each do |version|
unless req.satisfied_by?(Gem::Version.new(version))
excludes << { 'rvm' => version, 'gemfile' => gemfile }
Expand Down
12 changes: 0 additions & 12 deletions script/each-gemfile

This file was deleted.

3 changes: 2 additions & 1 deletion script/release
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
#!/bin/sh
set -euo pipefail

SKIP_NONRAILS_TESTS=1 bundle exec rspec spec
bin/rspec spec
BUNDLE_GEMFILE=environments/Gemfile.non-rails.rb bin/rspec spec-non-rails

changelog() {
local previous_tag="$(git describe --tags HEAD^ --abbrev=0)"
Expand Down
Loading

0 comments on commit 2a1580c

Please sign in to comment.