在composerist的composer中使用非语义版本号有什么后果?

时间:2015-11-26 19:47:10

标签: php composer-php version versioning packagist

我想在Packagist上发布一个PHP库的分支。 然而,由于不是真的很大的变化,我们想要使用官方版本号,只需稍加修改即可添加我们自己的版本号。

所以最后我们提出了像这样的版本号的想法:v1.1.3-CE.1。 但是有一个问题:这不是semantical one。特别是对于作曲家/包装工作者来说,建议使用语义版本控制。 但正如您所看到的,它仍然与语义版本号非常相似,但我们滥用“预发布版本”“标记”(通常为alphabeta或类似)。 这就是为什么我想问一下,如果我们在作曲家中使用它们,那么非语义版本号的效果会是什么?更新过程是否受到影响,例如?

如果你真的不鼓励我们使用这样的版本号构造,我们也可以使用新版本(从0.1开始)作为我们的分支,但我们真的不想这样做。

1 个答案:

答案 0 :(得分:1)

如果你分叉,你有一个新包。所以你需要一个新的包名。

不重命名你的分叉会导致问题。首先,您将发布与原始版本平行的相同包名称的新版本。如果您成功,这将导致愤怒的用户,但更有可能原始供应商名称在Packagist上受到保护,因此无论您分配的是哪个版本,您都无法以相同的名称发布分支。

所以这是一个新的软件包名称,但您可以随意使用您想要的任何版本号。请注意,语义版本控制确实对" 0.x"有不同的规则。系列,特别是次要更新可以破坏那里的兼容性。这就是为什么Composer的^插入符号操作符的行为不同:^1.2.3允许更新到1.99999.99999,但^0.7.1将保持在0.7.x范围内。

不要使用无意义的东西超载稳定性标志(即我不知道" CE.1"意味着或应该表明)。稳定性标记可以很好地标记预发布(使用alpha表示可能会发生不兼容的更改,beta指示兼容的更改,RC仅指示错误修正),这些标记不适合一般公共消费。