Il Harper
乐于看到版本号对人们的心理影响被提及
SemVer本意是在版本号内把API兼容性体现出来,使得人们可以盲操(只要还是v1就可以直接升最新版本,没逝的),实践下来效果还行,不过对包使用者侧和包维护侧都有一定弊端
使用者:
对很多人来说1.0升2.0下意识就会觉得这是需要谨慎考虑的事情,即使SemVer情况下对应的包实际上只remove了一个没人在用的API;这实际上拖慢了整个生态的迭代进度,因为很多人实际上可以升v2获取功能/性能提升,但被吓住了
维护者:
SemVer情况下,Breaking Change不能随心发了;我所在的组织有「攒Breaking Change」的说法,把所有Breaking放下一个major发,这实际上是SemVer的目标之一,但对生态来讲并不一定是好的;因为只要下一个major还没出来,就会有越来越多的人在用当前major的时候开始使用已经deprecated的API,这实际上是自己给自己的用户增加了到时候迁移的难度

antfu提的方案对维护者来说是重大利好(Breaking到42.0没有心理负担了),对使用者来说不一定;
- 在使用者的产能大于包维护者的时候,使用者可以追上每一次更新,大部分更新都是无痛的,几乎没什么负担;
- 在使用者产能小于维护者的时候(比如你用了antfu的包),这时候你会发现你本地在42.0而最新版已经是242.0了,你升242必炸,当然你升43也有可能炸,怎么升都不稳;这种情况就会比较头痛,一路慢慢升到242没准要花几个小时了
由于我在升GitLab和升k8s的时候已经头痛过无数次了,所以我对antfu的方案持谨慎态度,毕竟他是真能在几个月内把包从v1干到v50(
转自群友评论:
乐于看到版本号对人们的心理影响被提及
SemVer本意是在版本号内把API兼容性体现出来,使得人们可以盲操(只要还是v1就可以直接升最新版本,没逝的),实践下来效果还行,不过对包使用者侧和包维护侧都有一定弊端
使用者:
对很多人来说1.0升2.0下意识就会觉得这是需要谨慎考虑的事情,即使SemVer情况下对应的包实际上只remove了一个没人在用的API;这实际上拖慢了整个生态的迭代进度,因为很多人实际上可以升v2获取功能/性能提升,但被吓住了
维护者:
SemVer情况下,Breaking Change不能随心发了;我所在的组织有「攒Breaking Change」的说法,把所有Breaking放下一个major发,这实际上是SemVer的目标之一,但对生态来讲并不一定是好的;因为只要下一个major还没出来,就会有越来越多的人在用当前major的时候开始使用已经deprecated的API,这实际上是自己给自己的用户增加了到时候迁移的难度

antfu提的方案对维护者来说是重大利好(Breaking到42.0没有心理负担了),对使用者来说不一定;
- 在使用者的产能大于包维护者的时候,使用者可以追上每一次更新,大部分更新都是无痛的,几乎没什么负担;
- 在使用者产能小于维护者的时候(比如你用了antfu的包),这时候你会发现你本地在42.0而最新版已经是242.0了,你升242必炸,当然你升43也有可能炸,怎么升都不稳;这种情况就会比较头痛,一路慢慢升到242没准要花几个小时了
由于我在升GitLab和升k8s的时候已经头痛过无数次了,所以我对antfu的方案持谨慎态度,毕竟他是真能在几个月内把包从v1干到v50(
 
 
Back to Top