Description
背景
任何项目在编写代码的过程中都难免出现一些 typo,而对 Paddle 这种大型项目而言,要 100% 避免 typo 是很难的。虽然 typo 不会影响代码的正确性,但可能会影响代码的可读性,给阅读代码的同学带来一些困扰。因此,我们希望引入工具来帮助我们自动化检测和修复 typo,以尽可能减少 Paddle 代码库中的 typo。
typos
是一个快速且可靠的拼写检查工具,能够帮助我们检测代码中的 typo,并提供自动修复功能。因此我们希望将 typos
作为新的代码风格检查工具,集成到 Paddle pre-commit 中,以帮助我们监控和修复代码中的 typo。
推荐实现路径
与其它代码风格检查工具集成方案类似(如 Flake8、Ruff 等,可参考相关 RFC),工具的集成主要有两部分:存量修复和增量拦截。
关于增量拦截,我们可以直接利用现有的 pre-commit 机制,以及 PR-CI-CodeStyle-Check
CI 流水线的检查机制,来确保增量文件中不会引入新的 typo。
关于存量修复,我们需要摸清目前存量 typo 情况,然后对 typo 进行分类,产出任务列表,接下来交给社区来推动 typo 的修复工作。
值得注意的是,如果改动涉及到 API(无论是 C++ 还是 Python),那么不要修改,因为任何 API 变动都可能会导致用户代码无法正常运行(比如 feeded
)。另外就是 typos
的检查不是 100% 准确的,Paddle 框架内的一些术语可能会被误检成 typo(比如 lod
)。因此如果发现误检的情况,应当将其加入配置的白名单中,避免误检。
比如初步对框架内代码进行检测可以得到如下配置项:
# _typos.toml
[default.extend-words]
lod = "lod"
dout = "dout"
unpacket = "unpacket"
Nd = "Nd"
UE = "UE"
Nce = "Nce"
grad = "grad"
arange = "arange"
ot = 'ot'
可以通过运行 typos --format brief --exclude build --color=never
来对存量问题进行检测,然后将结果整理成任务列表,交给社区来推动 typo 的修复工作(相同 typo 作为同一个任务,方便 review,是误检还是真正 typo 由认领该任务的同学来判断)。
Sub-issues
Metadata
Metadata
Assignees
Labels
Type
Projects
Status