TLDR: 我用 Rust 重写了 pre-commit: https://github.com/j178/prek
一些背景故事:
去年开始给 uv 提交了一些 PR ,掌握了一些 Rust 基础,就开始想着自己从头写一个项目练手。没有什么好的 idea ,就准备从重写一些常用的软件开始,正好对 pre-commit 比较熟,就开始从头写一个 Rust 版本的 pre-commit 。
慢慢地写完了最基础的功能,小范围宣传了一下,然后原作者找上了门。本来以为是善意的合作邀请,结果人家来就是为了喷我的……(后来我才知道这个作者在开源圈子的名声有多臭)。不过我确实忘了添加 pre-commit 的 LICENSE ,人家喷我我也认。不过我也慢慢没了热情,把项目搁置了。
今年没有那么忙了,周末就在家打游戏,女朋友跟我说:”好久没见你在家写代码了“,于是我就又把这个项目捡起来了。高强度开发了两周,补充了很多功能,基本上可以 drop-in 替换原来的 pre-commit 了。
这期间 PDM^1,basedpyright^2 开始在 contribution guide 中推荐使用我开发的 prek
作为 pre-commit
的替代。
然后就是 airflow 正在准备迁移^3。与 pdm 和 basedpyright 不一样的是,airflow 高度依赖 pre-commit ,仓库里有 160+ 的 hook ,开发和 CI 流程都完全基于 pre-commit 。
今天,收到了 airflow 的主要 maintainer 给我写的一个回复: https://github.com/j178/prek/issues/73#issuecomment-3178076699 ,给我一顿夸,夸得我都不好意思了。
以上,分享给大家一个小故事,顺便推广一下我的项目。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.