如何维护开源软件项目

介绍

无论您是发布给公众使用和贡献的项目的创始人,还是您在团队中工作并维护项目的一个特定方面,您将为更大的开发者社区提供重要服务。

虽然开源(通过提取请求)(https://andsky.com/tech/tutorials/how-to-create-a-pull-request-on-github)的开发者社区对确保软件对最终用户尽可能有用至关重要,但维护者对塑造整个项目产生了真正的影响。

作为开源项目的领导者,您将承担技术和非技术责任,以帮助培养您项目周围的用户群和社区。

写有用的文档

全面、有组织、服务于项目的预期社区的文档将有助于扩展您的用户群,随着时间的推移,您的用户群将成为您的开源项目的贡献者。

由于你无论如何都会思考你正在创建的代码,甚至可能正在编写笔记,因此,将文档作为开发过程的一部分,而它在你的头脑中是新鲜的,可能甚至想考虑在编写文档之前编写代码,遵循一个由文档驱动的开发方法的哲学,文档首先功能,并在写出来后开发这些功能。

除了您的代码之外,还有一些文件文件,您希望在顶级目录中保留:

  • README.md 文件,提供项目和您的目标的摘要。
  • CONTRIBUTING.md 文件与贡献指示.
  • 您的软件的许可证,可以鼓励更多贡献。

文档可以以多种形式提供,可针对不同受众,作为您的文档的一部分,并取决于您的工作范围,您可以决定执行以下操作之一或多项:

  • 一个 一般指南来介绍用户的项目
  • 教程来引导人们通过不同的使用案例
  • 常见问题来解决用户可能有
  • ** 故障排除指南**来帮助用户解决问题
  • 一个 ** API 参考 **为用户提供了一个快速的方法来找到API信息
  • ** 发布备注**与已知的错误,让用户知道在每个版本中期待什么
  • ** 计划的功能**来跟踪和解释未来发生的事情
  • 视频 路径为用户提供一个多媒体方法到您的软件

您的项目可能比其他类型的文档更适合某些类型的文档,但为软件提供多个方法将有助于您的用户群体更好地了解如何与您的工作进行交互。

在撰写文档或录音视频时,重要的是要尽可能清晰,最好不要对观众的技术能力做出任何假设,您还需要从顶部向下对待文档,即以一般的方式解释您的软件所做的事情(例如,自动化服务器任务,构建网站,动画游戏开发)。

虽然英语已成为技术领域的通用语言,但你仍然需要考虑你的预期用户是谁以及如何接触他们. 英语可能是获得广泛的用户群的最佳选择,但你想记住,许多人正在作为非母语英语者来接近你的文档,所以努力优化可访问的语言,不会使你的读者或观众感到困惑。

尝试写文档,仿佛你正在写给需要加速当前项目的合作者;毕竟,你想鼓励潜在的贡献者向该项目提出提取请求。

组织问题

问题通常是跟踪或报告错误的方法,或者要求新功能添加到代码库中。GitHub、GitLab 和 Bitbucket 等开源存储服务将为您提供一个界面,为您自己和其他人跟踪存储库中的问题。

由于任何用户都可以提交问题,并不是所有的问题都会报告错误或功能请求;您可能会通过问题跟踪工具收到问题,或者您可能会收到用户界面更小的改进请求,例如,最好尽可能组织这些问题,并与正在创建这些问题的用户进行沟通。

问题应该代表需要在源代码上完成的具体任务,您将需要相应地优先考虑它们。您和您的团队将了解您或贡献者可以花费多少时间和精力来处理提交的问题,并可以一起协作做出决策并创建可操作的计划。

对于构成功能请求或改进的问题,您可以询问提交该问题的人是否能够自行贡献代码,您可以将其引导到CONTRIBUTORS.md文件和任何其他相关文档。

由于问题往往不代表具体的任务,对问题发表评论以礼貌地引导用户到相关的文档可以是保持您的互动专业和友好的一个好选择. 如果这个问题的文档不存在,现在是添加相关的文档的好时机,并表达感谢用户识别这个监督。

每当用户报告一个问题时,请尽可能善良和礼貌,问题是用户喜欢你的软件并希望让它变得更好的指标!

通过尽可能地组织问题,您可以保持项目的最新性和与其用户社区相关性。 删除项目范围之外或停滞不前的问题,并优先考虑其他问题,以便您能够不断取得进展。

自动任务

您可以通过自动化维护任务和测试来提高项目的效率和质量。自动化维护和测试可以持续检查您的代码的准确性,并为批准贡献者提交提供了更正式的流程。

请记住,更少是更多,你选择以可为项目、你自己和贡献者优化效率、生产和质量的方式自动化流程和任务时要有意。

做贡献奖励

你越欢迎贡献者到你的项目和奖励他们的努力,你就越有可能鼓励更多的贡献. 要让人们开始,你将想要在你的存储库的顶层中包含一个CONTRIBUTING.md文件,并在你的README.md文件中指向该文件。

一个好的贡献文件将描述如何作为开发人员开始在项目上工作. 您可能希望提供一步一步的指南,或提供一个检查清单,让开发人员可以遵循,解释如何通过拉动请求成功将他们的代码合并到项目中。

除了有关如何为项目做出贡献的文档外,不要忘记在整个过程中保持代码的一致性和可读性。

最后,保持贡献者或作者列表. 您可以邀请贡献者将自己添加到列表中,无论他们的贡献是什么(即使修复字符是有价值的,并可能导致更多的贡献在未来)。

构建你的社区

通过通过文档赋予用户权限,响应问题,并鼓励他们参与,您已经在建立围绕您的开源项目的社区的道路上。

此外,您可以通过各种途径开展项目推广工作:

  • 博客
  • 发布概览或步骤视频
  • 保持邮件列表
  • 在社交媒体渠道上积极参与
  • 与类似或相关的项目合作并交叉推广

您将希望根据项目的范围和您与您合作的积极团队成员和贡献者的数量来定制您的推广。

随着社区的增长,您可以为贡献者,用户和维护者提供更多的空间进行互动。

  • 可以提供在社区层面维护的文档的维基组 讨论可能的功能和回答问题的论坛 电子邮件社区参与的列表服务

在部署这些潜在空间之前,考虑您的核心用户群和项目的范围 - 包括维护该项目的人数和可用的资源 - 并从您的社区寻求反馈,以了解他们的工作。

最重要的是,在你与社区的所有互动中,要善良,并表现出一些爱心是很重要的,成为一个仁慈的维护者可能很困难,但它会为你的项目付出代价。

结论

仓库维护者在更大的开源社区中非常重要,虽然需要大量投资和努力工作,但它往往是一个有益的经验,可以让你成长为开发者和贡献者。

Published At
Categories with 技术
comments powered by Disqus