gpt4 book ai didi

php - 更新依赖项是否会破坏向后兼容性(semver 主要版本更改)?

转载 作者:行者123 更新时间:2023-12-05 05:19:18 24 4
gpt4 key购买 nike

假设我发布了一个新库 Foo v1.0.0,它需要 php 5.6 作为依赖项。

现在我想在一些方法实现中内部使用 php 7.0 中的一些较新的语言结构。但是,我的整个公共(public) API(方法名称、参数、返回值等)保持不变。

正在关注 semver , 我现在应该发布什么版本号?

在我看来,要求新的主要平台依赖项将破坏运行 php 5.6 的现有用户的向后兼容性,他们将无法简单地使用 composer update 进行升级,因此现在应该是 v2.0.0。另一方面,因为我公开的 API 没有任何变化,我觉得这应该只是一个补丁 v1.0.1

最佳答案

不,您误解了向后兼容性 的含义。如果您的库的 API 保持不变,那么它可能只是新的主要版本,但它仍然向后兼容,这意味着升级不需要更改使用您的库的代码。要求 PHP 7 只是要求,但它与兼容性无关。

我看到的其他项目通常会出现重大的数字冲击,但这主要是因为它们不仅更改了需求,而且还进行了一些更改以从中受益,例如新的 PHP 功能。所以问问你自己,你是否真的会从仅仅需要 PHP 7 中获益,或者它只是一种外观上的改变或代码清理。它还取决于您的更改会真正影响多少用户。

编辑

要求 PHP 7 有时是一个巨大的变化,因为许多人仍在使用 5.x,并且不想或不能升级,虽然这不是向后兼容性问题,但我会把它设为 2.0 .0 清楚地表明这个变化是主要的。

关于php - 更新依赖项是否会破坏向后兼容性(semver 主要版本更改)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com