跳到主要内容

语义化版本?

· 阅读需 3 分钟
Scarlet Forliy
Scarlet Forte

simbot3的版本语义,依旧不尽人意。

阅前参考

对于 语义化版本 的概念,你可以参考 《语义化版本 2.0.0》

v3.0.0-beta-M3 版本发布时, 我们承诺过后续的beta版本不会再出现大面积的不兼容更新。而在此版本发布之后,我们又对simbot3的语义化版本产生了自我质疑。

实际上,从simbot最初的版本直至今日,都没有遵循标准的语义化版本规则。不论是simbot、simbot2还是目前正在筹备的simbot3, 它们的版本语义都十分的混乱。

目前,simbot2的坐标大概是这个样子的:

<dependency>
<groupId>love.forte.simple-robot</groupId>
<artifactId>xxx</artifactId>
<version>2.x.x</version>
</dependency>

而目前的simbot3的坐标大概是这个样子的:

<dependency>
<groupId>love.forte.simbot</groupId>
<artifactId>simbot-xxx</artifactId>
<version>3.x.x</version>
</dependency>

从本质上来讲,simbot2和simbot3实际上属于两个完全不同的框架 ———— 甚至于只是将主版本号2 提升为 3 都难以描述二者之间的差异。 因此,我们认为,实际上对于simbot3使用如下形式的定义可能会更加合适:

<dependency>
<groupId>love.forte.simbot3</groupId>
<artifactId>simbot3-xxx</artifactId>
<version>0.x.x</version>
</dependency>

这样一来,我们就可以通过 love.forte.simbot3groupId 来区分于新旧框架,也可以借助一个从头开始的版本号来更准确的描述版本语义。 但是很可惜的是,这种情况被提出的太晚,以至于simbot3将无法遵循这种方式了。

使用这种方式,不论对于核心库还是对于组件,都是一个充满包容性的新开始。只不过这样的话可能需要重新定义整体的包结构, 与 love.forte.simbot3groupId 一致。所以这种方式,就让我们留给未来可期的 simbot4 吧。

未来...?
可期

美好的展望总是一切的开端。

<dependency>
<groupId>love.forte.simbot4</groupId>
<artifactId>simbot4-xxx</artifactId>
<version>0.x.x</version>
</dependency>