私有作曲家包拒绝更新

时间:2014-09-24 18:07:30

标签: git symfony composer-php

在工作中,我有一个GitLab设置作为Git存储库来托管一个可以并将在多个站点中使用的通用编写器包(symfony2包用于它的价值)。并非完全不常见的做法。

我设法配置composer.json来看彼此:

在我现在正在工作的网站上,我有:

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "coresystem/tools-bundle",
            "version": "dev-master",
            "source": {
                "url": "{sorry this is private}",
                "type": "git",
                "reference": "master"
            },
            "autoload": {
                "psr-0": {
                    "CoreSystem\\ToolsBundle": "src"
                }
            }
        }
    }
]

并在包存储库上:

{
    "name": "coresystem/tools-bundle",
    "type": "symfony-bundle",
    "description": "A collection of common use tools across the network of core sites",
    "license": "DBAD",
    "authors": [
        {
            "name": "Kyle Harrison",
            "email": "{private, sorry}"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "php": ">=5.3.0",
        "symfony/framework-bundle": "~2.5"
    },
    "autoload": {
        "psr-0": {
            "CoreSystemToolsBundle": "src/"
        }
    }
}

在网站上,当我运行$ composer require coresystems/tools-bundle dev-master时,它工作正常。它下载了repo,安装了它。一切都很棒。

直到我需要更新工具包。

我做了我的更改,并将它们推送到工具gitlab repo。

但是在网站上,当我运行$ composer update coresystems/tools-bundles时,它说没有什么可以更新的。

出于绝望,我开始设置一些标签,推动这些标签,并尝试像$ composer update coresystems/tool-bundle 1.*@dev这样的事情,但无济于事。

为了让它工作,我必须先运行$ composer remove coresystems/tools-bundle,然后再次运行$ composer require coresystems/tools-bundle dev-master,以便重新放入存储库

是什么给出的?

1 个答案:

答案 0 :(得分:2)

不要使用type:package作为存储库描述。这是太多的手动工作要做,因为如果您使用受支持的存储库(SVN,Git,Mercurial)并且已将composer.json文件提交到其中,Composer可以检测到它需要知道的所有内容。

只需使用以下命令为Composer提供存储库的位置:

"repositories" : [
    { "type":"vcs", "url":"your private URL of the Git repo"}
]

这就是全部。无需复制自动加载定义或包描述中需要提及的任何其他内容。