resque-scheduler
resque-scheduler copied to clipboard
Remove circular require for resque from resque-scheduler
This resolves the following warning:
BUNDLE_GEMFILE=test/gemfiles/Gemfile-rails-main bundle exec rake test:activejob
/home/zzak/.rbenv/versions/3.3.5/bin/ruby -w -I"lib:test:lib:test/active_job" /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader
.rb "test/active_job/cases/adapter_test.rb"
Using resque
/home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75: warning: /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75: warning: loading in progress
, circular require considered harmful - /home/zzak/code/resque/lib/active_job/queue_adapters/resque_adapter.rb
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:6:in `<main>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:6:in `select'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/gems/rake-13.2.1/lib/rake/rake_test_loader.rb:21:in `block in <main>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque/test/active_job/cases/adapter_test.rb:3:in `<top (required)>'
from /home/zzak/code/resque/test/active_job/cases/adapter_test.rb:3:in `require_relative'
from /home/zzak/code/resque/test/active_job/helper.rb:15:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque/test/active_job/adapters/resque.rb:3:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:61:in `on_load'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:61:in `each'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:62:in `block in on_loa
d'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:92:in `execute_hook'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:87:in `with_execution_
control'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:97:in `block in execut
e_hook'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/gems/3.3.0/bundler/gems/rails-9de4972adee8/activesupport/lib/active_support/lazy_load_hooks.rb:97:in `class_eval'
from /home/zzak/code/resque/test/active_job/adapters/resque.rb:4:in `block in <top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque/lib/active_job/queue_adapters/resque_adapter.rb:7:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque-scheduler/lib/resque-scheduler.rb:4:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque-scheduler/lib/resque/scheduler/extension.rb:4:in `<top (required)>'
from /home/zzak/code/resque-scheduler/lib/resque/scheduler/extension.rb:4:in `require_relative'
from /home/zzak/code/resque-scheduler/lib/resque/scheduler/delaying_extensions.rb:2:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
from /home/zzak/code/resque/lib/resque.rb:27:in `<top (required)>'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `block (2 levels) in replace_require'
from /home/zzak/.rbenv/versions/3.3.5/lib/ruby/3.3.0/bundled_gems.rb:75:in `require'
Run options: --seed 11193
# Running:
.
Finished in 0.002215s, 451.5588 runs/s, 451.5588 assertions/s.
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
I can't reproduce that one test failure locally, I think it's just flaky and given it's using an EOL version of Ruby and redis v4, I'm not sure it's worth investigating very deeply.
Run bundle exec rake
bundle exec rake
shell: /usr/bin/bash -e {0}
env:
REDIS_VERSION: ~> 4.x
RESQUE: master
RUFUS_SCHEDULER: 3.[2](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:2)
COVERAGE: 1
===============================================================================
Failure: test_enqueue_at_adds_correct_list_and_zset(DelayedQueue)
/home/runner/work/resque-scheduler/resque-scheduler/test/delayed_queue_test.rb:26:in `block (2 levels) in <top (required)>'
delayed queue should have one entry now
<1> expected but was
<0>
Redis#srem will always return an Integer in Redis 5.0.0. Use Redis#srem? instead.(called from: /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/[3](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:3).0.0/gems/redis-namespace-1.11.0/lib/redis/namespace.rb:56[4](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:4):in `wrapped_send')
Pipelining commands on a Redis instance is deprecated and will be removed in Redis [5](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:5).0.0.
redis.multi do
redis.get("key")
end
should be replaced by
redis.multi do |pipeline|
pipeline.get("key")
end
(called from /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/3.0.0/gems/redis-namespace-1.11.0/lib/redis/namespace.rb:5[6](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:6)4:in `wrapped_send'}
Redis#srem will always return an Integer in Redis 5.0.0. Use Redis#srem? instead.(called from: /home/runner/work/resque-scheduler/resque-scheduler/vendor/bundle/ruby/3.0.0/gems/redis-namespace-1.[11](https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:12).0/lib/redis/namespace.rb:564:in `wrapped_send')
https://github.com/resque/resque-scheduler/actions/runs/11624157950/job/32372342214?pr=795#step:5:11
Here's how I tried to repro:
ruby -v
ruby 3.0.7p220 (2024-04-23 revision 724a071175) [x86_64-linux]
REDIS_VERSION="~> 4.x" RUFUS_SCHEDULER="3.2" RESQUE="master" bundle exec rake
@zzak If you get a second, can you rebase on master and push this again? I think that instance was fixed in master.