如何合理使用版本号也是一个非常头疼的事情,下面罗列了不同种管理方式的优缺点:
假设最终程序及版本为 firstV1.0.0
它依赖二方库及版本为 secondV1.3.1
而二方库依赖三方库及版本为 thirdV3.3.3
更新情况 | 最终程序如何依赖 | 二方库如何依赖 | 最终程序方 | 二方库提供方 | ||||||
需要发版 | 更新频次 | 发版隐患 | 管理交流成本 | 需要发版 | 更新频次 | 发版隐患 | 管理交流成本 | |||
三方库修改bug | secondV1.3.1 | thirdV3.3.3 | 是 | 高 | 低 | 高 | 是 | 高 | 低 | 高 |
secondV1.3.+ | thirdV3.3.3 | 否 | 中 | 中 | 低 | 是 | 高 | 低 | 高 | |
secondV1.3.1 | thirdV3.3.+ | 否 | 中 | 中 | 低 | 否 | 无 | 中 | 无 | |
secondV1.3.+ | thirdV3.3.+ | 否 | 中 | 中 | 低 | 否 | 无 | 中 | 无 | |
secondV1.3.1 | thirdV3.+ | 否 | 中 | 中 | 低 | 否 | 无 | 中 | 无 | |
secondV1.+ | thirdV3.3.3 | 否 | 中 | 中 | 低 | 是 | 高 | 低 | 高 | |
secondV1.+ | thirdV3.+ | 否 | 中 | 中 | 低 | 否 | 无 | 中 | 无 | |
三方库新增功能 | secondV1.3.1 | thirdV3.3.3 | 否 | 无 | 无 | 无 | 否 | 无 | 无 | 无 |
secondV1.3.+ | thirdV3.3.3 | 否 | 无 | 无 | 无 | 否 | 无 | 无 | 无 | |
secondV1.3.1 | thirdV3.3.+ | 否 | 无 | 无 | 无 | 否 | 无 | 无 | 无 | |
secondV1.3.+ | thirdV3.3.+ | 否 | 无 | 无 | 无 | 否 | 无 | 无 | 无 | |
secondV1.3.1 | thirdV3.+ | 否 | 无 | 高 | 无 | 否 | 无 | 高 | 无 | |
secondV1.+ | thirdV3.3.3 | 否 | 无 | 无 | 无 | 否 | 无 | 无 | 无 | |
secondV1.+ | thirdV3.+ | 否 | 无 | 高 | 无 | 否 | 无 | 高 | 无 | |
二方库修改bug | secondV1.3.1 | 无 | 是 | 高 | 低 | 高 | 无 | |||
secondV1.3.+ | 否 | 中 | 中 | 低 | ||||||
secondV1.+ | 否 | 中 | 中 | 低 | ||||||
二方库新增功能 | secondV1.3.1 | 是 | 高 | 低 | 高 | |||||
secondV1.3.+ | 是 | 高 | 低 | 高 | ||||||
secondV1.+ | 否 | 中 | 高 | 低 |
综合发版成本和发版隐患来说,
- 如果团队够强大,要求稳定性,不介意成本,那么推荐使用 secondV1.3.1 thirdV3.3.3 这种制定完全版本号管理
- 但是如果考虑团队不够强大,需要考虑交流成本等情况,可以采用secondV1.3.+ thirdV3.3.+ 这种双自动升级小版本的管理方式
- 但如果考虑二方库的受众多,影响面大,可以考虑secondV1.3.+ thirdV3.3.3 这种方式,但二方库维护成本较大
- 强烈不建议采用 1.+的这种模式,只有在项目很小,依赖极其简单可控情况下才会使用