代码没改,提交却突然过不了检查,问题可能出在工具自动升级。Ruff——Astral 开发的 Python 代码检查与格式化工具——在 0.16.0 版扩大了默认检查范围。linting 是在程序运行前扫描语法错误、潜在缺陷和风格问题;新增规则会让昨天还能通过的代码,今天开始报错。
据 Simon Willison 7 月 25 日记录,Ruff 0.16.0 于 7 月 23 日发布,默认启用的规则从 59 条增至 413 条。他因开发依赖没有锁定 Ruff 版本,多个 CI(代码提交后自动跑测试和质量检查的流水线)随即失败。他用新版检查 sqlite-utils,发现 1618 个问题,其中自动修复了 1538 个,仍余 80 个;这些问题包括调用当前时间时没有指定时区,以及笼统捕获所有异常。
这次变化不等于程序突然坏了,但可能阻止代码合并或发布。依赖 Ruff 的团队应尽快检查 CI 配置;若希望升级节奏可控,可以采用版本锁定,也就是固定具体工具版本,再单独评估新规则。