Skip to content

Conversation

@koic
Copy link
Contributor

@koic koic commented Dec 25, 2024

Follow up #3336.

Development for Ruby 3.5 has begun on the master branch: ruby/ruby@2f064b3

Follow up ruby#3336.

Development for Ruby 3.5 has begun on the master branch:
ruby/ruby@2f064b3
@kddnewton kddnewton merged commit 0bc1437 into ruby:main Dec 26, 2024
55 checks passed
@koic koic deleted the support_ruby35_for_prism_translation_parser branch December 26, 2024 14:16
koic added a commit to koic/rubocop-ast that referenced this pull request Mar 21, 2025
## Summary

`Prism::Translation::Parser35` has been started development for Ruby 3.5 (edge Ruby):
ruby/prism#3346

At present, there is no timeline for Ruby 3.5 support in the Parser gem:
whitequark/parser#1046

Given this, support for Ruby 3.5 will first be introduced in `Prism::Translation::Parser`.
This can also serve as a trigger to facilitate user migration from `ParserEngine: parser_whitequark` to
`ParserEngine: parser_prism`.

As for Ruby 3.4, `Prism::Translation::Parser` is working on supporting the `it` syntax in
ruby/prism#3481, but the Parser gem has not yet supported for it.
However, whether to deprecate Ruby 3.4 in the Parser gem will be considered separately from this PR.

Since Ruby 3.5 is a development version with minimal impact on users, while Ruby 3.4 is a stable release,
they will be evaluated separately.

## Additional Information

First, the default `parser_engine` for Ruby 3.5 is set to `parser_prism`.
This default aligns with the current state of support, as the Parser gem is not expected to support Ruby 3.5.

The more challenging decision is how to handle the default for Ruby 3.4.
Ruby 3.4 will likely serve as a transition period between the Parser gem and Prism.
While it is possible to set the default `parser_engine` to `parser_prism` for Ruby 3.4 as well,
considering the potential unexpected incompatibilities in `Prism::Translation::Parser`,
the default remains `parser_whitequark`.

In any case, the primary use case is RuboCop, and what matters most is which value RuboCop chooses to pass.
In other words, the key decision lies with RuboCop.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants