内容提要
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 条规则,并且每个版本都会添加新规则。