Skip to content

Latest commit

 

History

History
218 lines (125 loc) · 11.7 KB

DolphinDB_Open_Source_Project_Contribution.md

File metadata and controls

218 lines (125 loc) · 11.7 KB

DolphinDB 开源项目贡献指南

本文档用于指导社区用户参与开源项目贡献,以及 PMC(Project Management Committee)管理项目开发与协作。

1 如何参与

1.1 项目组织结构

DolphinDB 的开源项目由 PMC(Project Management Committee) 统一管理,通常由项目的最初开发者组成,并逐步接纳优秀的社区成员。项目相关参与者包括:用户、贡献者、提交者、维护者。

项目组织结构

PMC

项目管理委员会,负责项目开发组织机构,对产品的发展和质量负责。一般由项目开发者组成,并且会逐步接收出色的贡献者进入 PMC。PMC 包含两类角色:maintainer、committer。

contributor

贡献者,愿意参与项目开发,并贡献力量的社区人员。fork 项目代码,并提交 issue,pr。

committer

提交者,由 contributor 晋升而来,通常是在项目日常运营过程中,得到了项目核心维护团队的认可和提名。拥有仓库的代码提交权限。

maintainer

具有最高决策权力的群体,决策项目发展方向,同时对项目组织各层级的成员进行提名、投票等。

users

使用者,在项目生命周期中发挥着重要的作用。用户可以积极地反馈软件的相关需求和问题,促进项目的不断发展。

1.2 贡献形式

欢迎各位开发者积极参与到 DolphinDB 开源项目中,为 DolphinDB 的发展贡献自身的力量,星星之火可以燎原。开发者能以多种形式参与项目,对项目发展做出贡献。包括:

  • 报告 bug

测试合报告相关 bug,如有可能指出相关问题代码。

  • 修复 bug

搜索带有 bug 标签的 issue 进行修复。

  • 实现新功能

搜索带有 enhancement 标签的 issue, 选择实现相关的功能。

  • 提交文档

文档对于开发人员、使用者非常关键。欢迎提交设计文档、使用文档,以及指出现有文档中的错漏之处。文档请使用 markdown 格式编写,内容需简洁、实用。

  • 翻译

将现有文档翻译至其他语言(目前主要是英文)。

  • 关注

关注项目本身也是一种贡献,比如点击 star,watch,帮助回答一些新人的问题等。这都有助于提升项目的热度,进而促进项目的良性发展。

1.3 开源项目列表

在 github 上搜索 DolphinDB 。目前有以下项目开源:

项目 项目说明 地址 备注
DolphinDBPlugin C++ 编写的各种插件,扩展 DolphinDB 功能,如可以连接访问外部数据源的 MySQL、ODBC 插件等。开发前请阅读 DolphinDB 插件开发教程 GitHub - dolphindb/DolphinDBPlugin 主开发分支:
release130: 适配 DolphinDB 1.30版本
release200: 适配 DolphinDB 2.00版本
DolphinDBModules 以 DolphinDB script 编写的 package GitHub - dolphindb/DolphinDBModules 主开发分支:master
jdbc Java JDBC connector GitHub - dolphindb/jdbc: DolphinDB JDBC 主开发分支:master
api-java DolphinDB Java API 开发前请阅读(下同)API 交互协议 GitHub - dolphindb/api-java 主开发分支:
release130: 适配DolphinDB 1.30版本
release200: 适配DolphinDB 2.00版本
api-cplusplus DolphinDB C++ API GitHub - dolphindb/api-cplusplus 主开发分支:
release130: 适配DolphinDB 1.30版本
release200: 适配DolphinDB 2.00版本
api-python-cpp DolphinDB Python API,由 C++、Python编写 GitHub - dolphindb/api-python-cpp: DolphinDB Python API with C++ core 主开发分支: release130
api-csharp DolphinDB C# API GitHub - dolphindb/api-csharp: DolphinDB C# API 主开发分支:
release130: 适配DolphinDB 1.30版本
release200: 适配DolphinDB 2.00版本
api-go DolphinDB Go API GitHub - dolphindb/api-go 主开发分支:
release130: 适配 DolphinDB 1.30版本
release200: 适配 DolphinDB 2.00版本
gui 以 Java 编写的图形化工具 GitHub - dolphindb/gui: DophinDB Java GUI 主开发分支:main
api-javascript DolphinDB JavaScript API GitHub - dolphindb/api-javascript 主开发分支:main
api-rust DolphinDB Rust API GitHub - dolphindb/api-rust 主开发分支:master
api-r DolphinDB R API GitHub - dolphindb/api-r 主开发分支:master
web web 图形化工具 GitHub - dolphindb/web: DolphinDB database web management interface 主开发分支:main
vscode-extension VSCode 插件,可以编写调试 DolphinDB 脚本 GitHub - dolphindb/vscode-extension: DolphinDB VSCode Extension 主开发分支:main

2 项目协作流程

2.1 开发者

大部分简单的事务可以先从 GitHub Discussion 开始进行必要的讨论。如果相关行为得到确认,例如确实发现了一个 bug,能稳定复现,可以进一步提交 issue。Issue 得到项目 PMC 回复后可以着手相关开发工作。最终通过提交 pr 解决问题。总体流程如图:

这里解释下几个关键行为:

  • Discussion

这里可以讨论问题,尤其对于不熟悉项目的人可以在这里发表讨论话题。

  • Issue

已经比较确定的行为在这里报告。比如新功能需求、bug。

  • PR

pull request,完成相关内容开发后,向项目提交 pr。pr 应该具备以下规范:

  1. 详细的解释 bug/功能,提交充分且客观的说明、证据。
  2. 如果是新功能应当有测试代码、记录。
  3. 不要一次提交太多的内容(这样不利于 review),推荐一次提交一个 bug 修复,或者一个功能。
  4. 提交 pr 至相应分支。如果 pr 过程中分支已经更新,需要 rebase。如有冲突,请解决冲突后再提交 pr 。
  • Slack

除了 github 提供的原生交流方式外,也可以在 DolphinDB Slack 中进行即时交流。

2.2 操作流程

以 DolphinDBPlugin 项目为例:

  • 提交 issue

在 issue 界面中,提交具体问题,标题以 [label] xxx 形式,label 包括:bug,help wanted, question, enhancement 等。

提交 issue 后,耐心等待项目 Maintainer 回复,持续交流至问题解决,解决后由 Maintainer 关闭。

  • PR
  1. fork

fork 项目至个人仓库。点击 forkCreate a new fork 即可。

  1. clone 至本地

将个人仓库中的项目 clone 到本地以便后续开发。

git clone https://github.com/peeyee/DolphinDBPlugin.git
  1. push 至个人仓库

根据需求,提交相关内容,如果是文档以 markdown 编写,代码风格请循序 google-styleguide

git commit -a -m "add a document about xxx." && git push
  1. 提交 PR

在 dolphindb / DolphinDBPlugin 项目中,切换至 Pull requests 页面,点击 New pull requestcompare across forks,选择个人仓库的分支即可。

在描述中详细说明提交的内容及必要性。输入 “#” 可以关联相关的 issue,以便 maintainer 能更好地 review。

2.3 项目管理者

对 pr 进行 review,检查是否符合规范,质量,并进行相关测试。接受到 pr 后,可以在 github 上进行 review,备注 comment,要求修改或者接受 pr。

  • pr review

File changes 选项中 review 相关代码,并提交 review 意见:

Approve,接受合并。

Request changes,退回合并请求,给出意见并要求整改。

  • pr test

除了一些简单的提交,如去除无意义代码,拼写错误,增加文档等情况,一般都是要先测试。将 pr 进行本地测试。

具体参考:Checking out pull requests locally - GitHub Docs ,这里简单说明下关键步骤:

  1. 安装 git cli

Ubuntu 上安装

type -p curl >/dev/null || (sudo apt update && sudo apt install curl -y)
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
&& sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& sudo apt update \
&& sudo apt install gh -y

不同平台的安装参考 GitHub - cli/cli: GitHub’s official command line tool

  1. check out pr

在 pr 列表中找到相应内容,并复制命令:

gh pr checkout <PULL-REQUEST ID>

checkout 到相应分支并进行测试,将相关测试结果反馈至 pr review 中。