Skip to content

Contribution Guidelines for Developers

Gary Wang edited this page Jul 25, 2022 · 10 revisions

开发者代码贡献指南

欢迎!无论你是想要实现新的特性贡献给整个社区,还是想贡献简单的 Patch ,甚至只是想修改文档中的错别字,我们都非常欢迎并感谢您的帮助。

许可协议和行为准则

开源许可协议

每个项目均有附带其对应的许可协议,在您开始着手代码贡献之前请确保您理解并同意对应的许可协议。若未另外声明,则您的代码将使用与对应项目相同的许可协议进行授权。

如果您对此有疑问,请邮件咨询 [email protected]

行为准则

健康的社区需要大家共同创造,在此我们使用 Contributor Covenant 2.1 贡献者行为准则,请大家一同遵守。

获取代码

目前 deepin 开源项目的所有源代码均可在 GitHub 获取,故您只需要找到对应的项目,然后通过 git clone 或你喜欢的方式获取代码即可。

由于 deepin 的各个项目的 master 分支均是开发分支,某个应用程序的 master 分支状态可能会依赖其他也同时处于 master 分支状态的版本。因此,直接获取 master 分支的代码在很多情况下并不总是保证能够编译通过。故当您从 git 仓库获取版本时,建议您在必要时先 git checkout 切换到对应您所需要的 tag 上,再尝试构建。

项目的对应 README.md 文档通常会有构建项目等相关的步骤描述,请参阅这些文档以帮助您构建项目。

提交补丁或 Pull Request(拉取请求)

我们接受 GitHub Pull Request ,开发提交的合并均通过 Pull Request 进行,你可以直接点击对应项目的 Fork 按钮得到你自己的 Fork,在其上方进行提交,并在修改完毕后直接通过 GitHub 网页发起 Pull Request 即可。对于 Pull Request 的介绍和使用方式,可以参阅 GitHub 帮助文档中的 “关于拉取请求” 部分

得益于 GitHub 所提供的代码 Review 和自动化工具,我们可以更方便的进行代码评审并根据自动构建来更及时的发现代码中存在的问题,故我们建议您优先考虑使用 Pull Request 进行代码贡献。当然,如果您不希望使用 GitHub Pull Request 或因为一些原因无法使用它,您依然可以通过提供 patch 或 diff 文件/代码片段等方式贡献代码,您可以以任何我们看得到的方式提交您的 patch 给我们。

代码贡献指南

确保代码可以被接受

我们很乐意帮助合并社区贡献者的代码,但并非所有类型的贡献都能够被并入,故在开始贡献代码前,请确保您的变更是可以被接受的。

缺陷修复(bug fix)或拼写更正(fix typo)

我们可以接受缺陷修复(bug fix)或拼写更正 (fix typo) 类的问题修补,故您无需顾虑您的代码在符合下方准则的情况下是否可以并入。

新特性(feature)或重构(refactor)

deepin 同时存在开源社区版本和面向企业等实体的专业版本,我们的主要功能特性的开发并非由社区驱动,故如果您希望对某个模块进行重构或增加额外的支持(如插件),或是希望实现新的特性并希望您的新特性合并进来,请先考虑在对应的项目仓库发起一个新的 Issue 描述您的特性/实现目标,然后与我们讨论相关的细节来确保您的功能能够接纳并合并到我们的主线代码中。

如果您希望增加的特性在最终的讨论后还是无法被接受,也请希望您理解。如果您希望的话,您可以创建并维护您自己的衍生版 (fork) 来使用,也欢迎您将您的派生版本分享给社区用户,或和有相同需求的社区用户一同维护对应的社区仓库。

翻译(translation)与本地化(l10n)

我们的多国语言翻译流程并不通过此流程进行,如果您希望修正(非英语的)本地化翻译问题,或是增加新的本地化语言支持等相关内容,请移步 Transifex 平台。

若您希望修正英语原文中存在的问题,请参见上述的 拼写更正(fix typo) 相关的描述。

注意事项

在确保您的修改可以被接受后,您就可以编写您的补丁并通过上述段落中提到的方式提交您的补丁 / Pull Request 了。在您着手准备您的补丁时,请留意下方的注意事项。

  1. 代码风格
    请您在开始前优先查看项目内有没有单独的代码风格规范文档,如果没有,请按照项目本身的代码风格编写新的代码。您可以到分类页面寻找相关文档。
  2. Commit 信息规范
    请参考 Commit 提交信息规范
  3. 一个 Pull Request 只做一件事
    您可能会希望对某个项目做一系列的改动,但为了保证代码的提交信息的有序,也为了保证代码审核方便有序,请保证您的一个 Pull Request 只做一件事,对于不同的修改内容,请提交多个不同的 Pull Request 来做。

寻求帮助

如果阅读上方的内容后依然有疑问,或是在任何步骤中遇到了问题,都可以直接在下方给出的位置提问。

  • 您所涉及问题对应的 GitHub 代码仓库的 Discussion 面板:在对应代码仓库的讨论面板中进行相关的讨论。(注:若对应仓库未开启 Discussion 面板,可 Issue 或其它途径告知我们开启)
  • 开发者中心:若您不清楚您所涉及的问题对应到了哪个/哪些仓库,您可以在这里发起讨论。

若有其它需求或必要情况下,您也可以通过其它方式与我们取得联系。

Happy Hacking!

Clone this wiki locally