系统版本小析


如果你依赖一个library,如果这个library没有用versions管理,那么当这个library升级后,你的软件有可能无法正常运行,因为升级后有可能library会引入破坏性的代码,让你的软件无法运行。所以你的软件需要依赖特定的library的特定版本。

但是这又会产生另一个问题,就是当library升级后,比如有security fix之后,你的软件无法及时应用上。因为你的软件依赖的是旧版本的library。

这时semantic version应运而生。

举个例子,版本号:7.1.15

7 is major version (不向后兼容的修改,比如去掉了一些function,或者rename functions)

1 is minor version (如果增加了一些东西,你增加minor version,而且设置patch version为0)

15 is patch version (完全向后兼容,改了好像没改,security changes经常是修改patch version)

你的软件可以规定,只要major version是7的都可以运行,那么你的软件就可以在不引入破坏性代码的同时,获得最新的安全更新。

完美!