Skip to content

为Ultralytics开源项目做出贡献

欢迎!我们非常高兴您考虑为我们的Ultralytics 开源项目做出贡献。您的参与不仅有助于提升我们仓库的质量,也对整个社区有益。本指南提供了清晰的指南和最佳实践,帮助您开始。

Ultralytics开源贡献者

目录

  1. 行为准则
  2. 通过拉取请求贡献
  3. 报告错误
  4. 许可证
  5. 结论
  6. 常见问题

行为准则

为了确保一个对所有人都友好和包容的环境,所有贡献者必须遵守我们的行为准则。尊重、友善和专业是我们社区的核心。

通过拉取请求贡献

我们非常感谢以拉取请求形式做出的贡献。为了使审查过程尽可能顺利,请遵循以下步骤:

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

  2. 创建分支 在您分叉的仓库中创建一个新分支,分支名称应清晰、描述性地反映您的更改。

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

  4. 测试您的更改 在提交之前,在本地测试您的更改,确认它们按预期工作并且不会引起任何新问题。

  5. 提交更改 提交更改时,使用简洁且描述性的提交信息。如果您的更改解决了特定问题,请在提交信息中包含问题编号。

  6. 创建拉取请求 从您的分叉仓库向Ultralytics YOLO主仓库提交拉取请求。提供清晰详细的更改说明,以及它们如何改进项目的解释。

签署CLA

在我们合并您的拉取请求之前,您必须签署我们的贡献者许可协议(CLA)。这一法律协议确保您的贡献得到适当许可,使项目能够继续在AGPL-3.0许可证下分发。

提交拉取请求后,CLA机器人将指导您完成签署过程。要签署CLA,只需在您的PR中添加一条评论,声明:

我已阅读CLA文档并签署CLA

Google风格文档字符串

在添加新函数或类时,请包含Google风格的文档字符串。这些文档字符串提供了清晰、标准化的文档,帮助其他开发者理解和维护您的代码。

文档字符串示例

此示例展示了Google风格的文档字符串。确保输入和输出的类型始终用括号括起来,例如(bool)

def example_function(arg1, arg2=4):
    """
    示例函数展示Google风格的文档字符串。

    参数:
        arg1 (int): 第一个参数。
        arg2 (int): 第二个参数,默认值为4。

    返回:
        (bool): 成功时为True,否则为False。

    示例:
        >>> result = example_function(1, 2)  # 返回False
    """
    if arg1 == arg2:
        return True
    return False

这个示例同时包含了Google风格的文档字符串和参数及返回值的类型提示,尽管单独使用其中任何一个也是可接受的。

def example_function(arg1: int, arg2: int = 4) -> bool:
    """
    示例函数,展示Google风格的文档字符串。

    参数:
        arg1: 第一个参数。
        arg2: 第二个参数,默认值为4。

    返回:
        如果成功则为True,否则为False。

    示例:
        >>> result = example_function(1, 2)  # 返回False
    """
    if arg1 == arg2:
        return True
    return False

对于较小或较简单的函数,单行文档字符串可能就足够了。文档字符串必须使用三个双引号,是一个完整的句子,首字母大写,并以句号结尾。

def example_small_function(arg1: int, arg2: int = 4) -> bool:
    """带有单行文档字符串的示例函数。"""
    return arg1 == arg2

GitHub Actions CI测试

所有拉取请求必须在合并之前通过GitHub Actions的持续集成(CI)测试。这些测试包括代码检查、单元测试和其他检查,以确保您的更改符合项目的质量标准。请查看CI输出并解决出现的任何问题。

报告错误

我们非常重视错误报告,因为它们帮助我们维护项目的质量。在报告错误时,请提供一个最小可复现示例——一个简单、清晰的代码示例,能够一致地重现问题。这使我们能够快速识别和解决问题。

许可证

Ultralytics使用GNU Affero通用公共许可证v3.0(AGPL-3.0)作为其仓库的许可证。该许可证促进了软件开发的开放性、透明性和协作改进。它确保所有用户都有自由使用、修改和分享软件的权利,培养了一个强大的协作和创新社区。

我们鼓励所有贡献者熟悉AGPL-3.0许可证的条款,以便有效地和道德地为Ultralytics开源社区做出贡献。

结论

感谢您对Ultralytics 开源 YOLO项目的贡献感兴趣。您的参与对于塑造我们软件的未来和建立一个充满活力的创新与协作社区至关重要。无论您是在改进代码、报告错误还是提出新功能,您的贡献都是无价的。

我们很高兴看到您的想法变为现实,并感谢您对推进目标检测技术的承诺。让我们一起继续在这个令人兴奋的开源旅程中成长和创新。祝您编码愉快!🚀🌟

常见问题

我为什么要为Ultralytics YOLO开源仓库做出贡献?

为Ultralytics YOLO开源仓库做出贡献可以改进软件,使其对整个社区更加健壮和功能丰富。贡献可以包括代码增强、错误修复、文档改进和新功能的实现。此外,贡献使您能够与其他领域内的熟练开发者和专家合作,提升您自己的技能和声誉。有关如何开始的详细信息,请参阅通过拉取请求贡献部分。

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

要签署贡献者许可协议(CLA),请在提交拉取请求后按照CLA机器人提供的说明操作。此过程确保您的贡献在AGPL-3.0许可证下得到适当许可,维护开源项目的法律完整性。在您的拉取请求中添加以下评论:

我已阅读CLA文档并签署CLA。

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

什么是Google风格的文档字符串,为什么Ultralytics YOLO的贡献需要它们?

Google风格的文档字符串为函数和类提供了清晰、简洁的文档,提高了代码的可读性和可维护性。这些文档字符串概述了函数的目的、参数和返回值,并遵循特定的格式规则。在为Ultralytics YOLO做出贡献时,遵循Google风格的文档字符串确保您的添加内容得到良好记录且易于理解。有关示例和指南,请访问Google风格文档字符串部分。

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

在您的拉取请求被合并之前,它必须通过所有GitHub Actions持续集成(CI)测试。这些测试包括代码检查、单元测试和其他检查,以确保代码符合项目的质量标准。请查看CI输出并修复任何问题。有关CI过程和故障排除提示的详细信息,请参阅GitHub Actions CI测试部分。

如何在Ultralytics YOLO仓库中报告错误?

要报告错误,请提供一个清晰简洁的最小可复现示例以及您的错误报告。这有助于开发人员快速识别和修复问题。确保您的示例尽可能简单,但足以复现问题。有关报告错误的更多详细步骤,请参阅报告错误部分。


📅 Created 11 months ago ✏️ Updated 20 days ago

Comments