# Contributing
我们提倡您通过提 Issue 和 Pull Request 方式来促进 APIJSON 的发展。
## Acknowledgements
非常感谢以下贡献者们对于 APIJSON 本项目做出的贡献:
- [TommyLemon](https://github.com/TommyLemon)(腾讯工程师,还开源了 APIJSON-Demo, apijson-framework, apijson-column, apijson-router 等)
- [ruoranw](https://github.com/ruoranw)(现居美国洛杉矶,还开源了 APIJSONdocs)
- [zhoulingfengofcd](https://github.com/zhoulingfengofcd)
- [Zerounary](https://github.com/Zerounary)(还开源了 APIJSONParser)
- [fineday009](https://github.com/fineday009)(腾讯工程师,还贡献了 apijson-framework, APIJSON-Demo)
- [vincentCheng](https://github.com/vincentCheng)(还开源了 apijson-doc)
- [justinfengchen](https://github.com/justinfengchen)
- [linlwqq](https://github.com/linlwqq)
- [redcatmiss](https://github.com/redcatmiss)(社保科技工程师)
- [linbren](https://github.com/linbren)
- [jinzhongjian](https://github.com/jinzhongjian)
- [CoolGeo2016](https://github.com/CoolGeo2016)
- [1906522096](https://github.com/1906522096)
- [github-ganyu](https://github.com/github-ganyu)
- [sunxiaoguang](https://github.com/sunxiaoguang)(知乎基础研发架构师)
- [403f](https://github.com/403f)
- [gujiachun](https://github.com/gujiachun)
- [gdjs2](https://github.com/gdjs2)(University of California, Riverside)
- [Rkyzzy](https://github.com/Rkyzzy)(SUSTech, University of California, Berkeley)
- [kxlv2000](https://github.com/kxlv2000)(SUSTech)
- [caohao-php](https://github.com/caohao-php)(腾讯工程师)
- [Wscats](https://github.com/Wscats)(腾讯工程师、腾讯 AlloyTeam 成员、Tencent Creation Camp 成员、知名技术博主)
- [jun0315](https://github.com/jun0315)(腾讯工程师)
- [JieJo](https://github.com/JieJo)
- [yeyuezhishou](https://github.com/yeyuezhishou)(圆通工程师)
- [kenlig](https://github.com/kenlig)(还开源了 apijsondocs)
- [andream7](https://github.com/andream7)(微软工程师,还开源了 apijson-db2)
- [qiujunlin](https://github.com/qiujunlin)(字节跳动工程师,还开源了 APIJSONDemo)
- [HANXU2018](https://github.com/HANXU2018)(网易工程师,还开源了 APIJSON-DOC)
- [hclown9804](https://github.com/hclown9804)
- [chenyanlann](https://github.com/chenyanlann)(还开源了 APIJSONDemo_ClickHouse)
- [haolingzhang1](https://github.com/haolingzhang1)(腾讯工程师,还开源了 APIJson--demo)
- [jerrylususu](https://github.com/jerrylususu)(还开源了 apijson_todo_demo 和 apijson_role_extend)
- [Dalezee](https://github.com/Dalezee)(还开源了 apijson_camp)
- [aaronlinv](https://github.com/aaronlinv)
- [sy-records](https://github.com/sy-records)
- [Finkyky](https://github.com/Finkyky)
- [ifooling](https://github.com/ifooling)
- [transtone](https://github.com/transtone)
- [AwenJackson](https://github.com/AwenJackson)(上海信息出奇科技有限公司工程师,发布了 3 篇文章)
#### 其中特别致谢:
justinfengchen 提交的 6 个 Commits, 对 APIJSON 做出了 3,130 增加和 0 处删减(截止 2020/11/04 日);
ruoranw 提交的 18 个 Commits, 对 APIJSON 做出了 328 增加和 520 处删减(截止 2020/11/04 日);
Zerounary 提交的 6 个 Commits, 对 APIJSON 做出了 1,104 增加和 1 处删减(截止 2020/11/04 日)。
APIJSON 持续招募贡献者,新增功能、修复 Bug、完善文档、修正错误、宣传推广、回答问题等,都能帮助项目及广大用户。
APIJSON 已开发近 6 年,在此感谢所有开发者对于 APIJSON 的喜欢和支持,希望你能够成为 APIJSON 的核心贡献者,
加入 APIJSON ,共同打造一个更棒的零代码、全功能、强安全 ORM 库,造福更多前后端开发者!🍾🎉
### 为什么一定要贡献代码?
APIJSON 作为腾讯开源的知名热门项目,贡献代码除了可以给简历加亮点、为面试加分,还可以避免你碰到以下麻烦:
1.你在 APIJSON 上更改的代码其他人看不到,不能帮你发现 Bug,更不可能帮你修复 Bug 甚至优化代码
2.作者和其它贡献者可能不兼容你更改的代码,导致你的项目在升级 APIJSON 版本后在功能甚至编译上出错
3.你需要自己维护你的代码,每次升级 APIJSON 版本时,你都需要下载 APIJSON 新代码再合并你自己的更改
#### 所以为了让你自己的更改始终能跟上项目版本,得到他人给予的可靠且持续的维护,强烈建议 [提交 Pull Request](/CONTRIBUTING.md#pull-request) 来贡献代码。
## Pull Request
我们除了希望听到您的反馈和建议外,我们也希望您接受代码形式的直接帮助,对我们的 GitHub 发出 Pull Request 请求。
### 如果是小改文档或代码
直接点文件右上角的编辑图标按钮
![image](https://user-images.githubusercontent.com/5738175/130585672-8bd49ae5-2978-4ad6-a7a6-de0a0c2d0b68.png)
然后底部简要输入修改说明,点击 Commit Change 按钮
![image](https://user-images.githubusercontent.com/5738175/130586073-4a6aea74-3c88-4cd9-9c93-ffaba1270ab8.png)
### 如果有比较大的改动
以下是具体步骤:(如果使用本步骤,GitHub 可能不会把贡献者添加到 Contributors 中,推荐用以下 [详细的图文步骤](https://github.com/Tencent/APIJSON/blob/master/CONTRIBUTING.md#%E8%AF%A6%E7%BB%86%E7%9A%84%E5%9B%BE%E6%96%87%E6%AD%A5%E9%AA%A4%E5%8F%AF%E5%8F%82%E8%80%83%E4%BB%A5%E4%B8%8B%E4%BB%BB%E6%84%8F%E4%B8%80%E7%AF%87))
#### Fork 仓库
点击 `Fork` 按钮,将需要参与的项目仓库 Fork 到自己的 Github 中。
#### Clone 已 Fork 项目
在自己的 Github 中,找到 Fork 下来的项目,git clone 到本地。
```bash
$ git clone git@github.com:/APIJSON.git
```
#### 添加 APIJSON 仓库
将 Fork 源仓库连接到本地仓库:
```bash
$ git remote add
# 例如:
$ git remote add APIJSON git@github.com:Tencent/APIJSON.git
```
#### 保持与 APIJSON 仓库的同步
直接在 fork Repo 的首页点 Contribute > Open pull request
![image](https://user-images.githubusercontent.com/5738175/131776033-74caf279-ebbf-45f1-a9c1-beff937a87fb.png)
或者
```bash
$ git pull --rebase
# 等同于以下两条命令
$ git fetch
$ git rebase /
```
#### Commit 信息提交
Commit 信息请遵循 [Commit 消息约定](./CONTRIBUTING_COMMIT.md),以便可以自动生成 `CHANGELOG` 。具体格式请参考 Commit 文档规范。
#### 详细的图文步骤可参考以下任意一篇
GitHub - 对项目做出贡献
https://www.jianshu.com/p/00cf29d2d66c
如何在 Github 上给别人的项目贡献代码
https://git-scm.com/book/zh/v2/GitHub-%E5%AF%B9%E9%A1%B9%E7%9B%AE%E5%81%9A%E5%87%BA%E8%B4%A1%E7%8C%AE
## Issue 提交
#### 对于贡献者
在提 Issue 前请确保满足一下条件:
- 必须是一个 Bug 或者功能新增。
- 必须是 APIJSON 相关问题。
- 已经在 Issue 中搜索过,并且没有找到相似的 Issue 或者解决方案。
- 完善下面模板中的信息
如果已经满足以上条件,我们提供了 Issue 的标准模版,请按照模板填写。