sidekiq 5.2.7 → 6.0.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sidekiq might be problematic. Click here for more details.

Files changed (74) hide show
  1. checksums.yaml +4 -4
  2. data/.circleci/config.yml +21 -0
  3. data/.gitignore +0 -2
  4. data/.standard.yml +20 -0
  5. data/6.0-Upgrade.md +72 -0
  6. data/Changes.md +121 -0
  7. data/Ent-2.0-Upgrade.md +37 -0
  8. data/Ent-Changes.md +18 -0
  9. data/Gemfile +12 -11
  10. data/Gemfile.lock +196 -0
  11. data/Pro-5.0-Upgrade.md +25 -0
  12. data/Pro-Changes.md +18 -1
  13. data/README.md +18 -30
  14. data/Rakefile +5 -4
  15. data/bin/sidekiqload +32 -24
  16. data/bin/sidekiqmon +8 -0
  17. data/lib/generators/sidekiq/templates/worker_test.rb.erb +1 -1
  18. data/lib/generators/sidekiq/worker_generator.rb +20 -12
  19. data/lib/sidekiq.rb +61 -42
  20. data/lib/sidekiq/api.rb +230 -214
  21. data/lib/sidekiq/cli.rb +111 -174
  22. data/lib/sidekiq/client.rb +55 -46
  23. data/lib/sidekiq/delay.rb +5 -6
  24. data/lib/sidekiq/exception_handler.rb +10 -12
  25. data/lib/sidekiq/extensions/action_mailer.rb +10 -20
  26. data/lib/sidekiq/extensions/active_record.rb +9 -7
  27. data/lib/sidekiq/extensions/class_methods.rb +9 -7
  28. data/lib/sidekiq/extensions/generic_proxy.rb +4 -4
  29. data/lib/sidekiq/fetch.rb +11 -12
  30. data/lib/sidekiq/job_logger.rb +45 -7
  31. data/lib/sidekiq/job_retry.rb +60 -60
  32. data/lib/sidekiq/launcher.rb +57 -51
  33. data/lib/sidekiq/logger.rb +165 -0
  34. data/lib/sidekiq/manager.rb +7 -9
  35. data/lib/sidekiq/middleware/chain.rb +14 -4
  36. data/lib/sidekiq/middleware/i18n.rb +5 -7
  37. data/lib/sidekiq/monitor.rb +133 -0
  38. data/lib/sidekiq/paginator.rb +18 -14
  39. data/lib/sidekiq/processor.rb +67 -66
  40. data/lib/sidekiq/rails.rb +23 -29
  41. data/lib/sidekiq/redis_connection.rb +31 -37
  42. data/lib/sidekiq/scheduled.rb +28 -29
  43. data/lib/sidekiq/testing.rb +34 -23
  44. data/lib/sidekiq/testing/inline.rb +2 -1
  45. data/lib/sidekiq/util.rb +17 -16
  46. data/lib/sidekiq/version.rb +2 -1
  47. data/lib/sidekiq/web.rb +41 -49
  48. data/lib/sidekiq/web/action.rb +14 -10
  49. data/lib/sidekiq/web/application.rb +64 -66
  50. data/lib/sidekiq/web/helpers.rb +83 -72
  51. data/lib/sidekiq/web/router.rb +17 -14
  52. data/lib/sidekiq/worker.rb +124 -97
  53. data/sidekiq.gemspec +16 -16
  54. data/web/assets/javascripts/dashboard.js +4 -23
  55. data/web/assets/stylesheets/application-dark.css +125 -0
  56. data/web/assets/stylesheets/application.css +9 -0
  57. data/web/locales/de.yml +14 -2
  58. data/web/locales/ja.yml +2 -1
  59. data/web/views/_job_info.erb +2 -1
  60. data/web/views/busy.erb +4 -1
  61. data/web/views/dead.erb +2 -2
  62. data/web/views/layout.erb +1 -0
  63. data/web/views/morgue.erb +4 -1
  64. data/web/views/queue.erb +10 -1
  65. data/web/views/retries.erb +4 -1
  66. data/web/views/retry.erb +2 -2
  67. data/web/views/scheduled.erb +4 -1
  68. metadata +20 -29
  69. data/.travis.yml +0 -11
  70. data/bin/sidekiqctl +0 -20
  71. data/lib/sidekiq/core_ext.rb +0 -1
  72. data/lib/sidekiq/ctl.rb +0 -221
  73. data/lib/sidekiq/logging.rb +0 -122
  74. data/lib/sidekiq/middleware/server/active_record.rb +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 408fa69245bc5dbd48894529237ed6bd94fb62f084e12c3cf21c5c2b44466555
4
- data.tar.gz: 7052699621d277bf59aaee779f93c0f98089a2d0bbc5d40f4d991faa52ef7b90
3
+ metadata.gz: 289abeb95ea2defd87dce17b31747cc56193a3e606e7f1f87d9ab237706526cc
4
+ data.tar.gz: a9ee206b90eb90737d587da3033559f96150aaceda8b0d319fcca29a08507c56
5
5
  SHA512:
6
- metadata.gz: e128875c94c37f82fec77c4071e6abafd5326a1a949bff0ff90377d6a54c18b117a7753c439e7d9611e87dfc57c752251f6b2bf3cfb1c799d95016d2a112a211
7
- data.tar.gz: 5aabe50f97494052e73190fb8aa96f57b253e5855416938ef0644013012678640d620c8e05484c4d945ea558d55413c7c1625967ab40f402680b7ded27133321
6
+ metadata.gz: b9feed82f74bad9ae58674c373286522df5c2198ec4f685a777fc8ad2dd89f4f985dcfc81a1f915e77ae806e3fab060f5e662fd8378a4efc951da6b230ae3cd4
7
+ data.tar.gz: 1928083cc83adc9a248f6b9f9a5cd95c91b6a4a5c324cb38d4082309cf801031ac2f644a9f1aef3d7c49424dd4525da870af72e892f983c35cb07e4a214aa311
@@ -32,6 +32,9 @@ jobs:
32
32
  - <<: *save
33
33
  - <<: *unit
34
34
  "ruby-2.6":
35
+ environment:
36
+ COVERAGE: true
37
+ CC_TEST_REPORTER_ID: 003c3033501d70a2653bd887ff9a8b2884a263e6a4e27f2ba68748e15530918d
35
38
  docker:
36
39
  - image: circleci/ruby:2.6
37
40
  - image: circleci/redis:4.0
@@ -40,7 +43,25 @@ jobs:
40
43
  - <<: *restore
41
44
  - <<: *bundle
42
45
  - <<: *save
46
+
47
+ - run:
48
+ name: Setup Code Climate test-reporter
49
+ command: |
50
+ # download test reporter as a static binary
51
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
52
+ chmod +x ./cc-test-reporter
53
+
54
+ - run:
55
+ name: Code Climate before-build
56
+ command: |
57
+ ./cc-test-reporter before-build
58
+
43
59
  - <<: *unit
60
+
61
+ - run:
62
+ name: Report code coverage to Code Climate
63
+ command: |
64
+ ./cc-test-reporter after-build -t simplecov --exit-code $?
44
65
  "jruby":
45
66
  docker:
46
67
  - image: circleci/jruby:latest
data/.gitignore CHANGED
@@ -1,8 +1,6 @@
1
1
  .rvmrc
2
2
  .ruby-version
3
3
  tags
4
- Gemfile.lock
5
- gemfiles/*.lock
6
4
  *.swp
7
5
  dump.rdb
8
6
  .rbx
@@ -0,0 +1,20 @@
1
+ ruby_version: 2.5.0
2
+ fix: false
3
+ parallel: true
4
+ ignore:
5
+ - test/**/*
6
+ - examples/**/*
7
+ - myapp/**/*
8
+ - 'lib/sidekiq.rb':
9
+ - Lint/InheritException
10
+ - 'lib/sidekiq/extensions/**/*':
11
+ - Style/MethodMissingSuper
12
+ - Style/MissingRespondToMissing
13
+ - 'lib/**/*':
14
+ - Naming/AsciiIdentifiers
15
+ - Lint/RescueException
16
+ - Security/YAMLLoad
17
+ - Naming/AccessorMethodName
18
+ - Naming/MethodName
19
+ - Style/GlobalVars
20
+ - Style/Alias
@@ -0,0 +1,72 @@
1
+ # Welcome to Sidekiq 6.0!
2
+
3
+ Sidekiq 6.0 contains some breaking changes which streamline proper operation
4
+ of Sidekiq. It also drops support for EOL versions of Ruby and Rails.
5
+
6
+ ## What's New
7
+
8
+ This release has major breaking changes. Read and test carefully in production.
9
+
10
+ - ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
11
+ features/internals like the retry subsystem. Prefer the native
12
+ Sidekiq::Worker APIs as some Sidekiq features (e.g. unique jobs) do not work well with AJ.
13
+ (requires Rails 6.0.1)
14
+ ```ruby
15
+ class MyJob < ActiveJob::Base
16
+ queue_as :myqueue
17
+ sidekiq_options retry: 10, backtrace: 20
18
+ def perform(...)
19
+ end
20
+ end
21
+ ```
22
+ - Logging has been redesigned to allow pluggable formatters and several
23
+ formats ship with Sidekiq:
24
+ * default - your typical output on macOS
25
+ * heroku - enabled specifically when running in Heroku
26
+ * json - a JSON format for search indexing, one hash per line
27
+
28
+ Sidekiq will enable the best formatter for the detected environment but
29
+ you can override it by configuring the log formatter explicitly. See
30
+ 'sidekiq/logger' for implementation details.
31
+
32
+ ```ruby
33
+ Sidekiq.configure_server do |config|
34
+ config.log_formatter = AcmeCorp::PlainLogFormatter.new
35
+ # config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
36
+ end
37
+ ```
38
+ Please see the [Logging](https://github.com/mperham/sidekiq/wiki/Logging) wiki page for the latest documentation and notes.
39
+ - **Remove the daemonization, logfile and pidfile command line arguments and `sidekiqctl` binary**.
40
+ I've [noted for years](https://www.mikeperham.com/2014/09/22/dont-daemonize-your-daemons/)
41
+ how modern services should be managed with a proper init system.
42
+ Managing services manually is more error-prone, let your operating system do it for you.
43
+ systemd, upstart, and foreman are three options. See the Deployment wiki page for the latest details.
44
+ - **Validate proper usage of the `REDIS_PROVIDER` variable.**
45
+ This variable is meant to hold the name of the environment
46
+ variable which contains your Redis URL, so that you can switch Redis
47
+ providers quickly and easily with a single variable change. It is not
48
+ meant to hold the actual Redis URL itself. If you want to manually set
49
+ the Redis URL then you may set `REDIS_URL` directly. [#3969]
50
+ - **Increase default shutdown timeout from 8 seconds to 25 seconds.**
51
+ Both Heroku and ECS now use 30 second shutdown timeout
52
+ by default and we want Sidekiq to take advantage of this time. If you
53
+ have deployment scripts which depend on the old default timeout, use `-t 8` to
54
+ get the old behavior. [#3968]
55
+ * **Rails <5** is no longer supported. Rails 6+ only works in zeitwerk mode.
56
+ * **Ruby <2.5** is no longer supported.
57
+ * **Redis <4** is no longer supported.
58
+
59
+ ## Upgrade
60
+
61
+ As always, please upgrade Sidekiq **one major version at a time**.
62
+ If you are already running Sidekiq 5.x, then:
63
+
64
+ * Upgrade to the latest Sidekiq 5.x.
65
+ ```ruby
66
+ gem 'sidekiq', '< 6'
67
+ ```
68
+ * Fix any deprecation warnings you see.
69
+ * Upgrade to 6.x.
70
+ ```ruby
71
+ gem 'sidekiq', '< 7'
72
+ ```
data/Changes.md CHANGED
@@ -2,6 +2,127 @@
2
2
 
3
3
  [Sidekiq Changes](https://github.com/mperham/sidekiq/blob/master/Changes.md) | [Sidekiq Pro Changes](https://github.com/mperham/sidekiq/blob/master/Pro-Changes.md) | [Sidekiq Enterprise Changes](https://github.com/mperham/sidekiq/blob/master/Ent-Changes.md)
4
4
 
5
+ 6.0.3
6
+ ---------
7
+
8
+ - Fix `Sidekiq::Client.push_bulk` API which was erroneously putting
9
+ invalid `at` values in the job payloads [#4321]
10
+
11
+ 6.0.2
12
+ ---------
13
+
14
+ - Fix Sidekiq Enterprise's rolling restart functionality, broken by refactoring in 6.0.0. [#4334]
15
+ - More internal refactoring and performance tuning [fatkodima]
16
+
17
+ 6.0.1
18
+ ---------
19
+
20
+ - **Performance tuning**, Sidekiq should be 10-15% faster now [#4303, 4299,
21
+ 4269, fatkodima]
22
+ - **Dark Mode support in Web UI** (further design polish welcome!) [#4227, mperham,
23
+ fatkodima, silent-e]
24
+ - **Job-specific log levels**, allowing you to turn on debugging for
25
+ problematic workers. [fatkodima, #4287]
26
+ ```ruby
27
+ MyWorker.set(log_level: :debug).perform_async(...)
28
+ ```
29
+ - **Ad-hoc job tags**. You can tag your jobs with, e.g, subdomain, tenant, country,
30
+ locale, application, version, user/client, "alpha/beta/pro/ent", types of jobs,
31
+ teams/people responsible for jobs, additional metadata, etc.
32
+ Tags are shown on different pages with job listings. Sidekiq Pro users
33
+ can filter based on them [fatkodima, #4280]
34
+ ```ruby
35
+ class MyWorker
36
+ include Sidekiq::Worker
37
+ sidekiq_options tags: ['bank-ops', 'alpha']
38
+ ...
39
+ end
40
+ ```
41
+ - Fetch scheduled jobs in batches before pushing into specific queues.
42
+ This will decrease enqueueing time of scheduled jobs by a third. [fatkodima, #4273]
43
+ ```
44
+ ScheduledSet with 10,000 jobs
45
+ Before: 56.6 seconds
46
+ After: 39.2 seconds
47
+ ```
48
+ - Compress error backtraces before pushing into Redis, if you are
49
+ storing error backtraces, this will halve the size of your RetrySet
50
+ in Redis [fatkodima, #4272]
51
+ ```
52
+ RetrySet with 100,000 jobs
53
+ Before: 261 MB
54
+ After: 129 MB
55
+ ```
56
+ - Support display of ActiveJob 6.0 payloads in the Web UI [#4263]
57
+ - Add `SortedSet#scan` for pattern based scanning. For large sets this API will be **MUCH** faster
58
+ than standard iteration using each. [fatkodima, #4262]
59
+ ```ruby
60
+ Sidekiq::DeadSet.new.scan("UnreliableApi") do |job|
61
+ job.retry
62
+ end
63
+ ```
64
+ - Dramatically speed up SortedSet#find\_job(jid) by using Redis's ZSCAN
65
+ support, approx 10x faster. [fatkodima, #4259]
66
+ ```
67
+ zscan 0.179366 0.047727 0.227093 ( 1.161376)
68
+ enum 8.522311 0.419826 8.942137 ( 9.785079)
69
+ ```
70
+ - Respect rails' generators `test_framework` option and gracefully handle extra `worker` suffix on generator [fatkodima, #4256]
71
+ - Add ability to sort 'Enqueued' page on Web UI by position in the queue [fatkodima, #4248]
72
+ - Support `Client.push_bulk` with different delays [fatkodima, #4243]
73
+ ```ruby
74
+ Sidekiq::Client.push_bulk("class" => FooJob, "args" => [[1], [2]], "at" => [1.minute.from_now.to_f, 5.minutes.from_now.to_f])
75
+ ```
76
+ - Easier way to test enqueuing specific ActionMailer and ActiveRecord delayed jobs. Instead of manually
77
+ parsing embedded class, you can now test by fetching jobs for specific classes. [fatkodima, #4292]
78
+ ```ruby
79
+ assert_equal 1, Sidekiq::Extensions::DelayedMailer.jobs_for(FooMailer).size
80
+ ```
81
+ - Add `sidekiqmon` to gemspec executables [#4242]
82
+ - Gracefully handle `Sidekiq.logger = nil` [#4240]
83
+ - Inject Sidekiq::LogContext module if user-supplied logger does not include it [#4239]
84
+
85
+ 6.0
86
+ ---------
87
+
88
+ This release has major breaking changes. Read and test carefully in production.
89
+
90
+ - With Rails 6.0.1+, ActiveJobs can now use `sidekiq_options` directly to configure Sidekiq
91
+ features/internals like the retry subsystem. [#4213, pirj]
92
+ ```ruby
93
+ class MyJob < ActiveJob::Base
94
+ queue_as :myqueue
95
+ sidekiq_options retry: 10, backtrace: 20
96
+ def perform(...)
97
+ end
98
+ end
99
+ ```
100
+ - Logging has been redesigned to allow for pluggable log formatters:
101
+ ```ruby
102
+ Sidekiq.configure_server do |config|
103
+ config.log_formatter = Sidekiq::Logger::Formatters::JSON.new
104
+ end
105
+ ```
106
+ See the [Logging wiki page](https://github.com/mperham/sidekiq/wiki/Logging) for more details.
107
+ - **BREAKING CHANGE** Validate proper usage of the `REDIS_PROVIDER`
108
+ variable. This variable is meant to hold the name of the environment
109
+ variable which contains your Redis URL, so that you can switch Redis
110
+ providers quickly and easily with a single variable change. It is not
111
+ meant to hold the actual Redis URL itself. If you want to manually set
112
+ the Redis URL (not recommended as it implies you have no failover),
113
+ then you may set `REDIS_URL` directly. [#3969]
114
+ - **BREAKING CHANGE** Increase default shutdown timeout from 8 seconds
115
+ to 25 seconds. Both Heroku and ECS now use 30 second shutdown timeout
116
+ by default and we want Sidekiq to take advantage of this time. If you
117
+ have deployment scripts which depend on the old default timeout, use `-t 8` to
118
+ get the old behavior. [#3968]
119
+ - **BREAKING CHANGE** Remove the daemonization, logfile and pidfile
120
+ arguments to Sidekiq. Use a proper process supervisor (e.g. systemd or
121
+ foreman) to manage Sidekiq. See the Deployment wiki page for links to
122
+ more resources.
123
+ - Integrate the StandardRB code formatter to ensure consistent code
124
+ styling. [#4114, gearnode]
125
+
5
126
  5.2.7
6
127
  ---------
7
128
 
@@ -0,0 +1,37 @@
1
+ # Welcome to Sidekiq Enterprise 2.0!
2
+
3
+ Sidekiq Enterprise 2.0 adds a few new features and adds the requirement that license
4
+ credentials be available at runtime. Note that Sidekiq 6.0 does have major breaking changes.
5
+
6
+ ## What's New
7
+
8
+ * Sidekiq Enterprise now requires license credentials at runtime. If you
9
+ configured Bundler as described in the access email you need do
10
+ nothing, everything should just work. If you are vendoring Sidekiq
11
+ Enterprise you will need to configure Bundler also or set
12
+ `SIDEKIQ_ENT_USERNAME=abcdef12 bundle exec sidekiq...` when starting the
13
+ process. [#4232]
14
+ * Dead jobs now release any unique locks they were holding when they died [#4162]
15
+ * Backoff can now be customized per rate limiter by passing in a Proc [#4219]
16
+ ```ruby
17
+ limiter = Sidekiq::Limiter.bucket(:stripe, 10, :second, backoff: ->(limiter, job) {
18
+ return job['overrated'] || 5 # wait for N seconds, where N is the number of
19
+ # times we've failed the rate limit
20
+ })
21
+ ```
22
+ * Removed deprecated APIs and warnings.
23
+ * Various changes for Sidekiq 6.0
24
+ * Requires Ruby 2.5+ and Redis 4.0+
25
+ * Requires Sidekiq 6.0+ and Sidekiq Pro 5.0+
26
+
27
+ ## Upgrade
28
+
29
+ * Upgrade to the latest Sidekiq Enterprise 1.x.
30
+ ```ruby
31
+ gem 'sidekiq-ent', '< 2'
32
+ ```
33
+ * Fix any deprecation warnings you see.
34
+ * Upgrade to 2.x.
35
+ ```ruby
36
+ gem 'sidekiq-ent', '< 3'
37
+ ```
@@ -4,6 +4,24 @@
4
4
 
5
5
  Please see [http://sidekiq.org/](http://sidekiq.org/) for more details and how to buy.
6
6
 
7
+ 2.0.1
8
+ -------------
9
+
10
+ - Periodic job registration API adjusted to avoid loading classes in initializer [#4271]
11
+ - Remove support for deprecated ENV variables (COUNT, MAXMEM\_MB, INDEX) in swarm code
12
+
13
+ 2.0.0
14
+ -------------
15
+
16
+ - Except for the [newly required credentials](/mperham/sidekiq/issue/4232), Sidekiq Enterprise 2.0 does
17
+ not have any significant migration steps.
18
+ - Sidekiq Enterprise must now be started with valid license credentials. [#4232]
19
+ - Call `GC.compact` if possible in sidekiqswarm before forking [#4181]
20
+ - Changes for forward-compatibility with Sidekiq 6.0.
21
+ - Add death handler to remove any lingering unique locks [#4162]
22
+ - Backoff can now be customized per rate limiter [#4219]
23
+ - Code formatting changes for StandardRB
24
+
7
25
  1.8.1
8
26
  -------------
9
27
 
data/Gemfile CHANGED
@@ -1,23 +1,24 @@
1
- source 'https://rubygems.org'
1
+ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'rake'
6
- gem 'redis-namespace'
7
- gem 'rails', '~> 5.2'
8
- gem 'sqlite3', '~> 1.3.6', platforms: :ruby
9
- gem 'activerecord-jdbcsqlite3-adapter', platforms: :jruby
5
+ gem "rake"
6
+ gem "redis-namespace"
7
+ gem "rails"
8
+ gem "sqlite3", platforms: :ruby
9
+ gem "activerecord-jdbcsqlite3-adapter", platforms: :jruby
10
10
 
11
11
  group :test do
12
- gem 'minitest'
13
- gem 'simplecov'
12
+ gem "minitest"
13
+ gem "simplecov"
14
14
  end
15
15
 
16
16
  group :development, :test do
17
- gem 'pry-byebug', platforms: :mri
17
+ gem "pry-byebug", platforms: :mri
18
+ gem "standard"
18
19
  end
19
20
 
20
21
  group :load_test do
21
- gem 'hiredis'
22
- gem 'toxiproxy'
22
+ gem "hiredis"
23
+ gem "toxiproxy"
23
24
  end
@@ -0,0 +1,196 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ sidekiq (6.0.2)
5
+ connection_pool (>= 2.2.2)
6
+ rack (>= 2.0.0)
7
+ rack-protection (>= 2.0.0)
8
+ redis (>= 4.1.0)
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ actioncable (6.0.0)
14
+ actionpack (= 6.0.0)
15
+ nio4r (~> 2.0)
16
+ websocket-driver (>= 0.6.1)
17
+ actionmailbox (6.0.0)
18
+ actionpack (= 6.0.0)
19
+ activejob (= 6.0.0)
20
+ activerecord (= 6.0.0)
21
+ activestorage (= 6.0.0)
22
+ activesupport (= 6.0.0)
23
+ mail (>= 2.7.1)
24
+ actionmailer (6.0.0)
25
+ actionpack (= 6.0.0)
26
+ actionview (= 6.0.0)
27
+ activejob (= 6.0.0)
28
+ mail (~> 2.5, >= 2.5.4)
29
+ rails-dom-testing (~> 2.0)
30
+ actionpack (6.0.0)
31
+ actionview (= 6.0.0)
32
+ activesupport (= 6.0.0)
33
+ rack (~> 2.0)
34
+ rack-test (>= 0.6.3)
35
+ rails-dom-testing (~> 2.0)
36
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
+ actiontext (6.0.0)
38
+ actionpack (= 6.0.0)
39
+ activerecord (= 6.0.0)
40
+ activestorage (= 6.0.0)
41
+ activesupport (= 6.0.0)
42
+ nokogiri (>= 1.8.5)
43
+ actionview (6.0.0)
44
+ activesupport (= 6.0.0)
45
+ builder (~> 3.1)
46
+ erubi (~> 1.4)
47
+ rails-dom-testing (~> 2.0)
48
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
+ activejob (6.0.0)
50
+ activesupport (= 6.0.0)
51
+ globalid (>= 0.3.6)
52
+ activemodel (6.0.0)
53
+ activesupport (= 6.0.0)
54
+ activerecord (6.0.0)
55
+ activemodel (= 6.0.0)
56
+ activesupport (= 6.0.0)
57
+ activestorage (6.0.0)
58
+ actionpack (= 6.0.0)
59
+ activejob (= 6.0.0)
60
+ activerecord (= 6.0.0)
61
+ marcel (~> 0.3.1)
62
+ activesupport (6.0.0)
63
+ concurrent-ruby (~> 1.0, >= 1.0.2)
64
+ i18n (>= 0.7, < 2)
65
+ minitest (~> 5.1)
66
+ tzinfo (~> 1.1)
67
+ zeitwerk (~> 2.1, >= 2.1.8)
68
+ ast (2.4.0)
69
+ builder (3.2.3)
70
+ byebug (11.0.1)
71
+ coderay (1.1.2)
72
+ concurrent-ruby (1.1.5)
73
+ connection_pool (2.2.2)
74
+ crass (1.0.4)
75
+ docile (1.3.2)
76
+ erubi (1.8.0)
77
+ globalid (0.4.2)
78
+ activesupport (>= 4.2.0)
79
+ hiredis (0.6.3)
80
+ i18n (1.6.0)
81
+ concurrent-ruby (~> 1.0)
82
+ jaro_winkler (1.5.3)
83
+ json (2.2.0)
84
+ loofah (2.2.3)
85
+ crass (~> 1.0.2)
86
+ nokogiri (>= 1.5.9)
87
+ mail (2.7.1)
88
+ mini_mime (>= 0.1.1)
89
+ marcel (0.3.3)
90
+ mimemagic (~> 0.3.2)
91
+ method_source (0.9.2)
92
+ mimemagic (0.3.3)
93
+ mini_mime (1.0.2)
94
+ mini_portile2 (2.4.0)
95
+ minitest (5.11.3)
96
+ nio4r (2.5.1)
97
+ nokogiri (1.10.4)
98
+ mini_portile2 (~> 2.4.0)
99
+ parallel (1.17.0)
100
+ parser (2.6.4.1)
101
+ ast (~> 2.4.0)
102
+ pry (0.12.2)
103
+ coderay (~> 1.1.0)
104
+ method_source (~> 0.9.0)
105
+ pry-byebug (3.7.0)
106
+ byebug (~> 11.0)
107
+ pry (~> 0.10)
108
+ rack (2.0.7)
109
+ rack-protection (2.0.7)
110
+ rack
111
+ rack-test (1.1.0)
112
+ rack (>= 1.0, < 3)
113
+ rails (6.0.0)
114
+ actioncable (= 6.0.0)
115
+ actionmailbox (= 6.0.0)
116
+ actionmailer (= 6.0.0)
117
+ actionpack (= 6.0.0)
118
+ actiontext (= 6.0.0)
119
+ actionview (= 6.0.0)
120
+ activejob (= 6.0.0)
121
+ activemodel (= 6.0.0)
122
+ activerecord (= 6.0.0)
123
+ activestorage (= 6.0.0)
124
+ activesupport (= 6.0.0)
125
+ bundler (>= 1.3.0)
126
+ railties (= 6.0.0)
127
+ sprockets-rails (>= 2.0.0)
128
+ rails-dom-testing (2.0.3)
129
+ activesupport (>= 4.2.0)
130
+ nokogiri (>= 1.6)
131
+ rails-html-sanitizer (1.2.0)
132
+ loofah (~> 2.2, >= 2.2.2)
133
+ railties (6.0.0)
134
+ actionpack (= 6.0.0)
135
+ activesupport (= 6.0.0)
136
+ method_source
137
+ rake (>= 0.8.7)
138
+ thor (>= 0.20.3, < 2.0)
139
+ rainbow (3.0.0)
140
+ rake (12.3.3)
141
+ redis (4.1.2)
142
+ redis-namespace (1.6.0)
143
+ redis (>= 3.0.4)
144
+ rubocop (0.72.0)
145
+ jaro_winkler (~> 1.5.1)
146
+ parallel (~> 1.10)
147
+ parser (>= 2.6)
148
+ rainbow (>= 2.2.2, < 4.0)
149
+ ruby-progressbar (~> 1.7)
150
+ unicode-display_width (>= 1.4.0, < 1.7)
151
+ rubocop-performance (1.4.1)
152
+ rubocop (>= 0.71.0)
153
+ ruby-progressbar (1.10.1)
154
+ simplecov (0.17.0)
155
+ docile (~> 1.1)
156
+ json (>= 1.8, < 3)
157
+ simplecov-html (~> 0.10.0)
158
+ simplecov-html (0.10.2)
159
+ sprockets (3.7.2)
160
+ concurrent-ruby (~> 1.0)
161
+ rack (> 1, < 3)
162
+ sprockets-rails (3.2.1)
163
+ actionpack (>= 4.0)
164
+ activesupport (>= 4.0)
165
+ sprockets (>= 3.0.0)
166
+ sqlite3 (1.4.1)
167
+ standard (0.1.4)
168
+ rubocop (~> 0.72.0)
169
+ rubocop-performance (~> 1.4.0)
170
+ thor (0.20.3)
171
+ thread_safe (0.3.6)
172
+ toxiproxy (1.0.3)
173
+ tzinfo (1.2.5)
174
+ thread_safe (~> 0.1)
175
+ unicode-display_width (1.6.0)
176
+ websocket-driver (0.7.1)
177
+ websocket-extensions (>= 0.1.0)
178
+ websocket-extensions (0.1.4)
179
+ zeitwerk (2.1.9)
180
+
181
+ PLATFORMS
182
+ ruby
183
+
184
+ DEPENDENCIES
185
+ activerecord-jdbcsqlite3-adapter
186
+ hiredis
187
+ minitest
188
+ pry-byebug
189
+ rails
190
+ rake
191
+ redis-namespace
192
+ sidekiq!
193
+ simplecov
194
+ sqlite3
195
+ standard
196
+ toxiproxy