维护一个不断发展的开源项目

最好的部分是旅程

在2015年,我开源了一个名为SwiftyStoreKit的小型Swift框架。

目标: 在iOS上简化应用内购买

我以前曾写过关于它的经验的文章:

我如何在GitHub Project上获得1000⭐️

这是关于我的旅程如何继续进行以及该项目如何推动我成为更好的开发人员的后续报告。

首先,我想分享一些很棒的资源,这些资源给了我启发,并提供了许多有关如何发展项目的实用技巧。

GitHub开源指南

开源指南
了解如何启动和发展您的项目。 开源指南

本指南包含一些很棒的材料。 我特别建议本节:

维护者最佳实践
从文档编制流程到利用社区,您都可以轻松地成为开源维护者。 开源指南

扩展开源社区

Felix Krause在他非常详细的“扩展开源社区”文章中谈到了开源项目的四个阶段。 摘要:

  • 阶段1:在GitHub上放置源代码
  • 阶段2:开发人员开始使用您的软件
  • 阶段3:项目很受欢迎,并且是该领域的首选解决方案
  • 阶段4:超大规模开源项目

我不能推荐这个。 去读吧

而这个: Artsy的开源

进入下一个层次

SwiftyStoreKit去年变得流行时,开发人员开始提出问题并提出要求。

压力很大

作为唯一的维护者,由于许多问题,我感到有些压力:

  • 问题列表正在增长。 其中一些强调了项目特定领域的缺陷。
  • StoreKit不是一个琐碎的框架,我对某些方面不太了解。
  • 我担心在进行更改时会引入回归。
  • 对于IAP多久失败一次以及在什么情况下失败,我没有任何度量标准。 我的用户销量下降了吗? 1%,5%,10%? 更多?
  • 我无法在所有可能的端到端配置(iOS,macOS,tvOS,沙箱,生产,iTunes停机,帐户/ IAP配置问题等)中有效地测试我的媒体库。

保持理智

我意识到我必须做一些事情:

  • 阅读有关StoreKit的更多信息,并确保我的实施符合Apple的准则。
  • 井井有条,对问题和PR做出更及时的响应。
  • 避免蠕变,并学会何时拒绝。
  • 添加单元测试。
  • 标准化和简化贡献,包括我的和其他用户的贡献。

我做了什么

  • 完全以完整的单元测试覆盖范围重写了采购流程。
  • 添加了Travis CI作业来运行构建和测试。
  • 添加了ISSUE_TEMPLATE.md文件,以鼓励记者包括所有相关详细信息。 大赢
  • 添加了CONTRIBUTING.md文件,该文件概述了项目的范围,提取请求过程以及缺少的功能列表。
  • 在项目中添加了SwiftLint ,以标准化代码贡献并使它们更易于查看和接受。 去看看吧 ! 💯
  • 通过gitflow 。 这引入了一个开发分支,在此分支中,新功能工作可以在掌握之前进行合并和测试。
  • 默认情况下,将要素分支用于我自己的贡献。 使跟踪功能和参考相关问题变得更加容易。
  • 定期花几个小时检查所有问题并关闭不活动的问题。
  • 发布里程碑,以更清晰地了解计划的未来工作的优先级和时间表。

这些更改可以快速实施,但可以大大改善流程。

今天

那里的一些开源项目比我的要好得多,而且我知道我还有很多事情要做。

尽管如此,通过我的更改,我现在对前进的方向更有信心,并且我更加享受旅途

没有什么比对单元测试,绒毛和建立健康项目的良好过程充满信心了。

SwiftyStoreKit逐渐成为 iOS上应用程序内购买的首选 ,这使我有了新的动力来使其变得更好。 正如我之前所说:

我希望我的代码能够 对世界 产生影响

自2017年2月25日起, SwiftyStoreKit庆祝了10万次下载里程碑。 这与流量的大幅增加是一致的:

开发人员越来越多地在生产中的应用程序中使用SwiftyStoreKit 。 我需要确保它的安全性和可靠性,并且对如何维护它变得更加明智。

  • 仍然很难确保框架在所有配置中都能正常工作。
  • 我仍然没有度量它的可靠性。
  • 单元测试的覆盖范围可以进一步提高。
  • 拉取要求礼节应正规化。

幸运的是,我不希望以惊人的速度进行新功能的开发。 项目原始范围中的大多数功能已经实现。 但是,我将看看这个预测是否成立。 😅

包起来

与其他开源项目相比, SwiftyStoreKit的增长缓慢且稳定 。 这意味着我可以继续进行并改善自己的过程。

我在公开管理软件开发方面越来越好。 在此过程中,我可以将我学到的许多东西应用到其他项目和客户工作中。

  • 如果您只是开始使用开源软件,我希望这会启发您构建和共享一些很棒的东西。
  • 如果您已经有一个项目,并且维护它似乎很麻烦,那么上面的一些技巧可能会使它变成令人愉悦且有意义的体验。

谁知道,也许您的项目会在明年进入此列表:

33个iOS开源库将在2017年占据主导地位。
2017年可满足您日常iOS编程需求的33个最佳 Pod。UI ,网络,核心数据,分析,单元/ BDD测试… medium.com

谢谢阅读! 🙂

关于我:我是一名自由职业的iOS开发人员,在合同工作,开放源代码,辅助项目和博客之间徘徊。

在Twitter上为 @ biz84 您还可以看到我的 GitHub 页面。 反馈,推文,有趣的GIF,欢迎您! 我的最爱? 很多👏👏👏。 哦,还有香蕉面包。