【问题标题】:Using a custom version tag pattern\vcs path in composer.json在 composer.json 中使用自定义版本标签模式\vcs 路径
【发布时间】:2019-07-04 17:23:18
【问题描述】:

我有一个 svn* 存储库,其中包含一个库集合(“MyCommonLib”),例如 src\LibA、src\LibB 等。

我想将每个 Lib* 发布为单独的作曲家包。我在每个 Lib* 中都包含了一个 composer.json,我可以将 composer 指向每个 trunk\src\Lib*,它似乎并不介意......直到涉及版本。

标签结构是针对整个集合tags\1.0\composer.json 进行版本化的,这对于集合(MCL)本身来说很好。但是,这对于 Lib* 来说并不合适,因为 MCL\composer.json != MCL\src\LibA\composer.json。

理想情况下我“只是”想在 LibA\composer.json 中指定其“标签版本”是从指定路径中提取的。 IE。 tags\[version]\src\LibA\composer.json 而不是沼泽标准 tags\[version]\composer.json

有没有办法做到这一点?

*虽然 SVN 将始终在图片中,但我可以设置 git 镜像,如果这有帮助

PS 这可能闻起来像Using Composer when multiple components are in the same vcs repo,但它 A) 已经 6 和 B) 我特别询问标签\版本模式发现已经解决了基本的包发现本身。

【问题讨论】:

    标签: php composer-php


    【解决方案1】:

    您可以使用package-path 设置来指定存储库内的包路径:

    "repositories": [
        {
            "type": "vcs",
            "url": "https://svn.example.org/",
            "package-path": "src/LibA/"
        }
    ]
    

    Composer 应使用https://svn.example.org/trunk/src/LibA/composer.jsonhttps://svn.example.org/branches/[branch name]/src/LibA/composer.jsonhttps://svn.example.org/tags/[version]/src/LibA/composer.json 作为此包的路径。

    example in documentation

    【讨论】:

    • 似乎这在我们的环境中不起作用。我们的 repo 布局(我们如何让它“工作”,但不在主干中)导致包提交错误。我认为我们又回到了使其成为一体的状态。但是,您的答案在技术上是正确的,这是最好的正确答案。
    • 我不确定我是否理解,但您应该可以通过trunk-path 设置更改中继路径。
    • 因此,不足之处在于发现又是一个问题。我会详细介绍,以防万一有一个孤独的灵魂在同一条船上。我们已经将单个库从 svn“分块”到 github(每个库都在他们自己的 gh repo 中使用 subgit)。这使我们易于维护(svn 中的单声道)+ 发现(packagist 可以在 GH 上读取“trunk/master”)但没有版本\标签,因为它们没有发送到 GH。结果我们的 subgit 要么是旧的,要么是配置错误的,因为我刚刚让它也发送“分块”标签。 subgit.com/documentation/…
    猜你喜欢
    • 1970-01-01
    • 2020-11-08
    • 2012-07-13
    • 2020-09-28
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    相关资源
    最近更新 更多