兼容性
RuboCop 针对 Ruby 2.0+ 代码分析。1
RuboCop 官方运行时支持 MRI(又名 CRuby)和 JRuby。
-
MRI 2.7+
-
JRuby 9.4+
支持的最旧 JRuby 版本源自最旧的兼容 MRI 版本。
RuboCop 也可能与其他 Ruby 实现一起使用,但它只在 MRI 和 JRuby 上进行了测试。 |
支持矩阵
RuboCop 通常旨在遵循 MRI 自己的支持策略,这意味着 RuboCop 将支持所有官方支持的 MRI 版本。2 为了让人们有更多时间顺利过渡,我们通常会提供大约一年时间的支持,直到 MRI 版本的 EOL。3
Ruby 2.7 和 Ruby 3.0 之间存在重大版本不兼容性,而最新稳定版本的 Ruby on Rails 7.1 仍然支持 Ruby 2.7。因此,RuboCop 在此阶段放弃对 Ruby 2.7 的支持可能为时过早。只要 Rails 7.1 处于 Ruby on Rails 维护策略 的“错误修复”阶段,RuboCop 将继续支持 Ruby 2.7。 |
下表是运行时支持矩阵。
支持的运行时 Ruby 版本 | 最后支持的 RuboCop 版本 |
---|---|
1.9 |
0.41 |
2.0 |
0.50 |
2.1 |
0.57 |
2.2 |
0.68 |
2.3 |
0.81 |
2.4 |
1.12 |
2.5 |
1.28 |
2.6 |
1.50 |
2.7 |
- |
3.0 |
- |
3.1 |
- |
3.2 |
- |
3.3 |
- |
3.4(实验性) |
- |
自 RuboCop 1.30 起,RuboCop 使用 Parser gem 作为解析器,针对 Ruby 2.0+ 代码进行分析。它恢复了之前因错误而删除的代码分析支持,同时放弃了对不支持的 Ruby 版本的运行时支持。
从 RuboCop 1.62 开始,对 Prism 的 Prism::Translation::parser
的支持将使 Ruby 3.3+ 的分析成为可能。有关更多详细信息,请参阅 设置 ParserEngine
。
兼容性 设置 TargetRubyVersion 是关于代码分析(RuboCop 可以分析什么),而不是运行时(RuboCop 是否能够在某些 Ruby 上运行)。
|