非常高兴对参与Ultralytics YOLO开源项目感兴趣。参与不仅能提高代码库的质量,还能惠及整个社区。本指南将为提供清晰的指导和最佳实践,帮助开始贡献。
为了确保一个对所有人友好和包容的环境,所有贡献者必须遵守代码行为准则
。尊重、友善和专业是社区的核心价值。
非常欢迎以Pull Requests的形式提交的贡献。为了使审查过程尽可能顺利,请按照以下步骤操作:
首先,fork
Ultralytics YOLO仓库到GitHub账户。然后,在forked仓库中创建一个清晰且描述性的新分支,以反映更改。确保代码遵循项目的风格指南,并且不引入新的错误或警告。在提交更改之前,请在本地测试以确认它们按预期工作,并且不会引起新的问题。使用简洁明了的提交消息来验证更改。如果更改涉及特定问题,请在提交消息中包含问题编号。最后,从forked仓库向Ultralytics YOLO主仓库提交Pull Requests,并提供更改的清晰详细说明以及它们如何改善项目。
在能够合并Pull Requests之前,必须签署贡献者许可协议(CLA)
。这个法律协议确保贡献正确授权,允许项目继续在AGPL-3.0许可下分发。提交Pull Requests后,CLA机器人将指导完成签署过程。要签署CLA,只需在PR中添加一条评论,声明:“已经阅读了CLA文档,签署CLA”。
当添加新功能或新类时,必须包括Google风格的文档字符串
。这些文档字符串提供了清晰且标准化的文档,帮助其他开发人员理解和维护代码。
def example_function(arg1: int, arg2: int = 4) -> bool:
"""
Example function demonstrating Google-style docstrings.
Args:
arg1: The first argument.
arg2: The second argument, with a default value of 4.
Returns:
True if successful, False otherwise.
Examples:
>>> result = example_function(1, 2) # returns False
"""
if arg1 == arg2:
return True
return False
所有Pull Requests在能够合并之前都必须通过GitHub Actions的持续集成(CI)测试。这些测试包括linting、单元测试和其他检查,以确保更改符合项目的质量标准。检查持续集成的结果,并解决可能出现的问题。
非常重视问题报告,因为它们帮助维护项目的质量。当报告问题时,必须提供一个可复现的最小示例——一个简单且清晰的代码示例,能够一致地复现问题。这使能够快速识别和解决问题。
Ultralytics使用GNU Affero通用公共许可证第3版(AGPL-3.0)
为其仓库授权。这个许可促进了软件开发中的开放性、透明度和协作改进。它确保所有用户都有自由使用、修改和共享软件,这促进了一个强大的协作和创新社区。鼓励所有贡献者熟悉AGPL-3.0的条款,以便有效且道德地为Ultralytics开源社区做出贡献。
感谢对Ultralytics YOLO开源项目的兴趣。参与对于塑造软件的未来和构建一个充满活力的创新和协作社区至关重要。无论是改进代码、报告问题还是建议新功能,贡献都是无价的。很高兴看到想法变为现实,并感谢致力于推进目标检测技术。让一起继续在这个激动人心的开源旅程中成长和创新。编码愉快!🚀🌟
为什么应该为Ultralytics YOLO的开源仓库做出贡献?
为UltralyticsYOLO的开源仓库做出贡献可以帮助改进软件,使其对整个社区更加健壮和功能丰富。贡献可以包括代码改进、错误修复、文档改进和新功能的实现。此外,贡献使能够与其他熟练的开发人员和领域专家合作,这将提高自己的技能和声誉。有关如何开始的更多详细信息,请参考“通过Pull Requests贡献”部分。
如何为Ultralytics YOLO签署贡献者许可协议(CLA)?
要签署贡献者许可协议(CLA),请按照提交Pull Requests后CLA机器人提供的说明进行操作。这个过程确保贡献根据AGPL-3.0许可正确授权,从而维护开源项目的法律完整性。在Pull Requests中添加一条评论,明确表示:“已经阅读了CLA文档,签署CLA”。有关更多信息,请参见“签署CLA”部分。
什么是Google风格的文档字符串,为什么对Ultralytics YOLO的贡献需要它?
Google风格的文档字符串为函数和类提供了清晰、简洁的文档,从而提高了代码的可读性和可维护性。这些文档字符串描述了函数的目的、其参数和返回值,并遵循特定的格式化规则。当为UltralyticsYOLO做出贡献时,遵循Google风格的文档字符串确保添加被很好地记录并且容易被理解。有关示例和指导,请访问“Google风格文档字符串”部分。
如何确保更改通过GitHub Actions CI测试?
在Pull Requests能够合并之前,它必须通过GitHub Actions的持续集成(CI)测试。这些测试包括linting、单元测试和其他检查,以确保代码符合项目的质量标准。检查代码审查的结果,并解决可能出现的问题。有关CI流程和故障排除提示的详细信息,请参见“GitHub Actions CI测试”部分。