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

问题描述 投票:1回答:2

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

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

看到


0
投票

如果这两个包都属于你和私人,那么你可以把它包含在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" 
            }
        } 

    }
], 

希望这可以帮助。

© www.soinside.com 2019 - 2024. All rights reserved.