Ruff v0.1.0

Ruff v0.1.0

💡 原文英文,约1200词,阅读约需5分钟。
📝

内容提要

Ruff v0.1.0 发布,重点提升稳定性,引入预览模式、修复安全级别和正式版本策略。Ruff 是用 Rust 编写的极快 Python linter,支持超过 700 条规则,可替代 Flake8、isort 等工具。预览模式用于逐步发布不稳定功能;修复分为安全与不安全,默认仅应用安全修复;新版本策略区分破坏性与非破坏性更新。文档已迁移至 docs.astral.sh。

🔎

延伸解读

预览模式:不稳定功能的渐进式发布

Ruff v0.1.0 引入预览模式,用于逐步发布不稳定功能。此前使用 nursery 类别,但需要用户为每条规则单独启用,降低了新规则的曝光度。预览模式通过 --preview 标志或配置启用,可统一管理新规则、不稳定修复和实验性代码分析。这有助于收集社区反馈,确保变更带来净收益。

修复安全级别:默认仅应用安全修复

Ruff 将修复分为安全和不安全两类。安全修复保留代码原意,不安全修复可能改变行为。例如,将 list(...)[0] 替换为 next(iter(...)) 可大幅提速,但空集合时异常从 IndexError 变为 StopIteration,因此被标记为不安全。v0.1.0 默认仅应用安全修复,需通过 --unsafe-fixes 标志或配置启用不安全修复。在 IDE 中,不安全修复不再通过“Fix all”应用,而是通过“Quick fix”逐个审查。

版本策略:区分破坏性与非破坏性更新

Ruff 采用新的版本策略:次要版本用于稳定预览功能、更改稳定行为和引入破坏性变更;补丁版本用于错误修复和预览中的规则或修复变更。这有助于减少大规模变更的频率,让规则在启用前有稳定期,并明确区分破坏性与非破坏性发布,向更强的稳定性保证迈进。

❓

Q&A

Ruff v0.1.0 是什么?

Ruff v0.1.0 是 Ruff 的一个新版本,Ruff 是一个用 Rust 编写的极快 Python linter,可以替代 Flake8、isort 等工具。这个版本重点提升稳定性,引入了预览模式、修复安全级别和正式版本策略。

Ruff 的预览模式有什么作用?

预览模式用于逐步发布不稳定功能,如新规则、不稳定修复和实验性代码分析。用户可以通过 --preview 标志或配置文件启用,以便在正式发布前试用并提供反馈。

Ruff 的修复安全级别是如何工作的?

Ruff 将修复分为安全和不安全。安全修复会保留代码的含义和意图,而不安全修复可能会改变代码行为。默认情况下,Ruff 只应用安全修复。要启用不安全修复,可以使用 --unsafe-fixes 标志或在配置文件中设置 unsafe-fixes = true。

Ruff 的新版本策略是什么?

Ruff 采用语义化版本控制:次要版本用于稳定预览功能、更改稳定行为和破坏性变更;补丁版本用于错误修复和预览中的规则或修复的更改。这有助于减少大型变更的频率,并让用户对升级更有信心。

Ruff 的文档现在在哪里?

Ruff 的文档已从 beta.ruff.rs/docs 迁移到 docs.astral.sh。所有现有链接都会重定向到新域名,并继续正常工作。

Ruff 支持多少条规则?

Ruff 现在支持超过 700 条规则,并且每个版本都会添加新规则。

🏷️

标签

➡️

继续阅读