如何更好的处理你的版本 tag

今天在发布上线的时候,CI 突然报错没有通过编译,打开一看,惊了,之前依赖的公司内部的一个组件库的 tag 删除了😂,oncall 问了原因,告知是有两个连续的版本 1.0.2 和 1.0.3 有个比较严重的问题所以删掉了。由此,我不禁思考:如何发布版本才能更少的影响用户

  1. 首先,一定是要尽量保证发布的版本不要有问题,要进行足够的单测和集成测试,力求保证发布的每个版本都是 bug free 的,作为基础组件的库更应该如此。
  2. 不要删除已有的 tag,然后重新发一个同名的 tag,之前也是一个组件库的同学进行了这个样的操作,导致已经下载的文件的 checksum 和线上不一致,导致编译错误。
  3. 不要在新版本 tag 还没有准备好的情况下,就把老版本的 tag 删除了,即便老版本的 tag 可能有 bug,但是不一定会影响使用,但是一旦删除了,导致无法通过编译而无法上线,所造成的影响可能会更大,比如有一个紧急发布需要上线,但是由于老 tag 删除了而无法打包,后果不堪设想。