当前位置: 首页 > article >正文

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 规范

    • 使用 IDE 导入代码风格配置,通过 Spotless Maven 插件格式化代码。
    • 详见 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

    • 查看 CI 失败日志:公共账号登录指南
    • 重新触发 CI:在 PR 页面评论 Run Gluten 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 项目的开源协作提供高效支持。

原文地址:https://blog.csdn.net/zpf_940810653842/article/details/146283432
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/588077.html

相关文章:

  • 行为模式---模版模式
  • S32K144入门笔记(十):TRGMUX的初始化
  • 区块链知识点2
  • 3.水中看月
  • IP 地址
  • 一级运动员最小几岁·棒球1号位
  • 使用OpenResty(基于Nginx和Lua)优化Web服务性能
  • k8s系统学习路径
  • C语言之 条件编译和预处理指令
  • ospf单区域
  • 【MySQL】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法
  • 【leetcode hot 100 108】将有序数组转换为二叉搜索树
  • 英语面试常见问题
  • 前缀和算法第一弹(一维前缀和和二维前缀和)
  • 【环境配置】windows下vscode下无法激活conda环境、创建虚拟环境报错
  • 算法题刷题方法记录(蓝桥杯、Leetcode)
  • Spring MVC拦截器中的责任链模式深度解析
  • 深度探索DeepSeek部署的安全底线
  • 第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组题目试做(上)
  • vulnhub-Hackme-隧道建立、SQL注入、详细解题、思路清晰。