为Ultralytics Open SourceYOLO Repositors 供稿
首先,感谢您对Ultralytics 开放源码YOLO 资源库的贡献!您的贡献将有助于改进项目并造福社区。本文档为您提供了入门指南和最佳实践。
目录
行为准则
所有投稿人都应遵守《行为准则》,以确保为每个人营造一个欢迎和包容的环境。
通过拉动请求做出贡献
我们欢迎拉取请求形式的贡献。为使审核过程更加顺利,请遵循以下指南:
-
分叉仓库:将Ultralytics YOLO 仓库分叉到你自己的 GitHub 账户。
-
创建分支:在你的分叉版本库中创建一个新分支,并为你的改动起一个描述性的名字。
-
进行修改:修改您想贡献的内容。确保您的修改遵循项目的编码风格,并且不会引入新的错误或警告。
-
测试您的更改:在本地测试您的更改,以确保它们能按预期运行,并且不会引入新的问题。
-
提交您的更改:用描述性的提交信息提交您的更改。确保在提交信息中包含任何相关的问题编号。
-
创建拉取请求:从您的分叉仓库向Ultralytics YOLO 主仓库创建拉取请求。在拉取请求描述中,清楚地解释你的改动以及它们如何改进了项目。
CLA 签署
在我们接受您的拉取请求之前,您需要签署一份《贡献者许可协议》(CLA)。这是一份法律文件,表明您同意向Ultralytics YOLO 资源库贡献的条款。CLA 可确保您的贡献获得正确的许可,并确保项目能继续在AGPL-3.0 许可下发布。
要签署 CLA,请在提交 PR 后按照 CLA 机器人提供的说明操作,并在 PR 中添加注释:
谷歌风格的文档字符串
添加新函数或类时,请包含Google 风格的文档字符串,以便为其他开发人员提供简洁明了的文档。这将有助于确保您的贡献易于理解和维护。
文档字符串示例
本例显示了两种 Google 风格的文档strings。请注意,输入和输出 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 风格的 docstrings 以及参数和返回类型提示,尽管这两种提示都不是必需的,但其中一种可以在不使用另一种的情况下使用。
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 项目的贡献。您的参与对于塑造我们软件的未来和培养创新与合作社区至关重要。无论是改进代码、报告错误还是提出功能建议,您的贡献都会产生重大影响。
我们渴望看到您的想法付诸实践,并感谢您致力于推动物体检测技术的发展。让我们在这个激动人心的开源之旅中继续共同成长和创新。编码快乐!🚀🌟