跳至内容

为Ultralytics Open SourceYOLO Repositors 供稿

感谢您有兴趣为 Ultralytics 开源 YOLO 存储 库!您的贡献将增强项目并造福整个社区。本文档提供了帮助您入门的指南和最佳实践。

目录

  1. 行为准则
  2. 通过拉动请求做出贡献
  3. 报告错误
  4. 许可证
  5. 结论

行为准则

所有投稿人都必须遵守《行为准则》,以确保为每个人营造一个欢迎和包容的环境。

通过拉动请求做出贡献

我们欢迎以拉取请求的形式做出贡献。为了简化审核流程,请遵循以下准则:

  1. 分叉仓库:将Ultralytics YOLO 仓库分叉到您的 GitHub 账户。

  2. 创建分支:在你的分叉版本库中创建一个新分支,并为你的改动起一个描述性的名字。

  3. 进行修改:确保您的更改符合项目的编码风格,并且不会引入新的错误或警告。

  4. 测试您的更改:在本地测试您的更改,以确保它们按预期运行,并且不会引入新的问题。

  5. 提交您的更改:用描述性的提交信息提交您的更改。在提交信息中包含任何相关的问题编号。

  6. 创建拉取请求:从您的分叉仓库向Ultralytics YOLO 主仓库创建拉取请求。清楚地解释你的改动以及它们如何改进了项目。

CLA 签署

在我们接受您的拉取请求之前,您必须签署一份《贡献者许可协议》(CLA)。这份法律文件可确保您的贡献获得正确的许可,并确保项目能继续在AGPL-3.0 许可下发布。

要签署 CLA,请在提交 PR 后按照 CLA 机器人提供的说明操作,并在 PR 中添加注释:

I have read the CLA Document and I sign the CLA

Google-文档字符串风格

添加新函数或类时,请包含Google 样式的 docstring,以便为其他开发人员提供简洁明了的文档。这有助于确保您的贡献易于理解和维护。

文档字符串示例

本例显示了Google 样式的 docstring。请注意,输入和输出 types 必须始终用括号括起来,即 (bool).

def example_function(arg1, arg2=4):
    """
    Example function that demonstrates Google-style docstrings.

    Args:
        arg1 (int): The first argument.
        arg2 (int): The second argument. Default value is 4.

    Returns:
        (bool): True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

本例同时显示了Google 样式的 docstring 以及参数和返回类型提示,但二者都不是必需的;可以只使用其中一个,而不使用另一个。

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    Example function that demonstrates Google-style docstrings.

    Args:
        arg1: The first argument.
        arg2: The second argument. Default value is 4.

    Returns:
        True if successful, False otherwise.

    Examples:
        >>> result = example_function(1, 2)  # returns False
    """
    if arg1 == arg2:
        return True
    return False

较小或更简单的函数可以使用单行文档字符串。请注意,文档字符串必须使用 3 个双引号,并且是以大写字母开头并以句点结尾的完整句子。

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """Example function that demonstrates a single-line docstring."""
    return arg1 == arg2

GitHub 操作 CI 测试

在合并您的拉取请求之前,必须通过所有 GitHub ActionsContinuous Integration(CI) 测试。这些测试包括内衬、单元测试和其他检查,以确保您的变更符合项目的质量标准。查看 GitHub 行动的输出并修复任何问题。

报告错误

我们非常重视错误报告,因为它们在保持项目质量方面发挥着至关重要的作用。在报告错误时,提供最小可重现示例(Minimum Reproducible Example)非常重要:一个可以重现问题的简洁明了的代码示例。这有助于快速识别和解决错误。

许可证

Ultralytics 该软件库采用GNU Affero General Public License v3.0 (AGPL-3.0),以促进软件开发的开放性、透明度和协作性。这种强有力的版权许可确保所有用户和开发人员都能自由使用、修改和共享软件。它促进了社区协作,确保所有人都能获得任何改进。

我们鼓励用户和开发人员熟悉AGPL-3.0 的条款,以有效和合乎道德地为Ultralytics 开放源码社区做出贡献。

结论

感谢您对Ultralytics 开放源码 YOLO 项目的贡献。您的参与对于塑造我们软件的未来和培养创新与合作社区至关重要。无论是改进代码、报告错误还是提出功能建议,您的贡献都会产生重大影响。

我们期待看到您的想法付诸实践,并感谢您对推进目标检测技术的承诺。让我们在这个激动人心的开源之旅中继续成长和创新。祝您编码愉快!🚀🌟

常见问题

为什么要向Ultralytics YOLO 开放源码软件源库投稿?

向Ultralytics YOLO 开放源代码库投稿有助于改进软件,使整个社区的软件更加强大、功能更加丰富。贡献可以包括代码增强、错误修复、文档改进和新功能实现。此外,贡献还提供了与该领域其他技术熟练的开发人员和专家合作的机会,从而提高自己的技能和声誉。有关如何开始的信息,请参阅 "通过 Pull Requests投稿 "部分。

如何签署Ultralytics YOLO 的《贡献者许可协议》(CLA)?

要签署《贡献者许可协议》(CLA),请在提交拉取请求后按照 CLA 机器人提供的说明进行操作。这将确保您的贡献在AGPL-3.0 许可下得到正确授权,从而维护开源项目的法律完整性。在您的拉取请求中添加评论:

I have read the CLA Document and I sign the CLA

更多信息,请参阅CLA 签名部分。

什么是Google-style docstrings,为什么Ultralytics YOLO 投稿时需要使用它们?

Google-样式的文档说明为函数和类提供了简洁明了的文档,提高了代码的可读性和可维护性。这些文档以特定的格式规则概述了函数的目的、参数和返回值。在向Ultralytics YOLO 投稿时,遵守Google 样式的文档说明可确保您添加的内容易于理解且文档详尽。有关示例和指南,请访问Google-style docstrings部分。

如何确保我的更改通过 GitHub Actions CI 测试?

在您的拉取请求被合并之前,它必须通过所有 GitHub Actions Continuous Integration (CI) 测试。这些测试包括内衬、单元测试和其他检查,以确保代码符合项目的质量标准。审查 GitHub 行动的输出并解决任何问题。有关 CI 流程和故障排除技巧的详细信息,请参阅GitHub Actions CI 测试部分。

如何报告Ultralytics YOLO 版本库中的错误?

要报告错误,请在报告错误的同时提供一个简洁明了的 "最小可重现示例"。这有助于开发人员快速识别并修复问题。确保您的示例是最小的,但足以复制问题。有关报告错误的更多详细步骤,请参阅报告错误部分。



创建于 2023-11-12,更新于 2024-07-04
作者:glenn-jocher(8),UltralyticsAssistant(1)

评论