开发

如果您正在阅读本文,很可能您对如何为 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 )添加到 PATH 变量中。

  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 18,对应分支为 18.0

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

    Example

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

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

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

    • 在非 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. 选择 18.0 作为基础版本。

    3. 点击 跨分支比较

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

    5. 检查您的更改并点击 创建拉取请求 按钮。

    6. 勾选 允许维护者编辑 复选框。如果您在 Odoo 工作,请跳过此步骤。

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

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

  9. 一旦您的 PR(拉取请求) 准备好合并,Odoo 团队的一名成员会自动分配进行审核。如果审核人员有任何问题或意见,他们会以评论的形式发布,您将通过电子邮件收到通知。这些评论必须解决,以便贡献能够继续推进。

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