sunzi icon indicating copy to clipboard operation
sunzi copied to clipboard

Relax dependent `thor` version to fix CI

Open kyanny opened this issue 3 years ago • 0 comments

Hi @kenn,

sunzi's CI failed with ruby-head (3.2.0dev). https://github.com/kenn/sunzi/pull/45/checks?check_run_id=5319265537

That's because sunzi depends on older thor (v0.20.x), thor at that version uses open-uri internally, but open-uri was removed since Ruby 3.x release. https://github.com/ruby/ruby/blob/v3_0_0/NEWS.md#compatibility-issues

thor v1.x uses URI.open so that it is compatible with Ruby 3.x. https://github.com/rails/thor/pull/677

This pull request removes dependent thor version from the gemspec file, so that sunzi will use newer thor and it works fine with Ruby 3.x.


Before this patch:

ruby-2.7.2: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] 
Run options: --seed 7920

# Running:

....

Finished in 0.241189s, 16.5845 runs/s, 132.6760 assertions/s.

4 runs, 32 assertions, 0 failures, 0 errors, 0 skips


ruby-3.0.0: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux] 
Run options: --seed 40040

# Running:

...E

Finished in 0.031828s, 125.6742 runs/s, 628.3711 assertions/s.

  1) Error:
TestCommand#test_compile:
Errno::ENOENT: No such file or directory @ rb_sysopen - https://raw.github.com/kenn/sunzi-recipes/master/ruby/rvm.sh
    /usr/local/rvm/gems/ruby-3.0.0/gems/thor-0.20.3/lib/thor/actions/file_manipulation.rb:89:in `initialize'
    /usr/local/rvm/gems/ruby-3.0.0/gems/thor-0.20.3/lib/thor/actions/file_manipulation.rb:89:in `open'
    /usr/local/rvm/gems/ruby-3.0.0/gems/thor-0.20.3/lib/thor/actions/file_manipulation.rb:89:in `get'
    /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/forwardable.rb:238:in `get'
    /root/sunzi/lib/sunzi/command.rb:69:in `block in compile'
    /usr/local/rvm/gems/ruby-3.0.0/gems/hashugar-1.0.1/lib/hashugar.rb:36:in `each'
    /usr/local/rvm/gems/ruby-3.0.0/gems/hashugar-1.0.1/lib/hashugar.rb:36:in `each'
    /root/sunzi/lib/sunzi/command.rb:66:in `compile'
    /root/sunzi/test/command_test.rb:34:in `block in test_compile'

4 runs, 20 assertions, 0 failures, 1 errors, 0 skips

After this patch (bundle install && bundle update):

ruby-2.7.2: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux] 
Run options: --seed 21643

# Running:

....

Finished in 0.260584s, 15.3501 runs/s, 122.8011 assertions/s.

4 runs, 32 assertions, 0 failures, 0 errors, 0 skips


ruby-3.0.0: ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux] 
Run options: --seed 26678

# Running:

....

Finished in 0.080398s, 49.7524 runs/s, 398.0196 assertions/s.

4 runs, 32 assertions, 0 failures, 0 errors, 0 skips

kyanny avatar Feb 25 '22 12:02 kyanny