开源项目贡献指南

开源项目中,贡献不仅能提高代码库的质量,还能惠及整个社区。本指南提供了清晰的指导和最佳实践,旨在帮助开始为Ultralytics YOLO等开源项目做出贡献。

目录

行为准则博客

通过拉取请求贡献

签署CLA

Google风格的文档字符串

GitHub Actions CI测试

报告错误

许可

结论

常见问题

行为准则博客

为确保为每个人提供健康和包容的环境,所有贡献者必须遵守行为准则。尊重、友善和专业是社区的基石。

通过拉取请求贡献

非常重视以拉取请求形式的贡献。为使审查过程尽可能顺利,请遵循以下步骤:

Fork仓库:首先,将Ultralytics YOLO仓库Fork到GitHub账户。

创建分支:在Fork仓库中创建一个新分支,名称应清晰反映所做的更改。

进行更改:确保代码遵循项目的风格指南,并且没有引入任何新的错误或警告。

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

提交更改:用简洁明了的提交消息记录更改。如果更改涉及特定问题,请在提交消息中包含问题编号。

创建拉取请求:从Fork仓库向主Ultralytics YOLO仓库发送拉取请求。提供对所做的更改以及它们如何改进项目的清晰详细的说明。

签署CLA

在能够合并拉取请求之前,需要签署贡献者许可协议(CLA)。此法律协议确保贡献正确许可,允许项目在AGPL-3.0许可下继续分发。

在发送拉取请求后,CLA机器人将指导完成签署过程。要签署CLA,只需在拉取请求中添加一条注释,声明:

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

Google风格的文档字符串

当添加新函数或类别时,请包括Google风格的文档字符串。这些文档字符串提供清晰、统一的文档,帮助其他开发人员理解代码并维护它。

例如:

def example_function(arg1, arg2=4): """ Example function demonstrating Google-style docstrings. Args: arg1 (int): The first argument. arg2 (int): The second argument, with a default value of 4. Returns: bool: True if successful, False otherwise. Examples: >>> result = example_function(1, 2) # returns False """ if arg1 == arg2: return True return False

GitHub Actions CI测试

所有拉取请求必须通过GitHub Actions的持续集成(CI)测试,然后才能合并。这些测试包括代码格式化、单元测试等,以确保更改符合项目的质量标准。

请查看CI输出并解决任何出现的问题。

报告错误

非常重视错误报告,因为它们帮助维护项目的质量。报告任何错误时,请提供可重复的最小示例,这是一个简单明了的代码示例,可以持续重现问题。

这使能够快速确定并解决问题。

许可

Ultralytics使用GNU Affero Public License 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仓库中的错误?

要报告错误,请提供清晰、简洁的可重复最小示例与错误报告一起。这有助于开发人员快速确定并解决问题。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485