敬请关注 YOLO Vision 2025!
2025年9月25日
英国夏令时 10:00 - 18:00
混合活动
Yolo Vision 2024

为 Ultralytics 开源项目做出贡献的技巧

Abirami Vina

4 分钟阅读

2024年8月28日

了解如何为 Ultralytics 开源项目做出贡献,并探索与文档、审查 PR 和使用基本工具相关的最佳技巧。

开源软件的基础是协作、学习和分享。开源项目是人们聚集在一起构建比自身更伟大事物的好方法。在Ultralytics,我们牢记开源原则,并始终鼓励您为我们的开源项目做出贡献。 

如果您很高兴能够通过编写文档、审查代码或解决问题来做出贡献,但不确定从哪里开始或遇到一些问题,我们将在这里帮助您入门。在本文中,我们将引导您完成一些开始为 Ultralytics 开源项目做出贡献的技巧。让我们直接开始吧!

Ultralytics 社区贡献的重要性

在了解如何贡献之前,让我们回答为什么贡献如此重要。我们坚信Ultralytics社区贡献的重要性。通过参与我们的开源项目,您不仅仅是帮助我们构建更好的软件。贡献者在确保我们的技术保持开放、协作和不断发展方面发挥着关键作用。您的贡献使我们的项目保持蓬勃发展,易于访问,并有益于世界各地的用户和开发人员!

除了创建尖端软件之外,为 Ultralytics 项目做贡献也是您成长的绝佳机会。您可以与经验丰富的开发人员一起工作,他们可以提供指导并分享最佳实践,从而培养您的编码、解决问题和团队合作技能。您的努力可以对全球成千上万的人使用的工具产生真正的影响。与我们的社区互动还可以帮助您扩展您的专业网络,开辟新的机会,并增强您的投资组合,使您在雇主面前脱颖而出。

图 1. 贡献的理由。图片由作者提供。

如何开始使用 Ultralytics 开源贡献

一个好的起点是查看 Ultralytics 官方贡献指南。其中包含大量最佳实践和技巧,可帮助你充分利用你的贡献。第一步是熟悉项目的现有内容,理解贡献指南并深入研究代码。 

无论您是希望为开发做出贡献,还是只想探索最新的代码,下一步都是克隆Ultralytics存储库。完成此操作后,您可以转到项目目录并以可编辑模式安装软件包,如下面的代码片段所示。

如果您需要帮助,我们的快速入门指南包含您顺利入门所需的一切。

不同的贡献领域

设置好环境并熟悉项目后,你可以探索可以产生有意义影响的不同领域。Ultralytics 提供了多种参与方式,你可以根据自己的技能和兴趣选择贡献方式。 

以下是一些选项:

  • 文档:贡献文档是在磨练写作技巧的同时深入了解项目的好方法。您可以通过改进现有文档、添加缺失的细节或创建新的指南来帮助其他人更轻松地做出贡献。
  • Bug修复:如果您有一些编码经验,请考虑进行Bug修复。这些修复可能小到细微的调整,大到更复杂的问题,让您有机会对项目产生切实的影响。
  • 功能增强:对于那些准备好深入研究的人来说,致力于功能增强既具有挑战性,又具有回报。这可能涉及添加新功能、改进现有功能或参与项目路线图的制定。
  • Pull request审查:审查pull request是另一种有价值的贡献方式,特别是如果您熟悉项目的标准和最佳实践。通过提供反馈和建议改进,您可以帮助维护代码库的质量和完整性。
  • 社区讨论:如果您喜欢协作和分享想法,参与社区讨论是一个极好的贡献方式。参与正在进行的对话,提出新的想法,或者通过提供您的见解和解决方案来帮助他人。

这些领域都提供了独特的贡献方式,您可以选择最符合您的优势和兴趣的领域。请记住,每一份贡献,无论多么微小,都在帮助 Ultralytics 成长和发展方面发挥着关键作用。

图 2. 每一份贡献在我们不断壮大的社区中都备受重视。图片来源:Envato Elements。

为 Ultralytics 开源文档做贡献

在为 Ultralytics 文档做出贡献时,请务必查看现有文档,并检查是否存在任何突出显示需要改进的区域的问题或讨论。这样做有助于确保您的贡献集中在最需要的地方。 

在编写或编辑时,请记住遵循项目指南以保持一致性是关键。以下是一些格式提示:

  • 始终使用 Markdown 格式
  • 以清晰的介绍开始每个文档,并保持语言简单易懂。
  • 列表使用项目符号,链接使用描述性文本,图片小于 1 MB 以加快页面加载速度。
  • 如果您对格式有疑问,一个简单的检查格式的方法是查看以前的文档是如何格式化的。
图 3. Markdown 格式示例(左)和最终可视化文档(右)。图片由作者提供。

完成草稿后,务必通过在本地构建文档来预览它。你可以在提交之前发现任何问题。为此,首先克隆存储库并导航到项目目录:

接下来,您可以安装必要的依赖项:

最后,在本地启动文档服务以查看您的更改:

您可以通过在 Web 浏览器中导航到 `http://127.0.0.1:8000/` 来查看本地构建的文档。 

在审查清晰度、准确性和一致性之后,您可以提交一个pull request,并清楚地描述您创建的文档。请务必根据文档的归属和最适合的位置(指南解决方案集成等)将其放置在适当的部分。另请查看相关部分的index.md文件和整体mkdocs.yml文件,并根据需要进行任何更新。注重细节将有助于审查过程顺利进行,并确保您的贡献能够很好地融入到项目中。

向开源代码贡献时需要记住的事项

在为 Ultralytics 项目贡献代码时,务必遵循有助于确保您的代码干净、可维护且易于集成的最佳实践。以下是一些需要牢记的关键点:

  • 避免代码重复: 尽可能重用现有代码,并尽量减少不必要的参数。
  • 进行更小、更集中的更改: 专注于更小、更有针对性的更改,而不是大的修改。
  • 简化或删除代码:寻找简化代码或删除不必要部分的机会。
  • 编写有效的文档字符串:清楚地解释您的代码的作用并链接到相关资源。
  • 避免不必要的依赖: 仅在绝对必要时才添加依赖项。
图 4. 源代码文档的最佳实践。

同样重要的是要考虑代码库的长期可维护性。在进行任何更改之前,请先问问自己,您的修改是否会破坏其他人使用 Ultralytics 的现有代码。如果是这样,请考虑如何解决这个问题,并确保您的更改尽可能兼容。

一旦你开发出想要贡献的代码,就需要对其进行测试。你可以使用诸如 pytest 之类的框架,在提交之前测试你的更改。一致的代码格式是贡献的另一个非常重要的方面。诸如 Ruff Formatter 之类的工具可以帮助你保持风格一致性,并检测代码中的任何逻辑错误或不一致之处。 

审查拉取请求

审查拉取请求 (PR) 是一种很好的贡献方式!当有人请求将其更改合并到主项目中时,就会提出 PR。它有助于 Ultralytics 项目平稳运行。在审查 PR 时,请确保您了解进行更改的原因。作者应清楚地解释更新的目的和好处,并且您应该在其 PR 中看到彻底测试的证据。 

图 5. 什么是 Pull Request?

让我们来看看几个需要关注的关键事项。

  • 检查单元测试: 检查 PR 是否包含针对新功能或更改的测试,以确认代码按预期工作并且没有引入问题。
  • 检查文档更新:确认文档已更新,以反映变更或新功能,包括示例、API 参考和其他相关详细信息。
  • 评估性能影响:考虑更改如何影响性能。如果需要,请求性能基准或额外的测试。
  • 验证 CI 测试: 确保所有 持续集成 (CI) 测试都通过,包括代码格式检查和单元测试结果。
  • 协作修复:如果任何测试失败,请与作者合作解决问题,然后再批准 PR。

作为审阅者,请务必提供具体而清晰的反馈,说明任何问题或疑虑。提供改进建议并提出问题,以帮助作者思考潜在的问题。鼓励他们遵循编码、测试和文档方面的最佳实践,并且不要犹豫地向他们指出可以提供帮助的资源。最后但并非最不重要的一点是,始终认可作者为 PR 所做的努力。积极的反馈有助于在开源社区中维持友好和协作的氛围。

贡献在于社区

为像 Ultralytics 这样的开源项目做贡献,能给你带来一种鼓舞人心的社区感。无论是编写代码、审查 PR、更新文档,还是参与讨论,每一份努力都有助于项目的成长和发展。在 GitHubDiscordSubreddit 或其他论坛上回答问题或参与对话,都是一种有价值的贡献方式,并能与他人建立联系。请记住,你的贡献,无论多么微小,都会产生重大影响,并有助于为所有参与者营造一个协作和支持性的环境!

在 Ultralytics,我们热衷于推动开源社区的创新。通过访问我们的 GitHub 存储库,及时了解我们的最新进展。加入 我们充满活力的社区,了解我们如何在 农业制造业 等行业中产生影响。

让我们一起构建人工智能的未来!

开启您的机器学习未来之旅

免费开始
链接已复制到剪贴板