为 Azure Linux 代码做贡献

Azure Linux 源存储库是公共的,并遵循标准开源拉取请求(PR)工作流。 本文介绍如何参与 Azure Linux 代码,包括如何提交 PR、修复 bug,以及如何在 Azure 方案中为 Azure Linux 添加新功能。

Important

代码贡献应面向Azure支持的方案。 Microsoft支持和生命周期承诺仅适用于:

  • Azure Linux 虚拟机 (VM) / 虚拟机规模集 (VMSS)、AKS 容器主机和容器映像。
  • 基于预构建的 Azure Linux 映像进行的自定义(例如,使用 映像自定义器)。

特定于裸机、本地部署环境、其他云,或基于GitHub 上的 Azure Linux 源代码从头构建的映像的更改,应归上游处理。 请考虑转而为上游项目或 Fedora Linux Project 贡献。 有关详细信息,请参阅如何参与 Azure Linux

Note

Azure Linux 4.0 现在位于 preview 中,严格限制为评估和测试目的。 它不适合生产用途。

开始之前

所有代码贡献都需要先提交问题单。 请勿在没有链接的维护者批准的问题的情况下打开 PR。 未经事先审批提交的 PR 可能会在未经审查的情况下关闭。

贡献最佳做法

向 Azure Linux 贡献代码时,请遵循以下最佳做法,以确保你的 PR 能够得到高效审核并顺利合并:

  • 遵循 上游优先模型。 在 Azure linux 上打开 PR 之前,请检查更改是否属于上游。
  • 在开始非普通工作之前打开问题,以便团队可以确认方向和范围。
  • 保持 PR 小而专注。 每个 PR 只包含一项逻辑变更。
    • 如果提交更改较大,请先提交问题,讨论范围和方法,然后再尝试实施完整更改。
  • 在添加新行为或修复 bug 时包括测试或验证证据。
  • 请在 PR 描述中注明相关问题以及任何相关的上游提交。
  • 只提交包含功能性更改的 PR。 避免提交仅重新设置或重新格式化代码且不更改行为的 PR。

为 Azure Linux 贡献代码:

  1. 为要完成的工作创建或查找问题等待维护者批准问题,然后再开始工作。 如果现有问题涵盖你的方案,请发表评论以指示你想要处理它。
  2. 在 GitHub 上派生该仓库
  3. (例如,main)。
  4. 进行和提交更改。 编写清晰简洁的提交消息。
  5. 测试所做的更改,并确保构建没有问题。
  6. 针对分支main。 完全填写 PR 模板,链接相关问题,并描述更改的原因和原因。
  7. 响应任何反馈。 维护人员可能会请求更改,而多个修订轮是常见的。
  8. 等待审批。 获得批准后,你的 PR 将被合并。 此步骤没有保证的时间线。

参与者许可协议(CLA)

大多数贡献要求你同意贡献者许可协议 (CLA),并声明你有权授予(并且实际上授予)我们使用你的贡献的权利。

提交 PR 时,CLA 机器人会自动确定是否需要提供 CLA 并相应地更新 PR(例如,通过添加状态检查或注释)。 如果机器人表明需要签署 CLA,请按照它提供的说明先完成 CLA 流程,然后你的 PR 才能被合并。 只需使用 Microsoft CLA 在所有存储库中执行此操作一次。

审查期间预期的情况

  • 评论是尽力而为。 维护人员在容量允许时审查贡献。 时间线可能会有所不同。
  • 不保证接受。 并非每个 PR 都会被合并。 我们可能会建议采用不同的方法,要求你先向上游项目提交,或者认定该更改超出范围。
  • 我们可能会重定向。 如果你的更改更适合上游项目或 Fedora,我们将告知你并帮助你找到正确的位置。
  • 小型 PR 移动速度更快。 具有清晰问题陈述和可重现验证的集中更改是最容易审查的。
  • 长期无更新的 PR 将被关闭。 30 天内没有活动的 PR 可能会被自动关闭。 如果要继续处理 PR,可以重新打开。

有关参与 Azure Linux 的详细信息,请参阅 如何参与 Azure Linux