如何贡献代码

RQAlpha 是一个持续更新和维护的项目,它支持 Ricequant 平台的策略回测、实盘交易,因此合并代码是一件非常严谨的事情,这并不意味着我们不希望接受来自开源社区的贡献,反之,我们更愿意拥抱开源,加快产品的迭代、功能的完善、问题的修复。如果您愿意加入进来,共同维护和开发 RQAlpha,请阅读以下文档,希望以下内容可以解答您的疑惑,给您带来帮助。

RQAlpha 所有的开发工作都将会在 RQAlpha Github 上进行,无论是 团队成员还是个人贡献者都需要以同样的方式进行代码提交。

分支管理

master 分支 为最新稳定版本,只有团队成员在发布新版本时才会将充分测试的 develop 分支 合并到 master 分支 中。

develop 分支 为最新开发版本,提交代码需要保证通过所有的测试。

如果是修复bug,需要额外创建 bug/xxx 分支来进行代码提交,测试通过后提交 pull request 并等待 team member 的 merge check.

如果是增加feature, 需要额外创建 feature/xxx 分支来进行代码提交,并完善文档和测试脚本,测试通过后提交 pull request 并等待 team member 的 merge check.

Bugs

如果您在使用的过程中发现了Bug, 请通过 https://github.com/ricequant/rqalpha/issues 来提交并描述相关的问题,您也可以在这里查看其它的issue,通过解决这些issue来贡献代码。

Pull Request

如果您是第一次通过 Pull Request 提交代码, 您可以参考 How to Contribute to an Open Source Project on GitHub 来了解 Contribute Workflow.

我们会认真审核您的 Pull Request, 并给出如下三种回应:

  • Merge Pull Request : 合并您的代码进入 develop 分支

  • Pending : 如果发现有一些地方还需要完善,我们会给出具体的完善建议,并等待您的进一步提交。

  • Won’t Merge : 如果发现您的 Pull Request 不适合合并,我们会给出具体的解释,并关闭相应的issue。

Contribute Workflow

在提交 Pull Request 前,请确保您是按照如下流程进行代码的开发和测试的:

  1. Fork RQAlpha Github

  2. 基于 develop 分支 创建新的分支,分支命名需要遵循 分支管理 中的命名规则。

  3. 如果您修改了代码,请保证通过测试。

  4. 如果您修改了API, 请保证文档也同时更新。

  5. 如果您增加了新的功能,请保证增加测试代码,

Development Workflow

To Be Continued

Style Guide

PEP8

License

版权所有 2019 深圳米筐科技有限公司(下称“米筐科技”)

除非遵守当前许可,否则不得使用本软件。

    * 非商业用途(非商业用途指个人出于非商业目的使用本软件,或者高校、研究所等非营利机构出于教育、科研等目的使用本软件):
        遵守 Apache License 2.0(下称“Apache 2.0 许可”),您可以在以下位置获得 Apache 2.0 许可的副本:
        http://www.apache.org/licenses/LICENSE-2.0。
        除非法律有要求或以书面形式达成协议,否则本软件分发时需保持当前许可“原样”不变,且不得附加任何条件。

    * 商业用途(商业用途指个人出于任何商业目的使用本软件,或者法人或其他组织出于任何目的使用本软件):
        未经米筐科技授权,任何个人不得出于任何商业目的使用本软件(包括但不限于向第三方提供、销售、出租、出借、转让本软件、本软件的衍生产品、引用或借鉴了本软件功能或源代码的产品或服务),任何法人或其他组织不得出于任何目的使用本软件,否则米筐科技有权追究相应的知识产权侵权责任。
        在此前提下,对本软件的使用同样需要遵守 Apache 2.0 许可,Apache 2.0 许可与本许可冲突之处,以本许可为准。
        详细的授权流程,请联系 public@ricequant.com 获取。