如何选择一个开源项目来做出贡献?
为开源社区和项目做贡献,即使对经验丰富的开发者来说也可能令人望而生畏,更不用说新手了。作为一名早期开发者,我遇到的主要问题之一就是如何找到既符合我的兴趣,又能锻炼我所学技能的项目。
弄清楚了这一点之后,我在这里帮助初学者了解在确定要从事哪个开源项目时需要考虑什么。
确定你的目标
首先,你应该坐下来,列出你希望通过为开源项目做贡献而实现的目标。如果你的目标中有一些比较模糊,那就坐下来,细细琢磨,直到它们清晰可行。你的目标越明确,就越容易判断你是否能够实现它们。
请注意,不要将此视为一场比赛或竞赛,并且仅仅因为其他人正在做这件事,或者你听说过很多关于这件事的事情,或者除了所涉及的网络和学习之外还想从中获得一些好处或好处而想要做出贡献。
此外,不要以为这些技能一定是技术技能,事实上,开源远不止于此。你可以运用各种技能为开源做出贡献,从文档编写到图形设计,从质量保证和测试,再到项目管理。
当您计划为可能的开源项目做出贡献时,请考虑以下一些问题:
- 我拥有哪些技能可以为项目做出贡献?
- 我希望为项目带来什么技能?
- 我的爱好/兴趣是什么?
- 我准备为一个项目投入多少时间?
当我决定要参与一个开源项目时,我知道我想提升我的前端技能,并在 React 或 Vue 应用程序上构建新功能。因此,我在 MLH 奖学金期间选择了 React Native 和 Adobe Docs 作为我的项目。
要了解有关我在 MLH 奖学金项目的经历的更多信息,请阅读此文。
寻找潜在项目
寻找潜在项目其实并不难,你只需要坚持寻找,或者学会在正确的地方寻找。以下是一些寻找有趣项目的好地方:
使用技术
-
待搜索- 您可以按名称、标签或标记搜索项目。标记可以是项目使用的语言。
-
Good First Issues - 您可以按语言浏览
-
仅限初学者- 初学者资源汇编
-
适合初学者的绝佳选择- 适合初学者的项目集合,根据编程语言排序。
参与开源项目
参与开源项目是熟悉开源社区和项目的最简单、最快捷的方法。
以下是一些最适合初学者的开源程序 -
按兴趣
您还可以根据自己的兴趣搜索项目。最简单的方法是先确定您的兴趣所在,然后在互联网(或 GitHub)上搜索与您兴趣相关的开源项目。您偶尔可能会遇到一些致力于开源项目的特定兴趣小组,例如Django Girls、Women Who Code等。
一旦你整理出一份可以通过贡献助力的潜在项目清单,就可以开始缩小选择范围了。优秀的潜在项目通常符合上述目标,并具备以下特点:
- 免费的开源许可证
- 持续发展的指标(确保它不会长时间处于不活动状态)
- 贡献者活动指南(在 GitHub 存储库中查找贡献指南、行为准则、wiki 等)。
让我们更详细地讨论这些特征,以便更深入地了解在这些潜在项目中寻找什么,从而找到最合适的项目。
了解开源许可证
开源许可证常常被忽视,但它却是任何开源项目的重要组成部分,因为它规定了你在开源项目中可以做什么和不可以做什么。在你开始为一个潜在项目做贡献之前,务必查看它所使用的许可证(如果有)。
虽然开源许可证有很多种类型可供选择,但主要有两类:Copyleft和Permissive。任何从事这些许可项目的人都必须能够在这两种许可证下阅读、修改和共享源代码。然而,这两种许可证在用户对作品的使用权限以及衍生作品是否应遵循与原作品相同的条款或不同的条款方面有所不同。
版权左派许可证:版权左派许可证禁止衍生作品被重新授权给更严格的许可证。例如,GNU 公共许可证 (GPL)、GNU 宽通用公共许可证 (LGPL) 和 Mozilla 公共许可证。
宽容型许可证:宽容型许可证允许衍生作品的创作者更改其许可证。它还允许创作者将根据宽容型许可证发布的作品合并到专有作品中,而衍生作品仍保留专有性。
宽容型许可证并不强制衍生作品的创作者必须遵循免费或开源许可证来提供衍生作品。Apache 许可证和 MIT 许可证是两种流行的宽容型许可证。
在此处阅读有关开源许可证的更多信息。
确定积极发展的迹象
接下来,查看您可能的项目的历史记录,看看它是否仍然活跃,包括讨论和开发活动。
计算活动水平时需要考虑的一些问题如下:
- 提出问题的人能得到答案吗?
- 该项目是否欢迎现有的贡献者?
- 项目参与者的语气如何(即,他们是否愉快,或者沟通是否显得冷淡和紧张?)
贡献者指南
最后,了解一下你提议的项目目前是否有针对贡献者的指导方针。这不是必需的,但它可以帮助你判断项目在设计时是否考虑到了其他贡献者,并且可以帮助你判断你的第一次贡献是否会顺利进行,或者过程中是否会遇到一些小问题。
以下是一些可以帮助您入门的问题:
- 有没有关于如何启动该项目的信息?(查找自述文件或 wiki)
- 您是否可以开始帮助解决任何问题?(寻找未解决的问题)
结论
基于上述指标对项目进行评估和分析后,就该对潜在项目进行优先级排序了。将项目范围缩小到几个最终入围项目后,您可以通过为每个项目选择一个问题并生成拉取请求来测试它们。
为了确保您做出有意义且有效的贡献,您可以参考这篇有关开源最佳实践的文章。
我希望这些建议能让你更好地理解在开源项目中应该关注哪些方面。这些问题并非一成不变;你可以经常参考它们,以确定你是否在朝着目标前进的正确轨道上。
这就是我在开源之旅中学到的全部。我希望以上提到的实践能够帮助你更接近下一次(有效的)开源贡献,并帮助你抓住机会,一次一个提交地回馈社区!
如果您觉得本文有见地,请在评论区留言。此外,我们也欢迎您提供任何反馈。如果您想联系我,请点击以下链接:
LinkedIn | GitHub | Twitter | Medium
鏂囩珷鏉ユ簮锛�https://dev.to/pragativerma18/how-to-pick-an-open-source-project-to-contribute-to-4kak