ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何给 transcribe.cpp 提 PR:CONTRIBUTING 规范与 CI 门禁完整清单

如何给 transcribe.cpp 提 PR:CONTRIBUTING 规范与 CI 门禁完整清单 如何给 transcribe.cpp 提 PRCONTRIBUTING 规范与 CI 门禁完整清单【免费下载链接】transcribe.cppggml speech-to-text inference for 16 model families项目地址: https://gitcode.com/GitHub_Trending/tr/transcribe.cpptranscribe.cpp是基于 ggml 的 C/C 语音转写speech-to-text推理库支持 16 模型家族、60 模型变体。想给这个项目提 PR先读懂 CONTRIBUTING.md 和.github/workflows/下的 CI 门禁你的 PR 才能一次过审。本文整理了提 PR 前的规范要点与 CI 检查清单。一、开工前3 分钟读懂项目规范克隆仓库后按顺序读这 3 份文件CONTRIBUTING.md —— 贡献规范、代码风格、审查门禁本文核心依据docs/porting/0-porting.md —— 移植新模型家族的 8 阶段工作流1-intake → 2-oracle → 3-convert → 4-cpp → 5-quants → 6-bench → 7-wer → 8-ship.github/pull_request_template.md —— PR 模板的 4 个必填栏目项目定位偏保守它是一个库 运行时 打包产物被用户嵌入到更大的进程中所以改动必须易审查、跨平台可移植、合并后可持续维护。 想移植新模型规范明确要求先开 issue写清上游模型仓库、family key、变体名和架构模式encoder-transducer / encoder-decoder / audio-LLM / encoder-CTC再按阶段顺序推进不要跳过 intake 和 golden manifest 直接写 C。二、AI 辅助贡献披露是硬性要求可以用 AI 辅助写代码但有两条红线必须在 PR 中披露AI 的使用且人类作者要理解并拥有这部分改动禁止用 AI 写 PR 描述、issue、commit message 或回复 reviewer —— 一眼 AI 味的 PR 描述几乎必被拒。三、代码风格与格式门禁动手前先跑一遍格式检查CI 会用固定版本的 clang-format脚本里 pin 住本地输出与 CI 逐字节一致检查你改动的 C/C用系统里的 clang-format 大概率过不了scripts/ci/clang-format.sh # 就地格式化 scripts/ci/clang-format.sh --check # 只检查不修改几条高频踩坑点规范要求缩进/花括号4 空格缩进花括号与声明同行命名函数/变量用snake_case公共符号带transcribe_前缀注释简短、只用 ASCII解释 ABI 约定和数值选择不写任务历史重构行为改动与批量重排代码必须分开提交依赖不加第三方依赖、新文件、新头文件除非有充分理由注意ggml/、src/third_party/等 vendored 目录永远不要动格式。完整风格细则见 CONTRIBUTING.md 的 Coding style 一节源头参考是 src/transcribe.cpp 与 CMakeLists.txt 周围的现有写法。四、PR 门禁清单合并前必须全绿CONTRIBUTING.md 的 Review gates 一列出了合并前必过的 7 道门禁本地命令直接照抄门禁命令 / 责任人通过标准格式检查scripts/ci/clang-format.sh --check全部 C/C 匹配固定格式Intake 签核人工 reviewintake schema 合法reference_framework / architecture_pattern / known_risks 已审Preflight Auv run scripts/preflight.py --family f --gate A通过或警告对应已接受的 intake 缺口Preflight Buv run scripts/preflight.py --family f --gate B转换器存在后通过数值验证uv run scripts/validate.py all --family f容差文件内张量全部达标转写与参考一致默认测试ctest --test-dir build全部启用的默认测试通过真实模型冒烟ctest --test-dir build -R family开启TRANSCRIBE_BUILD_REAL_MODEL_TESTSON代表性精度 GGUF 上通过另外两类内容严禁提交GGUF 模型二进制、build/validate/下的重型张量 dump、每次运行的 preflight 输出、HF 凭证。候选 GGUF 只能作为 review 附件附上 URL/路径、SHA256、源模型 revision 和转换命令。五、CI 流水线里到底在查什么每个 PR 会按改动路径触发对应工作流定义在 .github/workflows/clang-format 门禁clang-format.yml固定版本 clang-format 全量检查最常被 PR 卡住的一道。native 库门禁native-ci.yml改动src/、include/、tests/、ggml/、构建文件时触发包含 4 条 lanecpp-testsLinux macOS(arm64) 全量 C 白盒测试cmake --install后用外部 C 消费者做链接冒烟cpp-tests-sanitizedASanUBSan 跑同一套测试验证 C 生命周期/ABI 契约provider-dl-vulkan验证无 Vulkan 加载器时静默降级到 CPU 的行为posture-lint校验 wheel preset 与 pyproject lane 的一致性镜像。Python 绑定门禁python-bindings.ymlFFI 生成漂移检查 Python 测试套件。模型 catalog 门禁catalog.yml改动 catalog/、scripts/hf_cards/、docs/models/ 或 README 时强制校验模型元数据一致性。六、Reviewer 会核对的 8 项 PR 描述写法评审者按 CONTRIBUTING.md 的 Reviewer checklist 逐项核对重点intake 已签核且与实现一致Preflight AB 的输出直接粘贴在 PR 描述里不是提交成报告文件警告要能解释验证摘要显示每个容差张量达标、转写逐字匹配默认测试 真实模型冒烟通过tests/tolerances/ 下容差 JSON 的_comment解释了参考框架、dtype 和放宽理由移植日志记录了意外发现供后续文档/工具修正。PR 描述按模板填 4 栏Summary改了什么、为什么、Scope主要动到的区域、AI Assistance是否 AI 辅助、Validation做了什么验证、是否影响 WER/数值验证。七、常见被拒原因速查 ✅格式用了系统 clang-format与 CI 固定版本不一致没在 PR 描述里粘贴 preflight / validate 输出把模型二进制或张量 dump 提交进了 git功能改动夹带大范围重排格式PR 描述、commit message 是 AI 生成的一眼即被拒新家族没有 docs/porting/families/ 家族笔记、golden manifest 和容差文件。把这份清单存档动手前过一遍你的 PR 就能顺畅穿过格式、测试与人工审查三道关卡 【免费下载链接】transcribe.cppggml speech-to-text inference for 16 model families项目地址: https://gitcode.com/GitHub_Trending/tr/transcribe.cpp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表