开发

如果您正在阅读这篇文章,很可能是因为您有兴趣学习如何为Odoo的代码库做出贡献。无论是这种情况还是您偶然来到这里,我们都会为您提供帮助!

当你感觉准备好了,跳转到 环境设置 部分开始你的贡献Odoo开发的旅程。

环境设置

下面的说明帮助您准备环境以便对代码库进行本地更改,然后将其推送到GitHub。如果您已经完成了这一步骤,请跳过本节并转到: 进行你的第一次贡献

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

  2. Generate a new SSH key and register it on your GitHub account.

  3. 转到 github.com/odoo/odoo 并点击右上角的 Fork 按钮来创建一个分支 (你自己的副本) 到你的账户上的仓库。如果你有权限,也可以对 github.com/odoo/enterprise 进行同样的操作。这将创建一个代码库的副本,你可以在其中进行更改而不影响主要代码库。如果你在 Odoo 工作,请跳过此步骤。

  4. Install Git. It is a command-line (a text interface) tool that allows tracking the history of changes made to a file and, more importantly, working on different versions of that file simultaneously. It means you do not need to worry about overwriting someone else’s pending work when making changes.

    请确认 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。确保通过SSH使用Git获取源代码。

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

    在下面的命令中,将 <your_github_account> 替换为您创建 fork 的 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 development can be challenging for beginners. We recommend you to be knowledgeable enough to code a small module before contributing. If that is not the case, take some time to go through the developer tutorials to fill in the gaps.

  • 一些步骤需要熟悉 Git。如果你在某个地方卡住了,这里有一些 教程 和一个 交互式训练

现在您的环境已经设置好,您可以开始为代码库做出贡献。在终端中,导航到您从源代码安装Odoo的目录,并按照下面的指南操作。

  1. Choose the version of Odoo to which you want to make changes. Keep in mind that contributions targeting an unsupported version of Odoo are not accepted. This guide assumes that the changes target Odoo 18, which corresponds to branch 18.0.

  2. Create a new branch starting from branch 18.0. Prefix the branch name with the base branch: 18.0-.... If you work at Odoo, suffix the branch name with your Odoo handle: 18.0-...-xyz.

    Example

    $ git switch -c 18.0-fix-invoices
    
    $ git switch -c 18.0-fix-invoices-xyz
    
  3. Sign the Odoo CLA if not already done. Skip this step if you work at Odoo.

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

    • 保持你的修改专注和具体。最好一次只处理一个特定的功能或错误修复,而不是同时处理多个不相关的修改。

    • 遵守 stable policy 在除了 master 分支之外的其他分支上工作。

    • 遵循 编码准则.

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

  5. 提交您的更改。按照 Git指南 中的说明编写清晰的提交消息。

    $ git add .
    $ git commit
    
  6. 将您的更改推送到您的分支,我们为其添加了远程别名 dev

    Example

    $ git push -u dev 18.0-fix-invoices-xyz
    
  7. 在 GitHub 上打开一个 PR 来提交你的更改以供审查。

    1. 前往 odoo/odoo 代码库的比较页面,或者 odoo/enterprise 代码库的比较页面,取决于你的更改目标是哪个代码库。

    2. Select 18.0 for the base.

    3. 点击 compare across forks.

    4. 选择 <your_github_account>/odoo<your_github_account>/enterprise 作为主仓库。将 <your_github_account> 替换为您在 GitHub 上创建 fork 的账户名,或者如果您在 Odoo 工作,则替换为 odoo-dev

    5. 审核您的更改并单击 创建拉取请求 按钮。

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

    7. 完成描述并再次点击 创建拉取请求 按钮。

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

  9. As soon as your PR is ready for merging, a member of the Odoo team is automatically assigned for review. If the reviewer has questions or remarks, they will post them as comments and you will be notified by email. Those comments must be resolved for the contribution to go forward.

  10. 一旦您的更改得到批准,审核将合并它们,然后在下一次代码更新后,它们将对所有Odoo用户可用!