.. _development-make-contribute: ================== 如何贡献代码 ================== .. _Ricequant: https://www.ricequant.com/algorithms .. _RQAlpha Github: https://github.com/ricequant/rqalpha .. _master 分支: https://github.com/ricequant/rqalpha .. _develop 分支: https://github.com/ricequant/rqalpha/tree/develop .. _How to Contribute to an Open Source Project on GitHub: https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github RQAlpha 是一个持续更新和维护的项目,它支持 `Ricequant`_ 平台的策略回测、实盘交易,因此合并代码是一件非常严谨的事情,这并不意味着我们不希望接受来自开源社区的贡献,反之,我们更愿意拥抱开源,加快产品的迭代、功能的完善、问题的修复。如果您愿意加入进来,共同维护和开发 RQAlpha,请阅读以下文档,希望以下内容可以解答您的疑惑,给您带来帮助。 RQAlpha 所有的开发工作都将会在 `RQAlpha Github`_ 上进行,无论是 团队成员还是个人贡献者都需要以同样的方式进行代码提交。 .. _development-make-contribute-branch-management: 分支管理 -------------------------- `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 分支`_ 创建新的分支,分支命名需要遵循 :ref:`development-make-contribute-branch-management` 中的命名规则。 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 获取。