Ruff v0.16.0
Astral 于 2026 年 7 月 23 日发布了 Ruff v0.16.0,默认启用的规则从 59 条增加到 413 条。作者 Simon Willison 的 CI 因新默认规则而失败,他使用 uvx 命令自动修复了数千个问题,并借助 Codex 和 Claude Code 等 AI 工具升级了主要项目。
Astral 于 2026 年 7 月 23 日发布了 Ruff v0.16.0,这是 Python 代码检查工具 Ruff 的一次重大更新。此次更新将默认启用的规则从之前的 59 条大幅提升至 413 条。自 Ruff v0.1.0 以来,规则总数已从 708 条增长到 968 条,许多新规则能够捕获语法错误和即时运行时错误,但此前并未默认启用。Brent Westbrook 在发布公告中表示,新规则集将让开发者无需任何 Ruff 配置就能注意到这些严重问题。
Simon Willison 在 7 月 25 日注意到,由于他的项目未锁定 ruff 版本,CI 作业因新的默认规则全部失败。他建议使用一行命令 uvx ruff@latest check . 在任何 Python 项目上体验新版本。Willison 对其三个主要项目——Datasette、sqlite-utils 和 LLM——运行了最新的 Ruff,发现了数百个违反新默认规则的小问题。这些项目都拥有全面的测试套件,在 CI 中覆盖 Python 3.10 到 3.14,因此升级相对安全。
Willison 使用 uvx ruff@latest check . --fix --unsafe-fixes 命令进行批量修复。仅 sqlite-utils 就报告了 1618 个错误,其中 1538 个被自动修复。文章中展示了三个未自动修复的示例:datetime.datetime.now() 缺少时区参数(DTZ005)、盲目捕获 Exception(BLE001)以及无用的属性访问(B018)。Ruff 为每个问题提供了清晰的解释和修复建议。
考虑到 Astral 已被 OpenAI 收购,这种输出格式非常适合 AI 编码代理。Willison 使用 Codex(GPT-5.6 Sol high)升级了 LLM 和 sqlite-utils,使用 Claude Code(Opus 5)升级了 Datasette。这次更新不仅提升了代码质量,也展示了 AI 工具在自动化代码修复方面的潜力。