发展

如果您正在阅读本文,您很可能有兴趣学习如何为 Odoo 代码库做出贡献。无论是这种情况还是您偶然降落在这里,我们都会为您提供保障!

当您准备好后,请跳至 环境设置 部分,开始您为 Odoo 开发做出贡献的旅程。

环境设置

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

  1. 首先,您需要 create a GitHub account。 Odoo uses GitHub to manage the source code of its products, and this is where you will make your changes and submit them for review.

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

  3. 转到 github.com/odoo/odoo 并单击右上角的 Fork 按钮,在您的帐户上创建存储库的分叉 (your own copy)。如果您有权访问 github.com/odoo/enterprise,请对其执行相同的操作。这将创建代码库的副本,您可以对其进行更改,而不会影响主代码库。如果您在 Odoo 工作,请跳过此步骤。

  4. Install Git。它是一个命令行 (a text interface) 工具,允许跟踪文件更改的历史记录,更重要的是,可以同时处理该文件的不同版本。这意味着您在进行更改时无需担心覆盖其他人的待处理工作。

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

    guide to update the PATH variable on Linux and macOS 后面是 Git 的安装路径(默认为 /usr/bin/git)。

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

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

  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. 就是这样!您已准备好:ref:make your first contribution <contributing/development/first-contribution>

做出你的第一个贡献

重要

  • Odoo 开发对于初学者来说可能具有挑战性。我们建议您在贡献之前具备足够的知识来编写一个小模块。如果不是这种情况,请花一些时间浏览 developer tutorials 来填补空白。

  • 本指南的某些步骤需要熟悉 Git。如果您在某个时刻遇到困难,这里有一些 tutorialsinteractive training

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

  1. 选择您想要更改的 Odoo 版本。请记住,不接受针对 unsupported version of Odoo 的贡献。本指南假设更改目标为 Odoo 19,它对应于分支 19.0

  2. 从分支 19.0 开始创建一个新分支。在分支名称前加上基本分支的前缀:19.0-...。如果您在 Odoo 工作,请在分支名称后加上您的 Odoo 句柄:19.0-...-xyz

    Example

    $ git switch -c 19.0-fix-invoices
    
    $ git switch -c 19.0-fix-invoices-xyz
    
  3. `Sign the Odoo CLA <https://github.com/odoo/odoo/blob/19.0/doc/cla/sign-cla.md>`_(如果尚未完成)。如果您在 Odoo 工作,请跳过此步骤。

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

    • 让您的更改保持重点和具体。最好一次致力于一项特定功能或错误修复,而不是同时处理多个不相关的更改。

    • master 以外的其他分支机构工作时,请尊重 stable policy

    • 按照 coding guidelines 进行操作。

    • 彻底测试您的更改并:doc:write tests </developer/reference/backend/testing>,以确保一切按预期工作,并且不会出现倒退或意外后果。

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

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

    Example

    $ git push -u dev 19.0-fix-invoices-xyz
    
  7. 在 GitHub 上打开 PR 以提交您的更改以供审核。

    1. 转到 compare page of the odoo/odoo codebasecompare page of the odoo/enterprise codebase,具体取决于您的更改目标的代码库。

    2. 选择 19.0 作为基数。

    3. 单击:guilabel:compare across forks

    4. 选择 <your_github_account>/odoo<your_github_account>/enterprise 作为头存储库。将 <your_github_account> 替换为您创建 fork 的 GitHub 帐户的名称,或者如果您在 Odoo 工作,则将其替换为 odoo-dev

    5. 检查您的更改并单击 Create pull request 按钮。

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

    7. 完成描述并再次单击 Create pull request 按钮。

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

  9. 一旦您的 PR 准备好合并,Odoo 团队的成员就会自动分配进行审核。如果审稿人有问题或意见,他们会将其作为评论发布,并且您将收到电子邮件通知。这些意见必须得到解决,贡献才能继续进行。

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