开发

如果您正在阅读本文,那么您一定已经为Odoo的代码库做出不少贡献,或者十分有兴趣了解如何贡献Odoo。无论您出于何种目的,能偶然来到这里,我们都将为您提供所需的信息!

当您准备好了,欢迎阅读 环境设置 部分,开始您的Odoo开发贡献之旅。

环境设置

以下说明将帮助您准备好环境,以便在本地修改代码库并将其推送到 GitHub。如果您已完成此步骤,请跳过本节,转到 做出您的第一个贡献。

  1. 首先,您需要 创建一个 GitHub 账户。Odoo 使用 GitHub 管理其产品的源代码,您将在这里进行更改并提交以供审核。

  2. 生成新的 SSH 密钥并将其注册到您的 GitHub 账户。

  3. 访问 github.com/odoo/odoo,点击右上角的 Fork 按钮,在您的账户中创建该仓库的分叉(您自己的副本)。如果您有权访问 github.com/odoo/enterprise,请对其执行相同的操作。这样会创建代码库的一个副本,您可以对其进行更改而不影响主代码库。如果您在 Odoo 工作,请跳过此步骤。

  4. 安装 Git。它是一款命令行(文本界面)工具,可以跟踪对文件所做更改的历史记录,更重要的是,可以同时处理该文件的不同版本。这意味着您在进行更改时,不必担心覆盖其他人尚未完成的工作。

    验证 Git 的安装目录是否已包含在系统的 PATH 变量中。

    参照 在 Linux 和 macOS 上更新 PATH 变量的指南,使用 Git 的安装路径(默认为 /usr/bin/git)。

  5. 配置 Git,以便在您未来的贡献中将您标识为作者。请输入您注册 GitHub 时使用的同一个电子邮件地址。

    $ git config --global user.name "Your Name"
    $ git config --global user.email "youremail@example.com"
    
  6. 从源代码安装 Odoo。请确保通过 Git 使用 SSH 获取源代码。

  7. 配置 Git 将更改推送到您的分叉仓库,而不是主代码库。如果您在 Odoo 工作,请配置 Git 将更改推送到在 odoo-dev 账户上创建的共享分叉仓库。

    在下面的命令中,将 <your_github_account> 替换为您创建分叉仓库所用的 GitHub 账户名称。

    $ cd /CommunityPath
    $ git remote add dev git@github.com:<your_github_account>/odoo.git
    

    如果您有权访问 odoo/enterprise,请同时配置相关的远程仓库。

    $ cd /EnterprisePath
    $ git remote add dev git@github.com:<your_github_account>/enterprise.git
    
  8. 大功告成!您已准备好 进行首次贡献。

做出您的第一个贡献

Important

  • 对初学者而言,Odoo 开发可能颇具挑战。我们建议你在贡献之前先具备编写一个小型模块的能力。如果目前还做不到,请花些时间学习 开发者教程 以补齐差距。

  • 本指南的某些步骤需要您熟悉 Git。如果您在某些环节遇到困难,可以参考这些 教程 和这个 互动式培训。

环境设置完成后,您就可以开始为代码库做贡献了。在终端中,进入您从源代码安装 Odoo 的目录,并按照下面的指南操作。

  1. 选择您希望进行更改的 Odoo 版本。请注意,针对 不受支持的 Odoo 版本 的贡献不会被接受。本指南假设更改针对 Odoo 16,对应分支 16.0。

  2. 从分支 16.0 开始创建新分支。用基础分支为分支名称添加前缀:16.0-...。如果您在 Odoo 工作,用您的 Odoo 账号为分支名称添加后缀:16.0-...-xyz。

    Example

    $ git switch -c 16.0-fix-invoices
    
    $ git switch -c 16.0-fix-invoices-xyz
    
  3. 如尚未完成,请 签署 Odoo CLA。如果您在 Odoo 工作,请跳过此步骤。

  4. 对代码库进行所需的更改。处理代码库时,请遵循以下规则:

    • 让您的更改保持聚焦且具体。最好一次只处理一个特定的功能或 Bug 修复,而不是同时处理多个不相关的更改。

    • 在 master 之外的其他分支上工作时,请遵守 稳定政策。

    • 遵循 编码规范。

    • 彻底测试您的更改,并 编写测试,以确保一切按预期工作,且没有回归或意外影响。

  5. 提交您的更改。按照 Git 规范 中的说明编写清晰的提交信息。

    $ git add .
    $ git commit
    
  6. 将更改推送到您的分叉仓库,我们已为其添加远程别名 dev。

    Example

    $ git push -u dev 16.0-fix-invoices-xyz
    
  7. 在 GitHub 上发起 PR(拉取请求),提交您的更改以供审核。

    1. 根据您的更改所针对的代码库,访问 odoo/odoo 代码库的比较页面 或 odoo/enterprise 代码库的比较页面。

    2. 选择 16.0 作为基础分支。

    3. 点击 compare across forks。

    4. 为 head repository 选择 <your_github_account>/odoo 或 <your_github_account>/enterprise。将 <your_github_account> 替换为您创建分叉的 GitHub 账户名称;如果您在 Odoo 工作,则替换为 odoo-dev。

    5. 检查您的更改,然后点击 Create pull request 按钮。

    6. 勾选 Allow edits from maintainer 复选框。如果您在 Odoo 工作,请跳过此步骤。

    7. 填写描述,然后再次点击 Create pull request 按钮。

  8. 在页面底部,检查可合并状态并解决任何问题。

  9. 一旦你的 PR(拉取请求) 可以合并,Odoo 团队的成员就会被自动指派进行审查。如果审查者有疑问或意见,会以评论的形式提出,你会收到邮件通知。必须解决这些评论,贡献才能继续推进。

  10. 更改获得批准后,审核人员会将其合并,这些更改将在下一次代码更新后对所有 Odoo 用户可用!