Bootstrap

Gluten 项目贡献指南

以下是 Gluten 项目贡献指南的完整中文翻译:


贡献指南

欢迎为 Gluten 项目贡献力量!
您的贡献不仅限于提交代码,还包括代码审查、改进文档、提出想法等。


GitHub 拉取请求(PR)

  1. 前置条件
    若有必要,请先提交 GitHub Issue,并在 PR 标题中引用该 Issue 编号。

  2. PR 标题规范

    • CHVL 分别代表 ClickHouse 和 Velox 后端。若代码修改仅针对特定后端,请在 PR 标题中添加 [CH][VL] 标签。
    • 若修改涉及通用代码,请勿添加后端标签,改用 [CORE][MINOR][DOC] 等标签。

    示例

    • 仅针对 CH 后端的 PR:
      [GLUTEN-<Issue编号>][CH] 修改描述
    • 仅针对 VL 后端的 PR:
      [GLUTEN-<Issue编号>][VL] 修改描述
    • 涉及通用代码的 PR:
      [GLUTEN-<Issue编号>][CORE] 修改描述
  3. PR 描述
    请在 PR 描述中详细说明修改内容,以帮助评审人员理解。


GitHub Issue

  1. 避免重复
    提交新 Issue 前请先搜索现有 Issue。
  2. 标签规范
    若 Issue 仅与特定后端相关,请在标题中添加 [CH][VL] 标签。
  3. 建议流程
    鼓励开发者先提交 Issue 再编写代码,以避免重复劳动。

单元测试

  1. 覆盖范围
    若提出的修复或功能未被 Spark 单元测试覆盖,请至少添加一个单元测试。
  2. 质量保障
    通过测试确保代码质量,减少回归问题。

文档更新

  1. 代码修改同步
    若代码变更影响功能,请更新相关文档。
  2. 配置项说明
    新增配置属性时,需更新 Configuration.md

代码风格

  1. Java/Scala 规范

  2. C/C++ 规范

    • 遵循 CppCodingStyle.md
    • Velox 后端开发者可执行 dev/formatcppcode.sh 自动格式化(需安装 clang-format-15)。

许可证声明

  1. 统一规范
    所有源代码必须包含相同的许可证声明。
  2. 自动修复
    若检测到许可证缺失或错误,可执行以下脚本修复:
    dev/check.py header main --fix
    

Gluten CI 流程

  1. ClickHouse 后端 CI

  2. Velox 后端 CI

    • 通过 PR 页面的 GitHub Action 查看失败详情。
    • 性能影响测试:评论 /Benchmark Velox 触发 TPC-H 基准测试,结果完成后自动发布。
    • 依赖更新:需修改 CI Docker 配置目录

代码审查

  1. CI 检查
    确保 PR 不触发任何 CI 失败。
  2. 评审流程
    • PR 可能需多轮社区评审。
    • 准备就绪时,请 @ 评审人员进行下一轮审查。
  3. 合并条件
    关键代码变更需至少获得两位提交者(Committer)的批准。

代码合并

  1. 合并方式
    选择 Squash and merge 合并 PR。
  2. 提交信息规范
    • 若提交信息标题与 PR 标题不一致,需手动修正。
    • 示例
      [GLUTEN-<Issue编号>][CORE] 修改描述 (#<PR编号>)
      
    • 扩展描述:合并时可添加简要说明,避免保留无意义的提交历史(如“Initial commit”)。

注意事项

  • 中英文术语对照需保持一致(如 Backend=后端、CI=持续集成)。
  • 代码示例和命令保留原格式以确保可执行性。
  • 链接和文件路径需验证有效性。

通过遵循以上规范,您将为 Gluten 项目的开源协作提供高效支持。

;