rubocop 的新版本会定期发布,但我认为很少有项目能让它保持最新或接近它。
对 Ruby 2.7 的支持将于 2023 年 3 月结束但是,为了使用 ruby 3.0 迁移运行 rubocop,需要将 rubocop 的版本提升到 1.0.0 或更高版本。
由于上述情况,我认为有些人需要赶紧升级 rubocop 版本。
但是,如果你试图一次做所有事情,在团队发展中会与其他成员的发展发生冲突,并且新规则会越来越多,因此很难处理所有这些。
在这篇文章中,我将教那些已经看到了被 rubocop 耗尽的未来的读者如何升级 rubocop,而不会太天真。
暂时升级版本
首先,将版本提高到兔子和角是很重要的。
所以我们先升级rubocop的版本。
我省略了该命令,因为我认为是否将其写入 Gemfile 或 gem install 取决于环境。
将newCop: enable 添加到 .rubocop.yml
编辑 .rubocop.yml 以应用新的 cop 并打开 NewCops 选项。
你不需要审查新警察吗?您可能会听到,但可以在这里一次全部打开它。
AllCops:
NewCops: enable
使用rubocop --auto-gen-config 将所有违规行为静音一次
从旧版本的 rubocop 升级到新版本时,经常会检测到大量违规行为。
但是,在升级 rubocop 版本(原始版本较旧)时,面对每次违规确实很痛苦。
因此,让我们一劳永逸地关闭所有违规行为。
rubocop --auto-gen-config --auto-gen-only-exclude --exclude-limit 999999
另外,请将以下内容写入.rubocop.yml。它读取.rubocop_todo.yml 的描述。
+inherit_from
+ .rubocop_todo.yml
通过使用上述命令读取rubocop_todo.yml,新的违规文件将正确提取违规,而现有的违规文件将无法检测到违规。
发布
让我们在这个时间发布一次并升级 rubocop。
面对每个警察
如果你已经走到这一步,你只需要一个呼吸。
让我们一一回顾 .rubocop_todo.yml 中写的违规行为。
关于 commit 的单位和 PR 的单位,最好调整一下,方便审阅者阅读。
让我们在这里也做出决定,例如禁用不必要的 Cop 或仅禁用某些文件和行。
这样做直到.rubocop_todo.yml 为空。
概括
我希望这篇文章能减轻那些在许多违规行为中苦苦挣扎的人的痛苦,即使他们想尽最大努力将他们的旧 rubocop 升级到最新版本。
尤其是那些因为Ruby3系列更新而需要面对rubocop的人,请尽力而为。
原创声明:本文系作者授权爱码网发表,未经许可,不得转载;
原文地址:https://www.likecs.com/show-308633150.html