参与开源项目不仅能提升项目的质量,还能为整个社区带来积极影响。本指南旨在提供清晰的指导和最佳实践,帮助开始贡献。
为了营造一个欢迎和包容的环境,所有贡献者必须遵守行为准则。尊重、友好和专业性是社区的核心价值。
非常欢迎通过Pull Request的形式贡献代码。为了使审查过程尽可能顺利,请按照以下步骤操作:
Fork
仓库:首先,将Ultralytics YOLO仓库Fork到GitHub账户。- 创建
Branch
:在Fork的仓库中,使用清晰且包含描述的名称创建一个新的Branch来反映更改。 - 进行
Change
:确保代码遵循项目的风格指南,并且不会引起新的错误或警告。 - 测试
Change
:在提交之前,本地测试更改以确保它们按预期工作,并且没有引入新的问题。 - 提交
Commit
:使用简洁且描述性的提交消息来记录更改。如果更改解决了特定问题,请在提交消息中包含问题编号。 - 创建
Pull Request
:从Fork的仓库向主仓库(Ultralytics YOLO)提交Pull Request。清晰且详细地描述更改以及它们如何改进项目。
要合并Pull Request,必须首先签署贡献者许可协议(CLA)。这是一项法律协议,确保贡献获得了适当的许可,以便项目可以继续根据AGPL-3.0许可进行分发。
提交Pull Request后,CLA机器人将指导完成签署过程。只需在PR中添加以下注释即可签署CLA:I have read the CLA Document and I sign the 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 Request在合并之前必须通过GitHub Actions持续集成(CI)测试。这些测试包括检查更改是否满足项目的质量标准,包括 linting、单元测试和其他检查。
请审查CI结果并解决出现的任何问题。
非常重视问题报告,因为它们有助于维护项目的质量。报告问题时,请提供一致的、简洁明了的代码示例,以便能够快速理解和解决。
Ultralytics使用GNU Affero通用公共许可证第3版(AGPL-3.0)作为其仓库的许可协议。这种许可鼓励软件开发的开放性、透明度和协作性改进,确保所有用户都可以自由使用、修改和共享软件。
鼓励所有贡献者熟悉AGPL-3.0许可协议的条款,以便有效地且符合道德地为Ultralytics开源社区做出贡献。
感谢对开源项目的兴趣。非常感谢对Ultralytics开源YOLO项目的参与。参与对于创造软件的未来和建立一个充满活力的创新和协作社区至关重要。
期待看到想法变为现实,并感谢致力于推进目标检测技术。让一起继续在这个激动人心的开源旅程中成长和创新。编码愉快!🚀🌟
为什么要为Ultralytics YOLO开源仓库做出贡献? 为Ultralytics YOLO开源仓库做出贡献可以改善软件,为整个社区提供更强大、更丰富的功能。贡献可能包括代码改进、错误修复、文档改进和新功能的实现。此外,通过贡献,可以与该领域的其他熟练开发人员和专家合作,提高自己的技能和声誉。有关如何开始的详细信息,请参考“通过Pull Request贡献”部分。
如何签署Ultralytics YOLO的贡献者许可协议(CLA)?
要签署贡献者许可协议(CLA),请在提交Pull Request后按照CLA机器人提供的指南操作。这个过程确保了贡献获得了适当的许可,以便根据AGPL-3.0许可维护开源项目的法律完整性。在Pull Request中添加以下注释:I have read the CLA Document and I sign the CLA
。有关详细信息,请参考“CLA签署”部分。
Google风格文档字符串是什么,为什么需要为Ultralytics YOLO贡献? Google风格文档字符串为函数和类提供了清晰、简洁的文档,提高了代码的可读性和可维护性。这些文档字符串简要描述了函数的目的、参数和返回值,并遵循特定的格式规则。当为Ultralytics YOLO做出贡献时,遵循Google风格的文档字符串可以确保内容得到良好的文档化,并且容易被理解。有关示例和指南,请参阅“Google风格文档字符串”部分。
如何使更改通过GitHub Actions CI测试? 要合并Pull Request,必须首先通过所有GitHub Actions持续集成(CI)测试。这些测试包括linting、单元测试和代码是否满足项目质量标准的其他检查。审查CI结果并修复问题。有关CI过程和解决问题的提示的详细信息,