跳至内容

为Ultralytics Open SourceYOLO Repositors 供稿

首先,感谢您对Ultralytics 开放源码YOLO 资源库的贡献!您的贡献将有助于改进项目并造福社区。本文档为您提供了入门指南和最佳实践。

目录

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

行为准则

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

通过拉动请求做出贡献

我们欢迎拉取请求形式的贡献。为使审核过程更加顺利,请遵循以下指南:

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

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

  3. 进行修改:修改您想贡献的内容。确保您的修改遵循项目的编码风格,并且不会引入新的错误或警告。

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

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

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

CLA 签署

在我们接受您的拉取请求之前,您需要签署一份《贡献者许可协议》(CLA)。这是一份法律文件,表明您同意向Ultralytics YOLO 资源库贡献的条款。CLA 可确保您的贡献获得正确的许可,并确保项目能继续在AGPL-3.0 许可下发布。

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

I have read the CLA Document and I sign the CLA

谷歌风格的文档字符串

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

文档字符串示例

本例显示了两种 Google 风格的文档strings。请注意,输入和输出 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 风格的 docstrings 以及参数和返回类型提示,尽管这两种提示都不是必需的,但其中一种可以在不使用另一种的情况下使用。

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

较小或较简单的函数可以使用单行 docstring。请注意,文档字符串必须使用 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 项目的贡献。您的参与对于塑造我们软件的未来和培养创新与合作社区至关重要。无论是改进代码、报告错误还是提出功能建议,您的贡献都会产生重大影响。

我们渴望看到您的想法付诸实践,并感谢您致力于推动物体检测技术的发展。让我们在这个激动人心的开源之旅中继续共同成长和创新。编码快乐!🚀🌟



创建于 2023-11-12,更新于 2024-03-08
作者:glenn-jocher(4)

评论