开源最佳实践

2025-06-07

开源最佳实践

开源一直以来都是学习、协作、贡献和构建新事物的绝佳平台。作为众多开源社区、活动和组织的参与者,我意识到人们正在慢慢地、稳步地认识到开源作为未来科技的潜力。然而,他们常常对开源项目和社区的工作流程感到困惑,最终犯下一些错误,导致贡献质量不高,最终陷入代码审查和代码修改的循环中,无法为项目做出有意义或有效的贡献。

注意:只有当您熟悉基本的 git 术语并了解使用 git 和 GitHub 的初始工作流程时,本文才会有所帮助。

点击此处了解更多信息:如何为开源做出贡献

以下是一些您可以在下次贡献中采用的最佳实践!

文化与交流

开源社区汇聚了来自不同社会背景、民族、种族、宗教和语言的人们。因此,与大家共事的最佳方式就是运用同理心。

  • 在讨论中始终确保你的语气保持友好和尊重。
  • 尝试使您的语言适应非英语母语人士,因为他们有时可能会发现环境具有挑战性或令人生畏。
  • 保持谦逊。我们并非无所不知,我们都在学习。有些开发人员可能在一些非常基础的问题上需要帮助,请保持友善,并尽可能伸出援助之手。

远程工作文化.jpg

  • 尽量自学,花时间探索代码库,并在公开频道提问或提交问题之前尝试理解所有内容。即使遇到任何问题,也请随时向其他开发者提问。同样,请尊重这个空间以及其他人提出的问题。
  • 保持友善热情。如果你的开发者同事和贡献者工作出色,请对他们表示感谢。在讨论中说“请”“谢谢” ,以表达礼貌和慷慨。

表情符号

沟通渠道

大多数开源社区都有自己的私人或公共沟通渠道,如 Slack、Discord、Gitter 等,因为聊天是与其他贡献者和维护者联系的好方法。

讨论

为了有效地使用这些渠道,贡献者应该尝试遵循以下几点:

  • 除非非常必要,否则不要切换到与维护者或其他贡献者的私人交流,因为这会将可能面临相同问题的其他贡献者拒之门外,他们可以通过阅读之前的对话立即获得帮助。
  • 不要通过聊天讨论功能请求和错误报告,因为它们最好通过 GitHub 或问题跟踪器来处理。

功能请求和错误报告

功能请求和错误报告最好通过 GitHub 处理,但必须遵循某些步骤才能建设性地使用它们:

68747470733a2f2f68656c702e6769746875622e636f6d2f6173736574732f696d616765732f68656c702f6973737565732f6e65772d69737375652d706167652d776974682d6d756c7469706c652d74656d706c617465732e706e67.png

  • 对于任何错误或功能,无论大小,请打开一个包含所有必要细节的问题,并且不要忘记表明您是否有兴趣解决它。
  • 提交问题时,请尽量包含所有相关信息,以便其他人轻松理解。请包含链接、需要更改的代码信息以及必要的屏幕截图。
  • 将大的功能请求分解为较小的问题,以便多个贡献者可以同时处理它。
  • 在提交错误报告时,请务必记住添加重现所报告错误的步骤。

大多数开源项目都使用问题模板来提交功能请求和错误报告。这些模板可以作为提交问题时应提及的详细信息的参考。

问题模板

细节

发展

一旦你决定了想要贡献的开源项目,第一步就是在本地机器上设置并运行该项目。这些步骤通常在README.md文件中定义。下一步是浏览该项目的分支政策和贡献指南,这些内容可以在CONTRIBUTING.md文件中找到。完成后,你就可以开始对项目进行修改了。

设置

即使在开发过程中,如果您有任何疑问或遇到任何挑战,请随时向维护人员或其他贡献者提问。(您可以使用沟通渠道或通过 GitHub 进行交流。)

提交和拉取请求

大多数首次贡献者对于提交 PR 都犹豫不决或心存恐惧,不过,没有必要害怕,只需在提交 PR 时牢记以下几点,即可快速获得代码审查和反馈:

  • 撰写有意义的提交信息,传达已完成的变更。例如:

提交消息

  • 确保对每个变更使用最少数量的提交。如果某个小修复有大量提交,请在提交 PR 之前压缩它们。

壁球

链接 PR

  • 从您自己的分支创建 PR(即使您拥有 repo 的权利,也不要创建新的分支,而是在您自己的分支上进行开发)。
  • 请说明 PR 中实际完成的改进或变更,而非仅仅提及Fixes #1。如果项目有 PR 模板,请参阅模板以获取需要提及的详细信息。
  • 如果您对 UI 做了任何更改,请记得添加截图或视频。这将大大加快审核速度。

演示

  • 帮助审阅者解决任何合并冲突。点击此处了解更多关于合并冲突的信息。

合并冲突

文档

开源中的一切都是通过文字交流来实现的。因此,文档是提供您贡献相关信息的关键步骤。

文档是软件开发每个步骤中持续进行的努力。

  • 通过注释将有关新技术、框架、库和代码的信息添加到代码本身中,并添加到文档文件(例如README.md/docs文件夹)中。
  • 始终帮助保持文档更新并使新的贡献者能够轻松加入项目。

最后但同样重要的是,开源是许多不同优先级的人之间的合作,有时,你必须等待合适的时机。参与项目的其他人可能与你有着截然不同的生活,他们的优先级可能与你不一致。工作项目、假期和家庭是一些最常见的可能导致你的需求无法得到回应的事情,耐心是应对这种情况的最佳方式。伟大的事情值得等待,所以不要介意拖延。

这就是我在开源之旅中学到的全部。我希望以上提到的实践能够帮助你更接近下一次(有效的)开源贡献,并帮助你抓住机会,一次一个提交地回馈社区!

如果您觉得本文有见地,请在评论区留言。此外,我们也欢迎您提供任何反馈。如果您想联系我,请点击以下链接:

LinkedIn | GitHub | Twitter | StackOverflow

文章来源:https://dev.to/pragativerma18/open-source-best-practices-902
PREV
解锁性能:Django 异步支持指南
NEXT
我是如何创建我的投资组合的:从思考过程到部署。规划和设计项目结构优化部署💖欢迎在评论中分享您的投资组合和任何其他有用的资源。