2017-08-13 21:14:22 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2016-08-07 01:23:19 +08:00
|
|
|
source "https://rubygems.org"
|
2010-02-01 08:33:06 +08:00
|
|
|
|
2017-08-07 16:46:00 +08:00
|
|
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
2016-09-14 08:19:09 +08:00
|
|
|
|
2010-12-19 02:42:03 +08:00
|
|
|
gemspec
|
|
|
|
|
2014-09-14 16:21:55 +08:00
|
|
|
# We need a newish Rake since Active Job sets its test tasks' descriptions.
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "rake", ">= 11.1"
|
2014-09-14 16:21:55 +08:00
|
|
|
|
2021-10-09 23:03:05 +08:00
|
|
|
gem "sprockets-rails", ">= 2.0.0"
|
|
|
|
gem "propshaft", ">= 0.1.7"
|
2019-07-25 10:19:21 +08:00
|
|
|
gem "capybara", ">= 3.26"
|
2020-12-29 09:11:25 +08:00
|
|
|
gem "selenium-webdriver", ">= 4.0.0.alpha7"
|
2017-02-20 00:50:42 +08:00
|
|
|
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "rack-cache", "~> 1.2"
|
2021-08-26 16:39:36 +08:00
|
|
|
gem "stimulus-rails"
|
|
|
|
gem "turbo-rails"
|
2021-09-06 22:44:44 +08:00
|
|
|
gem "jsbundling-rails"
|
2021-09-07 23:48:13 +08:00
|
|
|
gem "cssbundling-rails"
|
2021-08-26 16:39:36 +08:00
|
|
|
gem "importmap-rails"
|
2021-09-07 23:48:13 +08:00
|
|
|
gem "tailwindcss-rails"
|
2014-02-22 04:58:09 +08:00
|
|
|
# require: false so bcrypt is loaded only when has_secure_password is used.
|
2015-10-12 19:48:04 +08:00
|
|
|
# This is to avoid Active Model (and by extension the entire framework)
|
2014-02-22 04:58:09 +08:00
|
|
|
# being dependent on a binary library.
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "bcrypt", "~> 3.1.11", require: false
|
2014-02-22 04:58:09 +08:00
|
|
|
|
2015-10-12 19:48:04 +08:00
|
|
|
# This needs to be with require false to avoid it being automatically loaded by
|
|
|
|
# sprockets.
|
2021-06-28 12:48:56 +08:00
|
|
|
gem "terser", ">= 1.1.4", require: false
|
2015-09-30 22:42:31 +08:00
|
|
|
|
2016-11-15 08:26:03 +08:00
|
|
|
# Explicitly avoid 1.x that doesn't support Ruby 2.4+
|
|
|
|
gem "json", ">= 2.0.0"
|
|
|
|
|
2020-03-28 07:55:26 +08:00
|
|
|
group :rubocop do
|
2020-09-06 09:07:04 +08:00
|
|
|
gem "rubocop", ">= 0.90", require: false
|
2021-06-24 18:46:21 +08:00
|
|
|
gem "rubocop-minitest", require: false
|
2020-09-06 09:07:04 +08:00
|
|
|
gem "rubocop-packaging", require: false
|
2020-03-28 07:55:26 +08:00
|
|
|
gem "rubocop-performance", require: false
|
|
|
|
gem "rubocop-rails", require: false
|
|
|
|
end
|
2016-11-28 11:12:33 +08:00
|
|
|
|
2011-01-13 04:15:57 +08:00
|
|
|
group :doc do
|
2021-05-21 16:06:22 +08:00
|
|
|
gem "sdoc", ">= 2.2.0"
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "redcarpet", "~> 3.2.3", platforms: :ruby
|
2020-09-21 13:19:59 +08:00
|
|
|
gem "w3c_validators", "~> 1.3.6"
|
2016-12-18 23:13:50 +08:00
|
|
|
gem "kindlerb", "~> 1.2.0"
|
2020-07-04 16:59:08 +08:00
|
|
|
gem "rouge"
|
2011-01-13 04:15:57 +08:00
|
|
|
end
|
2009-11-11 06:59:22 +08:00
|
|
|
|
2018-12-25 04:16:22 +08:00
|
|
|
# Active Support
|
2021-10-15 01:48:04 +08:00
|
|
|
gem "dalli", ">= 3.0.1"
|
2020-11-10 23:52:20 +08:00
|
|
|
gem "listen", "~> 3.3", require: false
|
2016-11-19 23:46:28 +08:00
|
|
|
gem "libxml-ruby", platforms: :ruby
|
2017-12-14 23:05:13 +08:00
|
|
|
gem "connection_pool", require: false
|
2020-09-25 06:41:04 +08:00
|
|
|
gem "rexml", require: false
|
2010-07-26 06:31:45 +08:00
|
|
|
|
2020-12-13 15:34:39 +08:00
|
|
|
# for railties
|
2019-04-26 15:25:28 +08:00
|
|
|
gem "bootsnap", ">= 1.4.4", require: false
|
2020-12-13 15:34:39 +08:00
|
|
|
gem "webrick", require: false
|
2019-02-12 04:44:25 +08:00
|
|
|
|
2018-12-25 04:16:22 +08:00
|
|
|
# Active Job
|
2014-08-20 10:21:39 +08:00
|
|
|
group :job do
|
2017-02-10 14:31:41 +08:00
|
|
|
gem "resque", require: false
|
2017-12-14 06:49:08 +08:00
|
|
|
gem "resque-scheduler", require: false
|
2017-10-09 19:49:55 +08:00
|
|
|
gem "sidekiq", require: false
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "sucker_punch", require: false
|
2017-12-30 05:57:28 +08:00
|
|
|
gem "delayed_job", require: false
|
2021-10-05 04:51:47 +08:00
|
|
|
gem "queue_classic", github: "jhawthorn/queue_classic", branch: "fix-connection-pg-14", require: false, platforms: :ruby
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "sneakers", require: false
|
|
|
|
gem "que", require: false
|
|
|
|
gem "backburner", require: false
|
2017-01-29 08:05:06 +08:00
|
|
|
gem "delayed_job_active_record", require: false
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "sequel", require: false
|
2014-08-20 10:21:39 +08:00
|
|
|
end
|
2014-08-12 17:29:21 +08:00
|
|
|
|
2015-12-14 23:38:37 +08:00
|
|
|
# Action Cable
|
|
|
|
group :cable do
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "puma", require: false
|
2016-01-24 18:43:40 +08:00
|
|
|
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "hiredis", require: false
|
2017-09-29 12:54:00 +08:00
|
|
|
gem "redis", "~> 4.0", require: false
|
|
|
|
|
2021-02-22 17:48:02 +08:00
|
|
|
gem "redis-namespace"
|
2016-01-25 01:25:53 +08:00
|
|
|
|
2016-10-06 09:11:18 +08:00
|
|
|
gem "websocket-client-simple", github: "matthewd/websocket-client-simple", branch: "close-race", require: false
|
2015-12-14 23:38:37 +08:00
|
|
|
end
|
|
|
|
|
2017-10-12 03:31:54 +08:00
|
|
|
# Active Storage
|
2017-08-01 04:53:09 +08:00
|
|
|
group :storage do
|
2017-09-10 11:22:10 +08:00
|
|
|
gem "aws-sdk-s3", require: false
|
2018-05-02 11:20:56 +08:00
|
|
|
gem "google-cloud-storage", "~> 1.11", require: false
|
2021-08-24 03:17:59 +08:00
|
|
|
gem "azure-storage-blob", "~> 2.0", require: false
|
2017-08-01 04:53:09 +08:00
|
|
|
|
2018-04-06 07:48:29 +08:00
|
|
|
gem "image_processing", "~> 1.2"
|
2017-08-01 04:53:09 +08:00
|
|
|
end
|
|
|
|
|
2018-12-25 04:16:22 +08:00
|
|
|
# Action Mailbox
|
|
|
|
gem "aws-sdk-sns", require: false
|
|
|
|
gem "webmock"
|
|
|
|
|
2017-10-20 00:01:52 +08:00
|
|
|
group :ujs do
|
2021-10-14 12:58:20 +08:00
|
|
|
# ">= 4.6.1" can be removed once https://github.com/titusfortner/webdrivers/pull/218 is merged and released.
|
|
|
|
gem "webdrivers", ">= 4.6.1"
|
2017-10-20 00:01:52 +08:00
|
|
|
end
|
|
|
|
|
2020-11-27 07:58:17 +08:00
|
|
|
# Action View
|
|
|
|
group :view do
|
|
|
|
gem "blade", require: false, platforms: [:ruby]
|
|
|
|
gem "sprockets-export", require: false
|
|
|
|
end
|
|
|
|
|
2015-10-12 19:48:04 +08:00
|
|
|
# Add your own local bundler stuff.
|
2017-05-15 22:17:28 +08:00
|
|
|
local_gemfile = File.expand_path(".Gemfile", __dir__)
|
2013-11-01 17:39:06 +08:00
|
|
|
instance_eval File.read local_gemfile if File.exist? local_gemfile
|
2010-11-06 05:11:58 +08:00
|
|
|
|
2013-03-12 02:48:30 +08:00
|
|
|
group :test do
|
2017-07-16 03:19:13 +08:00
|
|
|
gem "minitest-bisect"
|
2021-08-26 16:39:36 +08:00
|
|
|
gem "minitest-ci", require: false
|
2018-10-11 06:33:09 +08:00
|
|
|
gem "minitest-retry"
|
2014-05-17 00:18:21 +08:00
|
|
|
|
2015-04-02 04:09:58 +08:00
|
|
|
platforms :mri do
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "stackprof"
|
2021-09-20 21:18:30 +08:00
|
|
|
gem "debug", ">= 1.1.0", require: false
|
2014-11-17 22:39:32 +08:00
|
|
|
end
|
|
|
|
|
2021-05-25 05:11:38 +08:00
|
|
|
gem "benchmark-ips"
|
2011-07-22 20:55:48 +08:00
|
|
|
end
|
|
|
|
|
2015-12-17 00:31:44 +08:00
|
|
|
platforms :ruby, :mswin, :mswin64, :mingw, :x64_mingw do
|
2021-01-05 20:52:07 +08:00
|
|
|
gem "nokogiri", ">= 1.8.1", "!= 1.11.0"
|
2011-05-06 01:47:07 +08:00
|
|
|
|
2015-10-12 19:48:04 +08:00
|
|
|
# Needed for compiling the ActionDispatch::Journey parser.
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "racc", ">=1.4.6", require: false
|
2013-02-26 13:10:03 +08:00
|
|
|
|
2015-10-12 19:48:04 +08:00
|
|
|
# Active Record.
|
Use `execute_batch2` rather than `execute_batch` to fix performance regression for fixture loading
d8d6bd5 makes fixture loading to bulk statements by using
`execute_batch` for sqlite3 adapter. But `execute_batch` is slower and
it caused the performance regression for fixture loading.
In sqlite3 1.4.0, it have new batch method `execute_batch2`. I've
confirmed `execute_batch2` is extremely faster than `execute_batch`.
So I think it is worth to upgrade sqlite3 to 1.4.0 to use that method.
Before:
```
% ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids
Using sqlite3
Run options: -n test_eager_loading_too_may_ids --seed 35790
# Running:
.
Finished in 202.437406s, 0.0049 runs/s, 0.0049 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 142.57s user 60.83s system 98% cpu 3:27.08 total
```
After:
```
% ARCONN=sqlite3 bundle exec ruby -w -Itest test/cases/associations/eager_test.rb -n test_eager_loading_too_may_ids
Using sqlite3
Run options: -n test_eager_loading_too_may_ids --seed 16649
# Running:
.
Finished in 8.471032s, 0.1180 runs/s, 0.1180 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
ARCONN=sqlite3 bundle exec ruby -w -Itest -n test_eager_loading_too_may_ids 10.71s user 1.36s system 95% cpu 12.672 total
```
2019-04-04 02:19:08 +08:00
|
|
|
gem "sqlite3", "~> 1.4"
|
2010-05-20 04:38:27 +08:00
|
|
|
|
|
|
|
group :db do
|
2020-04-27 01:50:44 +08:00
|
|
|
gem "pg", "~> 1.1"
|
2020-09-23 03:40:47 +08:00
|
|
|
gem "mysql2", "~> 0.5", github: "brianmario/mysql2"
|
2010-05-20 04:38:27 +08:00
|
|
|
end
|
2010-07-26 06:31:45 +08:00
|
|
|
end
|
|
|
|
|
|
|
|
platforms :jruby do
|
2016-08-07 01:23:19 +08:00
|
|
|
if ENV["AR_JDBC"]
|
2016-09-14 08:19:09 +08:00
|
|
|
gem "activerecord-jdbcsqlite3-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
|
2013-09-03 14:33:00 +08:00
|
|
|
group :db do
|
2016-09-14 08:19:09 +08:00
|
|
|
gem "activerecord-jdbcmysql-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
|
|
|
|
gem "activerecord-jdbcpostgresql-adapter", github: "jruby/activerecord-jdbc-adapter", branch: "master"
|
2013-09-03 14:33:00 +08:00
|
|
|
end
|
|
|
|
else
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "activerecord-jdbcsqlite3-adapter", ">= 1.3.0"
|
2013-09-03 14:33:00 +08:00
|
|
|
group :db do
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "activerecord-jdbcmysql-adapter", ">= 1.3.0"
|
|
|
|
gem "activerecord-jdbcpostgresql-adapter", ">= 1.3.0"
|
2013-09-03 14:33:00 +08:00
|
|
|
end
|
2013-08-21 02:31:43 +08:00
|
|
|
end
|
2010-01-01 10:49:27 +08:00
|
|
|
end
|
2010-08-17 04:58:17 +08:00
|
|
|
|
2014-07-24 01:24:16 +08:00
|
|
|
platforms :rbx do
|
2015-10-12 19:48:04 +08:00
|
|
|
# The rubysl-yaml gem doesn't ship with Psych by default as it needs
|
|
|
|
# libyaml that isn't always available.
|
2018-03-10 04:14:36 +08:00
|
|
|
gem "psych", "~> 3.0"
|
2014-07-24 01:24:16 +08:00
|
|
|
end
|
|
|
|
|
2015-10-12 19:48:04 +08:00
|
|
|
# Gems that are necessary for Active Record tests with Oracle.
|
2016-08-07 01:23:19 +08:00
|
|
|
if ENV["ORACLE_ENHANCED"]
|
2010-08-17 04:58:17 +08:00
|
|
|
platforms :ruby do
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "ruby-oci8", "~> 2.2"
|
2010-08-17 04:58:17 +08:00
|
|
|
end
|
2016-09-14 08:19:09 +08:00
|
|
|
gem "activerecord-oracle_enhanced-adapter", github: "rsim/oracle-enhanced", branch: "master"
|
2010-08-17 04:58:17 +08:00
|
|
|
end
|
2011-10-03 10:51:01 +08:00
|
|
|
|
2016-08-07 01:23:19 +08:00
|
|
|
gem "tzinfo-data", platforms: [:mingw, :mswin, :x64_mingw, :jruby]
|
|
|
|
gem "wdm", ">= 0.1.0", platforms: [:mingw, :mswin, :x64_mingw, :mswin64]
|
2021-05-28 15:45:02 +08:00
|
|
|
|
|
|
|
if RUBY_VERSION >= "3.1"
|
|
|
|
# net-smtp, net-imap and net-pop were removed from default gems in Ruby 3.1, but is used by the `mail` gem.
|
|
|
|
# So we need to add them as dependencies until `mail` is fixed: https://github.com/mikel/mail/pull/1439
|
|
|
|
gem "net-smtp", require: false
|
|
|
|
gem "net-imap", require: false
|
|
|
|
gem "net-pop", require: false
|
|
|
|
|
Bump required digest version to 3.1.0.pre for Ruby 3.1
This commit addresses these failures.
- `bundle install` failure
```ruby
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Could not find gem 'digest (~> 3.0.1.pre)' in rubygems repository https://rubygems.org/ or installed locally.
The source contains the following versions of 'digest': 1.0.0, 3.0.0, 3.1.0.pre0, 3.1.0.pre1, 3.1.0.pre2, 3.1.0.pre2 java
$
```
* Action Mailbox bug report template failures
```ruby
$ cd guides/bug_report_templates
$ ruby -v
ruby 3.1.0dev (2021-10-12T11:53:18Z master 58ae1efb49) [x86_64-linux]
$ ruby action_mailbox_main.rb
Fetching gem metadata from https://rubygems.org/......
/home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/resolver.rb:278:in `block in verify_gemfile_dependencies_are_found!': Could not find gem 'digest (~> 3.0.1.pre)' in rubygems repository https://rubygems.org/ or installed locally. (Bundler::GemNotFound)
The source contains the following versions of 'digest': 1.0.0, 3.0.0, 3.1.0.pre0, 3.1.0.pre1, 3.1.0.pre2, 3.1.0.pre2 java
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/resolver.rb:253:in `each'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/resolver.rb:253:in `verify_gemfile_dependencies_are_found!'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/resolver.rb:50:in `start'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/resolver.rb:23:in `resolve'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/definition.rb:267:in `resolve'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/definition.rb:183:in `resolve_remotely!'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer.rb:280:in `resolve_if_needed'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer.rb:82:in `block in run'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/process_lock.rb:12:in `block in lock'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/process_lock.rb:9:in `open'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/process_lock.rb:9:in `lock'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer.rb:71:in `run'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/installer.rb:23:in `install'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/inline.rb:63:in `block (2 levels) in gemfile'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/settings.rb:131:in `temporary'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/inline.rb:62:in `block in gemfile'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/settings.rb:131:in `temporary'
from /home/yahonda/.rbenv/versions/3.1.0-dev/lib/ruby/3.1.0/bundler/inline.rb:55:in `gemfile'
from action_mailbox_main.rb:5:in `<main>'
$
```
Refer https://github.com/ruby/ruby/commit/e94bcda02539e1695cdda9550ace45c1890e541c
2021-10-12 20:19:50 +08:00
|
|
|
# digest gem, which is one of the default gems has bumped to 3.1.0.pre for ruby 3.1.0dev.
|
|
|
|
gem "digest", "~> 3.1.0.pre", require: false
|
2021-07-29 12:37:50 +08:00
|
|
|
|
2021-05-28 15:45:02 +08:00
|
|
|
# matrix was removed from default gems in Ruby 3.1, but is used by the `capybara` gem.
|
|
|
|
# So we need to add it as a dependency until `capybara` is fixed: https://github.com/teamcapybara/capybara/pull/2468
|
|
|
|
gem "matrix", require: false
|
|
|
|
end
|