使用Laravel的语义版本控制进行包版本控制
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Laravel的语义版本控制进行包版本控制相关的知识,希望对你有一定的参考价值。
我有一个作曲家包A和B.A用于非Laravel项目,而B略微扩展A与一些Laravel特定文件(配置,外观等)。
- B应该如何要求A?它会是“^ 1.1”还是“1. *”?由于次要版本不应该破坏任何东西,第二个可能会更好,因为我不必经常更新B的composer.json。
- 那么,B应该与Laravel框架的版本匹配(目前是“5.6.x”)吗?是好事还是坏事?有些包以这种方式执行,其他包为不同的框架版本创建单独的分支。
答案
- B应该如何要求A?它会是“^ 1.1”还是“1. *”?由于次要版本不应该破坏任何东西,第二个可能会更好,因为我不必经常更新B的composer.json。
这完全是您的政策决定。这听起来你控制了A和B,因此你应该很容易判断A是否真的坚持Semantic Versioning,以及B从B中获取每个随机轻微碰撞的相对风险。
- 那么,B应该与Laravel框架的版本匹配(目前是“5.6.x”)吗?是好事还是坏事?有些包以这种方式执行,其他包为不同的框架版本创建单独的分支。
决不!您不负责对Laravel进行版本控制,您负责版本控制B. B对Laravel的依赖性在包定义中定义。您可能有机会至少在B上修改补丁级别,而不依赖于其依赖性。如果你需要明确哪个Laravel版本是B的目的,你可以在包名称级别(B-Laravel.XYZ BX.BY.BZ)包含构建元数据(BXYZ + Laravel.XYZ)甚至在发布/订阅级别(单独的网页,REST URI)。
我的建议是从1.y.z开始,然后按照current SemVer spec。
看到
另一答案
如果这两个包都属于你和私人,那么你可以把它包含在qazxsw poi中
这是一个例子。
composer.json
您还必须创建auth.json文件以进行凭据访问。
"repositories": [
{
"type": "package",
"package":
{
"name": "adnanmayo/laralogs",
"version": "0.1.4",
"source": {
"url": "https://repo.url",
"type": "git",
"reference": "master"
}
}
}
],
希望这可以帮助。
以上是关于使用Laravel的语义版本控制进行包版本控制的主要内容,如果未能解决你的问题,请参考以下文章