V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
j0hnj
V2EX  ›  分享创造

我的项目马上要 3k star 啦 🎉

  •  
  •   j0hnj · 3 天前 · 1442 次点击

    TLDR: prek 是用 Rust 重写的 pre-commit 工具,支持自动管理多种语言编写的 hook ,欢迎大家 star: https://github.com/j178/prek

    距离第一次发帖 airflow 正在迁移到我写的 pre-commit 替代品 已经过去 4 个月了,这段时间 prek 经历了很多不可思议的「第一次」,今天想和大家更新一下项目的最新进展。

    功能完善

    这几个月主要专注于功能的完善和性能优化:

    核心功能

    • Mono repo 支持:完整支持了 monorepo 模式,每个子项目都可以有自己独立的 .pre-commit-config.yaml 配置文件,再也不用在根目录维护一个庞大的配置了
    • 多语言生态扩展:新增了对 Lua 、Ruby 、Rust 的完整支持,Deno 和 Dart 的支持也在开发中
    • 内置 hooks:支持了 repo: builtin 内置 hook ,开箱即用更方便

    性能与安全

    • 供应链安全:prek auto-update --cooldown-days 参数可以设置更新冷却期,避免依赖包被恶意篡改后立即自动更新带来的安全风险
    • 并行执行:支持 hook 级别的 priority 设置和并行执行,可以极大提升多 hook 场景下的执行速度

    社区认可

    让我最有成就感的是项目得到了社区的广泛认可:

    重量级用户

    Apache Airflow 深度集成了 prek ,还在官方系列文章里专门写了一篇介绍:Modern Python Monorepo for Apache Airflow - Part 3

    大佬推荐

    社区采用

    已经有不少知名项目迁移或正在迁移中:

    数据表现

    • GitHub Stars 即将突破 3000
    • 月下载量:1400 万
    • 总下载量:4200 万
    • PyPI 全站排名:第 889 位

    感想

    开源真的很有意思,你永远不知道下一个用户会是谁。那些曾经仰望的大佬,也会在你的项目里出现!

    如果你还在用 Python 版本的 pre-commit ,不妨试试 prek ,欢迎建议和反馈!

    项目地址: https://github.com/j178/prek

    9 条回复    2025-12-23 08:51:21 +08:00
    cryptovae
        1
    cryptovae  
       3 天前   ❤️ 1
    确实好强,上次看你发这个帖子时好像才 100 多个 star ,就在几个月前
    bxb100
        2
    bxb100  
       3 天前   ❤️ 1
    @cryptovae airflow 吃螃蟹后觉得顶呱呱, 然后社区对 pre-commit 作者早有不满, 最后成全了 prek 的一世英名
    j0hnj
        3
    j0hnj  
    OP
       3 天前
    @bxb100 感谢大佬贡献的 docker 和 docker_image 支持!😁
    bxb100
        4
    bxb100  
       2 天前
    @j0hnj 惭愧, 我就一混 PR 的
    Razio
        5
    Razio  
       2 天前   ❤️ 1
    我看文章里面写的 [Meet Jo, the creator of prek. What started as a weekend / hobby project]

    哥们,但我看你 github 明明都快全勤了,你太猛了,好强
    zqr10159
        6
    zqr10159  
       2 天前
    正好打算在我们项目里用,对这个不太了解啊,咨询一下楼主。我们项目仓库里是同时有前后端的代码,如何让所有克隆我们仓库的人在提交时必须运行 prek 来对前后端执行检查呢?前端是 angular 的,后端是 java ,麻烦楼主指点一下。https://github.com/apache/hertzbeat
    j0hnj
        7
    j0hnj  
    OP
       2 天前
    @zqr10159 首先需要在仓库中添加 `.pre-commit-config.yaml` 文件,并配置相应的检查 hook 。

    关于”如何强制所有克隆仓库的人在提交时运行 pre-commit 检查”,实际上无法做到强制要求。只有在开发者本地执行 `prek install` 安装 git hook 之后,提交时才会自动触发 prek 检查。

    推荐的最佳实践是:在 CI 流程中也添加 prek 检查步骤。这样当贡献者的 PR 触发 CI 检查失败时,他们会意识到需要在本地执行 `prek install`,以便在提交前就能快速发现并修复问题,而不是等到提交 PR 后才发现问题,提高开发效率。
    zqr10159
        8
    zqr10159  
       2 天前 via iPhone
    @j0hnj 好的感谢哈,之前用某个前端项目时候遇到了使用 husky 这种强制 git hooks 的项目来着,所以想问问有没有类似的
    zqr10159
        9
    zqr10159  
       2 天前
    @j0hnj https://github.com/rudikershaw/git-build-hook 搜了一下不知道这个能不能用
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   5068 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 08:25 · PVG 16:25 · LAX 00:25 · JFK 03:25
    ♥ Do have faith in what you're doing.