-
Notifications
You must be signed in to change notification settings - Fork 197
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
* Add Racc to runtime dependencies #929
* Add Racc to runtime dependencies #929
Conversation
Follow up ruby/ruby#7877. Ruby 3.3.0dev is set to promote Racc to a bundled gem. Therefore, this PR adds Racc to runtime dependencies to prevents the following error in RuboCop: ```console bundle exec rake internal_investigation rake aborted! LoadError: cannot load such file -- racc/parser <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' /usr/local/bundle/gems/parser-3.2.2.1/lib/parser.rb:12:in `<top (required)>' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop/ast.rb:3:in `<top (required)>' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop-ast.rb:3:in `require_relative' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop-ast.rb:3:in `<top (required)>' ``` https://app.circleci.com/pipelines/github/rubocop/rubocop/9387/workflows/c308ef87-1373-4c0a-b90d-a22ea57860e3/jobs/279345 Since the Parser gem supports Ruby 2.0.0 and above, So, Racc runtime version is not specified to accept older Racc versions. Development version of Racc 1.7.0 has been added to the Gemfile.
Ah, now it makes sense, I completely missed the fact that it's a dev dependency 🤦 . That's where the difference between parser's and rubocop's test suites come from. Is it safe to specify no version constraint for racc? |
Honestly, I'm not entirely confident. However, given that there has never been a specific runtime version required for Racc, I believe it is least likely to encounter incompatibilities. |
Good point 👍 |
Follow up ruby/ruby#7877. Ruby 3.3.0dev is set to promote Racc to a bundled gem. Therefore, this PR provides a workaround for Parser 3.2.2.2 or lower with Ruby 3.3.0dev to prevents the following Ruby 3.3.0dev CI matrix error: ```console bundle exec rake internal_investigation rake aborted! LoadError: cannot load such file -- racc/parser <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' /usr/local/bundle/gems/parser-3.2.2.1/lib/parser.rb:12:in `<top (required)>' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' <internal:/usr/local/lib/ruby/3.3.0+0/rubygems/core_ext/kernel_require.rb>:37:in `require' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop/ast.rb:3:in `<top (required)>' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop-ast.rb:3:in `require_relative' /usr/local/bundle/gems/rubocop-ast-1.29.0/lib/rubocop-ast.rb:3:in `<top (required)>' ``` https://app.circleci.com/pipelines/github/rubocop/rubocop/9387/workflows/c308ef87-1373-4c0a-b90d-a22ea57860e3/jobs/279345 I opened PR whitequark/parser#929 to add Racc as a runtime dependency to the Parser gem. When the Praser gem releases a new version of Racc that includes the runtime dependencies, it will be able to upgrade the Parser gem dependency and remove the workaround. RuboCop's support for Ruby 3.3.0dev is experimental and additions of Racc to the runtime have not been made, as I believe the solution proposed in whitequark/parser#929 is the best.
|
Follow up whitequark/parser#929 (comment) For Ruby 3.3.0dev, this PR makes RuboCop require Parser 3.2.2.3 as a runtime dependency.
@iliabylich I opened rubocop/rubocop#11942 using Parser 3.2.2.3 with RuboCop and the Ruby 3.3.0dev CI matrices are successful. Thanks for the quick release! |
@koic @iliabylich I appreciate this work. Thanks! |
To get this Ruby 3.3 fix: whitequark/parser#929
Follow up ruby/ruby#7877.
Ruby 3.3.0dev is set to promote Racc to a bundled gem. Therefore, this PR adds Racc to runtime dependencies to prevents the following error in RuboCop:
https://app.circleci.com/pipelines/github/rubocop/rubocop/9387/workflows/c308ef87-1373-4c0a-b90d-a22ea57860e3/jobs/279345
Since the Parser gem supports Ruby 2.0.0 and above, So, Racc runtime version is not specified to accept older Racc versions. Development version of Racc 1.7.0 has been added to the Gemfile.