Hacker News 中文摘要

RSS订阅

Ruff v0.16.0 – 重大更新 – 默认规则从59条增至413条 -- Ruff v0.16.0 – Significant new updates – 413 default rules up from 59

文章摘要

Ruff v0.16.0发布,新增大量默认规则(从59条增至413条),可替代Black、Flake8等工具,速度极快。

文章总结

Ruff v0.16.0 现已发布,可从 PyPI 或包管理器安装。Ruff 是一款用 Rust 编写的极速 Python 代码检查与格式化工具,可替代 Black、Flake8 等工具,速度提升数十倍。

迁移至 v0.16:本次更新包含少量破坏性变更。主要变化是默认规则集从 59 条扩展至 413 条,涵盖更多严重问题(如语法错误和运行时错误)。若需恢复旧默认规则,可通过配置 select = ["E4", "E7", "E9", "F"] 实现。

新功能: 1. Markdown 代码块格式化:Ruff 现可格式化 Markdown 文件中标注 pythonpy 等语言的围栏代码块,并支持 Quarto 笔记本。可通过 fmt: off/on 注释或 extend-exclude 设置禁用格式化。 2. 新增 ruff: ignore 注释:支持单行或下一逻辑行忽略诊断,并可通过 --add-ignore 自动添加。ruff: file-ignore 可忽略整个文件。预览模式下支持规则名称替代代码。 3. 修复差异显示checkformat --check 命令现默认在输出中显示修复的差异(diff),并支持多种输出格式(如 JSON、GitHub/GitLab 注释)。JSON 输出中部分字段可能为 null

规则稳定化:12 条规则从预览转为稳定,包括 AIR303CPY001FURB164 等。

其他行为稳定化:多项规则在预览模式下行为调整,如 BLE001 在特定日志方法下不再触发,FA102 扩展检查范围等。

感谢所有提供反馈和贡献的开发者!完整更新日志见 GitHub。

评论总结

根据评论内容,总结如下:

主要观点与论据:

  1. 积极评价(多数):多数评论者对Ruff v0.16的发布表示欢迎,认为其默认启用413条规则(零配置即可使用)是重大进步,尤其对AI编码和代理工作流有益。

    • "Great news! With the advent of agentic coding, strong linting is more important than ever." (kstenerud)
    • "enabling 413 rules by default means most projects get useful linting without touching the config at all!" (hyeongjun)
  2. 对版本号变更的担忧:部分用户对Ruff仍处于v0.x阶段且存在破坏性变更表示不满,认为其成熟度已足够进入v1.0。

    • "Why must my poor semver be hurt so!" (bbor)
    • "Surely it's eaten whatever the old options were... and is even more dominant than uv." (bbor)
  3. 对工具生态的对比:有用户羡慕其他语言(如Go)缺乏类似Ruff的高质量工具,也有用户质疑过度依赖格式化工具的价值。

    • "I wish Go had something like Ruff!" (gempir)
    • "The actual problems... are not the spaces... it's the 10-line list comprehensions... None of these tools catch that." (maratc)
  4. 实际使用反馈:用户报告了零配置下的默认行为变化(如标记未排序导入和裸except),以及升级后代码质量提升的实例。

    • "ran 0.16 on a file with no config, it flags unsorted imports and except Exception by default now" (vanyaland)
    • "It caught quite a few things previous versions didn't." (nickjj)
  5. 对Astral被OpenAI收购的隐忧:少数评论提及收购可能影响项目发展,但整体仍对活跃开发表示肯定。

    • "Great to see ruff, ty and uv being actively developed, even after Astral was acquired by OpenAI." (woadwarrior01)

平衡性说明:正面评价占主导,但存在对版本策略、工具哲学和生态对比的批评。评论者普遍认可Ruff的实用性,但对过度依赖格式化工具的价值存在分歧。