【发布时间】:2020-09-05 02:07:20
【问题描述】:
假设你有一个包Foo,它依赖于包Bar。
最初Foo v1.0.0 依赖于Bar v1.0.0。
Bar 更新为v2.0.0。
您现在更新了Foo 的依赖项,因此它现在需要Bar v2.0.0。
由于Bar 的此次升级不会破坏、添加或修复Foo 中的任何功能,您应该更新Foo 语义版本控制的哪个部分以反映这一变化?
注意:如果您想知道为什么我必须将 Bar 更新为 v2.0.0 如果它不会更改 Foo 中的任何内容 - 如果您的应用程序中的其他包也需要 Bar 但是在v2.0.0,如果Foo 只需要Bar 在1.0.0,它将发生冲突。 AFAIK 这是 PHP Composer 中的行为。
【问题讨论】:
-
为什么不要求
Bar使用^1.0? -
@NicoHaase 抱歉,我的意思是
Bar需要进行重大更改2.0.0。为清晰起见更新了详细信息。 -
如果
Foo能够同时使用Bar的v1 和v2,你可以同时使用^1.0|^2.0——这就是Symfony 构建他们的需求的方式 -
@NicoHaase 我不知道管道,会尝试。因此,如果我将
Foo设置为使用^1.0|^2.0,我猜同样的问题适用,Foo现在的semver 是什么? -
此问题是否对
Foo造成重大更改?如果没有,从我的角度来看,没有必要发布新的主要版本。我认为这个问题没有全球范围内的真实答案
标签: version-control composer-php versioning semantic-versioning