Closed jasnow closed 3 years ago
Thanks for the report! Obviously that should not happen...
Same here.
ArgumentError: setting s(:args).line nil
sexp_processor-4.12.1/lib/sexp.rb:214:in `line'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:43:in `deep_clone'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:32:in `block in deep_clone'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:30:in `each'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:30:in `deep_clone'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:32:in `block in deep_clone'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:30:in `each'
railroader-4.3.7/lib/ruby_parser/bm_sexp.rb:30:in `deep_clone'
railroader-4.3.7/lib/railroader/processors/alias_processor.rb:50:in `process_safely'
railroader-4.3.7/lib/railroader/processor.rb:93:in `process_initializer'
railroader-4.3.7/lib/railroader/scanner.rb:185:in `process_initializer'
railroader-4.3.7/lib/railroader/scanner.rb:179:in `block in process_initializers'
railroader-4.3.7/lib/railroader/scanner.rb:302:in `block in track_progress'
railroader-4.3.7/lib/railroader/scanner.rb:299:in `each'
railroader-4.3.7/lib/railroader/scanner.rb:299:in `track_progress'
railroader-4.3.7/lib/railroader/scanner.rb:177:in `process_initializers'
railroader-4.3.7/lib/railroader/scanner.rb:47:in `process'
railroader-4.3.7/lib/railroader.rb:354:in `scan'
railroader-4.3.7/lib/railroader.rb:77:in `run'
railroader-4.3.7/lib/railroader/commandline.rb:133:in `run_railroader'
railroader-4.3.7/lib/railroader/commandline.rb:118:in `regular_report'
railroader-4.3.7/lib/railroader/commandline.rb:142:in `run_report'
railroader-4.3.7/lib/railroader/commandline.rb:35:in `run'
railroader-4.3.7/lib/railroader/commandline.rb:20:in `start'
railroader-4.3.7/bin/railroader:8:in `<top (required)>'
/lib/ruby/gems/2.6.0/bin/railroader:23:in `load'
/lib/ruby/gems/2.6.0/bin/railroader:23:in `<top (required)>'
temp fix:
gem 'sexp_processor', '4.12.0'
Thanks for the reports, that's definitely not good.
The newest version of sexp_processor
(4.12.1) caused some incompatible change. I had intended to track this down & fix it today, but other things intervened and I've run out of time.
So I'm going to temporarily prevent the use of sexp_processor
version 4.12.1. That will get us back to "working order". I can then fix it later without hurting people's CI chains. I plan to modify gem_common.rb as follows:
- spec.add_dependency "sexp_processor", "~> 4.7"
+ # 4.12.1 known to cause problems
+ spec.add_dependency "sexp_processor", ["~> 4.7", "!= 4.12.1"]
If anyone has suggestions on how to do the longer-term fix, or ideas on what changed in sexp_processor
to cause this, please let me know!
The latest version of Railroader on Rubygems is version 4.3.8, and it expressly disables sexp_processor
version 4.12.1. That will get everyone's CI working, and gives us more time to put in a permanent fix.
I am leaving this issue report open, because I view disabling sexp_processor
version 4.12.1 as a temporary fix.
Based on the following commit, you appear to now need to always pass a line number (an integer) as a parameter to deep_clone (current behavior is to default to nil when no parameter is given).
I am getting this error with 4.13.0
now. Any chance of fixing this?
/usr/local/share/gems/gems/sexp_processor-4.13.0/lib/sexp.rb:222:in `line': setting s(:args).line nil (ArgumentError)
from /usr/local/share/gems/gems/railroader-4.3.8/lib/ruby_parser/bm_sexp.rb:43:in `deep_clone'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/ruby_parser/bm_sexp.rb:32:in `block in deep_clone'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/ruby_parser/bm_sexp.rb:30:in `each'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/ruby_parser/bm_sexp.rb:30:in `deep_clone'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/processors/alias_processor.rb:50:in `process_safely'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/processor.rb:93:in `process_initializer'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:185:in `process_initializer'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:179:in `block in process_initializers'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:302:in `block in track_progress'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:299:in `each'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:299:in `track_progress'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:177:in `process_initializers'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/scanner.rb:47:in `process'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader.rb:354:in `scan'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader.rb:77:in `run'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/commandline.rb:133:in `run_railroader'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/commandline.rb:118:in `regular_report'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/commandline.rb:142:in `run_report'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/commandline.rb:35:in `run'
from /usr/local/share/gems/gems/railroader-4.3.8/lib/railroader/commandline.rb:20:in `start'
from /usr/local/share/gems/gems/railroader-4.3.8/bin/railroader:8:in `<top (required)>'
from /usr/local/bin/railroader:23:in `load'
from /usr/local/bin/railroader:23:in `<main>'
I will have to look at it, but the first step is knowing about it. Thank you.
Any updates on this?
Getting the same error as @prabhu with rails 6 app and sexp_processor 4.13.0.
Same here..
I am experiencing this issue too.
Same
$ bundle exec railroader
Loading scanner...
Processing application in /my/birthday/cake
Processing gems...
[Notice] Detected Rails 4 application
Processing configuration...
[Notice] Escaping HTML by default
Parsing files...
Processing initializers...
bundler: failed to load command: railroader (/Users/pboling/.asdf/installs/ruby/2.5.7/bin/railroader)
ArgumentError: setting s(:args).line nil
/Users/pboling/.asdf/installs/ruby/2.5.7/lib/ruby/gems/2.5.0/gems/sexp_processor-4.15.1/lib/sexp.rb:222:in `line'
/Users/pboling/.asdf/installs/ruby/2.5.7/lib/ruby/gems/2.5.0/gems/railroader-4.3.8/lib/ruby_parser/bm_sexp.rb:43:in `deep_clone'
Also of note... it says "detected Rails 4 application", when in fact it is a Ruby application (Grape) that uses many of the Rails gems, like ActiveRecord, ActiveSupport, ActionMailer, ActionCable, etc, and it uses them at version 5.2, not 4.x. I was hoping this setup would work with railroader.
very old issue so closing it.
After upgrading to 4.12.1 version of sexp_processor gem this morning, we are getting this error:
Sample app (clone and run railroader command):