使用Laravel的语义版本控制进行包版本控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Laravel的语义版本控制进行包版本控制相关的知识,希望对你有一定的参考价值。

我有一个作曲家包A和B.A用于非Laravel项目,而B略微扩展A与一些Laravel特定文件(配置,外观等)。

  1. B应该如何要求A?它会是“^ 1.1”还是“1. *”?由于次要版本不应该破坏任何东西,第二个可能会更好,因为我不必经常更新B的composer.json。
  2. 那么,B应该与Laravel框架的版本匹配(目前是“5.6.x”)吗?是好事还是坏事?有些包以这种方式执行,其他包为不同的框架版本创建单独的分支。
答案
  1. B应该如何要求A?它会是“^ 1.1”还是“1. *”?由于次要版本不应该破坏任何东西,第二个可能会更好,因为我不必经常更新B的composer.json。

这完全是您的政策决定。这听起来你控制了A和B,因此你应该很容易判断A是否真的坚持Semantic Versioning,以及B从B中获取每个随机轻微碰撞的相对风险。

  1. 那么,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的语义版本控制进行包版本控制的主要内容,如果未能解决你的问题,请参考以下文章

dotnet 核心包版本控制

代码的自动语义版本控制

CI 如何影响语义版本控制?

关于使用 CI / CD 管道的语义版本控制发布的一般问题

语义版本控制在啥版本下进行版本化?

持续部署环境中的 dotnet 语义版本控制