开发

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

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

环境设置

以下说明将帮助您准备您的环境以进行对代码库的更改,并推送它们到GitHub。如果您已经完成此步骤,请跳转到 做出您的第一个贡献 部分。

  1. 首先,你需要 创建一个GitHub账户 。Odoo使用GitHub来管理其产品的源代码,这是您将进行更改并提交给审核的场所。

  2. 生成一个新的 SSH 密钥并注册到你的 GitHub 账户

  3. 转到 github.com/odoo/odoo 并在右上角点击 Fork 按钮以创建一个 fork (您自己的副本) 仓库。转到 github.com/odoo/enterprise 如果已经有访问权限。这会创建一个代码库的副本,您可以在此处进行更改,而不会影响主代码库。如果您是Odoo的worker,请跳过此步骤。

  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. 大功告成!您已准备好 进行首次贡献。

做出您的第一个贡献

重要

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

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

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

  1. 选择你想要修改的 Odoo 版本。请记住,针对 不受支持的 Odoo 版本 的贡献不会被接受。本指南假设修改针对 Odoo 20,对应分支 20.0。

  2. 从 20.0 分支创建一个新分支。在分支名前加上基础分支前缀:20.0-...。如果你在 Odoo 工作,请在分支名后加上你的 Odoo 用户名后缀:20.0-...-xyz。

    示例

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

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

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

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

    • 遵循 编码规范。

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

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

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

    示例

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

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

    2. 为基础分支选择 20.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 用户可用!