为Ultralytics Open SourceYOLO Repositors 供稿
感谢您有兴趣为 Ultralytics 开源 YOLO 存储 库!您的贡献将增强项目并造福整个社区。本文档提供了帮助您入门的指南和最佳实践。
目录
行为准则
所有投稿人都必须遵守《行为准则》,以确保为每个人营造一个欢迎和包容的环境。
通过拉动请求做出贡献
我们欢迎以拉取请求的形式做出贡献。为了简化审核流程,请遵循以下准则:
-
分叉仓库:将Ultralytics YOLO 仓库分叉到您的 GitHub 账户。
-
创建分支:在你的分叉版本库中创建一个新分支,并为你的改动起一个描述性的名字。
-
进行修改:确保您的更改符合项目的编码风格,并且不会引入新的错误或警告。
-
测试您的更改:在本地测试您的更改,以确保它们按预期运行,并且不会引入新的问题。
-
提交您的更改:用描述性的提交信息提交您的更改。在提交信息中包含任何相关的问题编号。
-
创建拉取请求:从您的分叉仓库向Ultralytics YOLO 主仓库创建拉取请求。清楚地解释你的改动以及它们如何改进了项目。
CLA 签署
在我们接受您的拉取请求之前,您必须签署一份《贡献者许可协议》(CLA)。这份法律文件可确保您的贡献获得正确的许可,并确保项目能继续在AGPL-3.0 许可下发布。
要签署 CLA,请在提交 PR 后按照 CLA 机器人提供的说明操作,并在 PR 中添加注释:
Google-文档字符串风格
添加新函数或类时,请包含Google 样式的 docstring,以便为其他开发人员提供简洁明了的文档。这有助于确保您的贡献易于理解和维护。
文档字符串示例
本例显示了Google 样式的 docstring。请注意,输入和输出 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 样式的 docstring 以及参数和返回类型提示,但二者都不是必需的;可以只使用其中一个,而不使用另一个。
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
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 项目的贡献。您的参与对于塑造我们软件的未来和培养创新与合作社区至关重要。无论是改进代码、报告错误还是提出功能建议,您的贡献都会产生重大影响。
我们期待看到您的想法付诸实践,并感谢您对推进目标检测技术的承诺。让我们在这个激动人心的开源之旅中继续成长和创新。祝您编码愉快!🚀🌟
常见问题
为什么要向Ultralytics YOLO 开放源码软件源库投稿?
向Ultralytics YOLO 开放源代码库投稿有助于改进软件,使整个社区的软件更加强大、功能更加丰富。贡献可以包括代码增强、错误修复、文档改进和新功能实现。此外,贡献还提供了与该领域其他技术熟练的开发人员和专家合作的机会,从而提高自己的技能和声誉。有关如何开始的信息,请参阅 "通过 Pull Requests投稿 "部分。
如何签署Ultralytics YOLO 的《贡献者许可协议》(CLA)?
要签署《贡献者许可协议》(CLA),请在提交拉取请求后按照 CLA 机器人提供的说明进行操作。这将确保您的贡献在AGPL-3.0 许可下得到正确授权,从而维护开源项目的法律完整性。在您的拉取请求中添加评论:
更多信息,请参阅CLA 签名部分。
什么是Google-style docstrings,为什么Ultralytics YOLO 投稿时需要使用它们?
Google-样式的文档说明为函数和类提供了简洁明了的文档,提高了代码的可读性和可维护性。这些文档以特定的格式规则概述了函数的目的、参数和返回值。在向Ultralytics YOLO 投稿时,遵守Google 样式的文档说明可确保您添加的内容易于理解且文档详尽。有关示例和指南,请访问Google-style docstrings部分。
如何确保我的更改通过 GitHub Actions CI 测试?
在您的拉取请求被合并之前,它必须通过所有 GitHub Actions Continuous Integration (CI) 测试。这些测试包括内衬、单元测试和其他检查,以确保代码符合项目的质量标准。审查 GitHub 行动的输出并解决任何问题。有关 CI 流程和故障排除技巧的详细信息,请参阅GitHub Actions CI 测试部分。
如何报告Ultralytics YOLO 版本库中的错误?
要报告错误,请在报告错误的同时提供一个简洁明了的 "最小可重现示例"。这有助于开发人员快速识别并修复问题。确保您的示例是最小的,但足以复制问题。有关报告错误的更多详细步骤,请参阅报告错误部分。