Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

task: Remove support for ruby 2.4 and rails 4.2 #1379

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
4 changes: 3 additions & 1 deletion .rubocop.yml
Expand Up @@ -3,7 +3,7 @@ require:
- rubocop-rails
AllCops:
NewCops: disable
TargetRubyVersion: 2.4
TargetRubyVersion: 2.5
Exclude:
- 'gemfiles/*'
Bundler/OrderedGems:
Expand Down Expand Up @@ -106,6 +106,8 @@ Naming/PredicateName:
Enabled: false
Naming/RescuedExceptionsVariableName:
Enabled: false
Naming/VariableNumber:
Enabled: false
Rails/Date:
Enabled: false
Rails/Delegate:
Expand Down
18 changes: 1 addition & 17 deletions .travis.yml
@@ -1,5 +1,5 @@
language: ruby
dist: xenial
dist: bionic
services:
- postgresql
env:
Expand All @@ -10,32 +10,16 @@ rvm:
- 2.7.2
- 2.6.6
- 2.5.8
- 2.4.10
gemfile:
- gemfiles/rails_6_0.gemfile
- gemfiles/rails_5_2.gemfile
- gemfiles/rails_5_1.gemfile
- gemfiles/rails_5_0.gemfile
- gemfiles/rails_4_2.gemfile
matrix:
exclude:
- rvm: 2.7.2
gemfile: gemfiles/rails_4_2.gemfile
- rvm: 2.6.6
gemfile: gemfiles/rails_4_2.gemfile
- rvm: 2.4.10
gemfile: gemfiles/rails_6_0.gemfile
cache:
directories:
- /home/travis/.rvm/gems/ruby-2.7.2
- /home/travis/.rvm/gems/ruby-2.6.6
- /home/travis/.rvm/gems/ruby-2.5.8
- /home/travis/.rvm/gems/ruby-2.4.10
# Source: <https://docs.travis-ci.com/user/languages/ruby/#bundler-20>
before_install:
- gem update --system --force --no-document
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
- gem install bundler -v '< 2' --no-document
install: "bundle install --jobs=3 --retry=3"
script: "bundle exec rake"
branches:
Expand Down
124 changes: 44 additions & 80 deletions Appraisals
Expand Up @@ -3,61 +3,34 @@
# best to keep the gems here in the same order as they're listed there so you
# can compare them more easily.

# Needed for Rails 5+ controller tests
controller_test_dependency = proc do
gem 'rails-controller-testing', '>= 1.0.1'
end

shared_spring_dependencies = proc do
gem 'spring'
gem 'spring-commands-rspec'
end

shared_test_dependencies = proc do
gem 'rspec-rails', '~> 3.9'
gem 'shoulda-context', '~> 1.2.0'
# Needed for Rails 5+ controller tests
gem 'rails-controller-testing', '>= 1.0.1'
gem 'rspec-rails', '~> 4.0'
gem 'shoulda-context', '~> 2.0'
end

shared_dependencies = proc do
instance_eval(&shared_spring_dependencies)
instance_eval(&shared_test_dependencies)
end

appraise 'rails_4_2' do
instance_eval(&shared_dependencies)

gem 'rails', '4.2.11.1'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'bcrypt', '~> 3.1.7'

# Other dependencies
gem 'activeresource', '4.0.0'
gem 'json', '~> 1.4'
gem 'protected_attributes', '~> 1.0.6'

# Database adapters
gem 'pg', '~> 0.18'
gem 'sqlite3', '~> 1.3.6'
end

appraise 'rails_5_0' do
instance_eval(&shared_dependencies)
instance_eval(&controller_test_dependency)

gem 'rails', '5.0.7.2'
gem 'puma', '~> 3.0'
gem 'sass-rails', '~> 5.0'
gem 'puma', '~> 5.0'
gem 'sass-rails', '~> 6.0'
gem 'jquery-rails'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bcrypt', '~> 3.1.7'
gem 'listen', '~> 3.0.5'
gem 'jbuilder', '~> 2.10'
gem 'bcrypt', '~> 3.1.16'
gem 'listen', '~> 3.3'
gem 'spring-watcher-listen', '~> 2.0.0'

# Database adapters
Expand All @@ -67,70 +40,61 @@ end

appraise 'rails_5_1' do
instance_eval(&shared_dependencies)
instance_eval(&controller_test_dependency)

gem 'rails', '5.1.7'
gem 'puma', '~> 3.7'
gem 'sass-rails', '~> 5.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bcrypt', '~> 3.1.7'
gem 'capybara', '~> 2.13'
gem 'puma', '~> 5.0'
gem 'sass-rails', '~> 6.0'
gem 'turbolinks', '~> 5.2'
gem 'jbuilder', '~> 2.10'
gem 'bcrypt', '~> 3.1.16'
gem 'capybara', '~> 3.33'
gem 'selenium-webdriver'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'listen', '~> 3.3'
gem 'spring-watcher-listen', '~> 2.0.0'

# Database adapters
gem 'pg', '~> 0.18'
gem 'sqlite3', '~> 1.3.6'
gem 'sqlite3', '~> 1.4'
end

appraise 'rails_5_2' do
instance_eval(&shared_dependencies)
instance_eval(&controller_test_dependency)

gem 'rails', '5.2.4.1'
gem 'puma', '~> 3.11'
gem 'bootsnap', '>= 1.1.0', require: false
gem 'sass-rails', '~> 5.0'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
gem 'bcrypt', '~> 3.1.7'
gem 'capybara', '~> 3.1.1'
gem 'puma', '~> 5.0'
gem 'bootsnap', '>= 1.5.0', require: false
gem 'sass-rails', '~> 6.0'
gem 'turbolinks', '~> 5.2'
gem 'jbuilder', '~> 2.10'
gem 'bcrypt', '~> 3.1.16'
gem 'capybara', '~> 3.33'
gem 'selenium-webdriver'
gem 'chromedriver-helper'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'listen', '~> 3.3'
gem 'spring-watcher-listen', '~> 2.0.0'

# Database adapters
gem 'pg', '~> 0.18'
gem 'sqlite3', '~> 1.3.6'
gem 'pg', '>= 0.18', '< 2.0'
gem 'sqlite3', '~> 1.4'
end

if Gem::Requirement.new('>= 2.5.0').
satisfied_by?(Gem::Version.new(RUBY_VERSION))
appraise 'rails_6_0' do
instance_eval(&shared_dependencies)
instance_eval(&controller_test_dependency)

gem 'rails', '6.0.2.1'
gem 'puma', '~> 4.1'
gem 'bootsnap', '>= 1.4.2', require: false
gem 'sass-rails', '>= 6'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.7'
gem 'bcrypt', '~> 3.1.7'
gem 'capybara', '>= 2.15'
gem 'listen', '>= 3.0.5', '< 3.2'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'selenium-webdriver'
gem 'webdrivers'
appraise 'rails_6_0' do
instance_eval(&shared_dependencies)

# Other dependencies
gem 'actiontext', '~> 6.0.2.1'
gem 'rails', '6.0.3.4'
gem 'puma', '~> 5.0'
gem 'bootsnap', '>= 1.5.0', require: false
gem 'sass-rails', '>= 6'
gem 'turbolinks', '~> 5.2'
gem 'jbuilder', '~> 2.10'
gem 'bcrypt', '~> 3.1.16'
gem 'capybara', '>= 3.33'
gem 'listen', '~> 3.3'
gem 'spring-watcher-listen', '~> 2.0.0'
gem 'selenium-webdriver'
gem 'webdrivers'

# Database adapters
gem 'pg', '>= 0.18', '< 2.0'
gem 'sqlite3', '~> 1.4'
end
# Database adapters
gem 'pg', '>= 0.18', '< 2.0'
gem 'sqlite3', '~> 1.4'
end
7 changes: 3 additions & 4 deletions Gemfile
@@ -1,11 +1,10 @@
source 'https://rubygems.org'

gem 'appraisal', '2.2.0'
gem 'bundler', '~> 1.1'
gem 'appraisal'
gem 'pry'
gem 'pry-byebug'
gem 'rake', '13.0.1'
gem 'rspec', '~> 3.9'
gem 'rake'
gem 'rspec'
gem 'rubocop', require: false
gem 'rubocop-packaging', require: false
gem 'rubocop-rails', require: false
Expand Down
53 changes: 26 additions & 27 deletions Gemfile.lock
Expand Up @@ -7,21 +7,21 @@ GEM
minitest (~> 5.1)
tzinfo (~> 1.1)
zeitwerk (~> 2.2, >= 2.2.2)
appraisal (2.2.0)
appraisal (2.3.0)
bundler
rake
thor (>= 0.14.0)
ast (2.4.1)
byebug (11.1.3)
coderay (1.1.3)
concurrent-ruby (1.1.7)
diff-lcs (1.3)
diff-lcs (1.4.4)
fssm (0.2.10)
i18n (1.8.5)
concurrent-ruby (~> 1.0)
method_source (1.0.0)
minitest (5.14.2)
parallel (1.19.2)
parallel (1.20.1)
parser (2.7.2.0)
ast (~> 2.4.1)
pry (0.13.1)
Expand All @@ -34,32 +34,32 @@ GEM
rainbow (3.0.0)
rake (13.0.1)
redcarpet (3.5.0)
regexp_parser (1.8.2)
regexp_parser (2.0.0)
rexml (3.2.4)
rouge (3.22.0)
rspec (3.9.0)
rspec-core (~> 3.9.0)
rspec-expectations (~> 3.9.0)
rspec-mocks (~> 3.9.0)
rspec-core (3.9.0)
rspec-support (~> 3.9.0)
rspec-expectations (3.9.0)
rouge (3.25.0)
rspec (3.10.0)
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
rspec-mocks (~> 3.10.0)
rspec-core (3.10.0)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-mocks (3.9.0)
rspec-support (~> 3.10.0)
rspec-mocks (3.10.0)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.9.0)
rspec-support (3.9.0)
rubocop (1.0.0)
rspec-support (~> 3.10.0)
rspec-support (3.10.0)
rubocop (1.4.2)
parallel (~> 1.10)
parser (>= 2.7.1.5)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 1.8)
rexml
rubocop-ast (>= 0.6.0)
rubocop-ast (>= 1.1.1)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 2.0)
rubocop-ast (1.1.0)
rubocop-ast (1.2.0)
parser (>= 2.7.1.5)
rubocop-packaging (0.5.1)
rubocop (>= 0.89, < 2.0)
Expand All @@ -68,30 +68,29 @@ GEM
rack (>= 1.1)
rubocop (>= 0.87.0)
ruby-progressbar (1.10.1)
thor (0.20.0)
thor (1.0.1)
thread_safe (0.3.6)
tzinfo (1.2.7)
tzinfo (1.2.8)
thread_safe (~> 0.1)
unicode-display_width (1.7.0)
warnings_logger (0.1.1)
yard (0.9.25)
zeitwerk (2.4.0)
zeitwerk (2.4.1)
zeus (0.15.14)
method_source (>= 0.6.7)

PLATFORMS
ruby

DEPENDENCIES
appraisal (= 2.2.0)
bundler (~> 1.1)
appraisal
fssm
pry
pry-byebug
rake (= 13.0.1)
rake
redcarpet
rouge
rspec (~> 3.9)
rspec
rubocop
rubocop-packaging
rubocop-rails
Expand All @@ -100,4 +99,4 @@ DEPENDENCIES
zeus

BUNDLED WITH
1.17.3
2.1.4
6 changes: 4 additions & 2 deletions README.md
Expand Up @@ -470,11 +470,13 @@ machine, understanding the codebase, and creating a good pull request.

## Compatibility

Shoulda Matchers is [tested][travis] and supported against Ruby 2.4+, Rails
4.2+, RSpec 3.x, and Minitest 5.x.
Shoulda Matchers is [tested][travis] and supported against Ruby 2.5+, Rails
5.0+, RSpec 3.x, and Minitest 5.x.

For Ruby < 2.5 and Rails < 5.0 compatibility, please use [v4.4.1][v4.4.1].
For Ruby < 2.4 and Rails < 4.1 compatibility, please use [v3.1.3][v3.1.3].

[v4.4.1]: https://github.com/thoughtbot/shoulda-matchers/tree/v4.4.1
[v3.1.3]: https://github.com/thoughtbot/shoulda-matchers/tree/v3.1.3

## Versioning
Expand Down