第三方库依赖版本控制策略

Third party library dependency versioning strategy

我们使用 Cocoapods 作为我们项目的依赖管理器,我意识到我们在版本控制方面并没有真正的策略。

我们的 podfile 包含各种语法,例如乐观运算符、逻辑运算符、精确版本...等

pod 'RxSwift'
pod 'RxCocoa', '~> 3.0'
pod 'RxAlamofire', '>= 3.0.3'
pod 'RxGesture', '1.0.1'

我非常清楚每个运算符的作用,但我不知道何时选择一个而不是另一个,可能的用例是什么,以及这些运算符的最佳实践。

如果可以的话总是使用最新版本(例如pod 'RxSwift')是否被认为是最佳实践,或者锁定到特定版本号更好,还是使用乐观运算符(~> )

这是一个适合 Whosebug 的边界问题,因为可能会有很多意见。这是对 objective 具体答案的尝试。

从很好地理解 semantic versioning 开始。

然后,您对补丁、次要和主要版本依赖项的接受程度取决于稳定性与对新功能的渴望,您希望这些依赖项中的每一个与测试能力相交。

例如:

  • 如果您不信任遵循语义版本控制的依赖项and/or现有版本满足所有需求,请将其锁定到特定的确切版本。
  • 如果您想要修复错误,但不关心新功能,请使用 ~ 运算符接受补丁更新。
  • 如果您想要新功能,但又不想破坏现有版本,请允许进行较小的更新。
  • 如果您总是想要最新的并且愿意处理重大更改,则根本不要指定版本限制。