2014-09-24 2 views
0

На работе у меня есть установка 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, он работал нормально. Он загрузил репо, установил его. все было здорово.

До тех пор, пока мне не понадобится обновить комплект инструментов.

Я внесла свои изменения и нажал их на инструменты 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 снова для того, чтобы reclone хранилище

Что это дает?

+0

Покажите нам определение 'require' из вашего ** composer.json **, а также что такое вывод' git branch' и 'git tag' для вашего пакета? –

ответ

2

Не используйте type:package в качестве описания репозитория. Это слишком много ручной работы, потому что Composer может обнаружить все, что ему нужно знать, если вы используете поддерживаемый репозиторий (SVN, Git, Mercurial) и в него вложили файл composer.json.

Просто дать композитору расположение хранилища с помощью:

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

Это все. Не нужно дублировать определение автозагрузки или что-либо еще, что необходимо указывать в описании пакета.

Смежные вопросы