2015-10-29 4 views
2

Это обсуждалось несколько раз в нескольких вопросах на SO, но все ответы, даваемые отказываются работать для меня принять этот ответ:при получении вилка с композитором

Contributing to open source bundles from vendor directory?

Я испытал это на нескольких компьютерах , поэтому я уверен, что это не отдельный случай.

Но использование типа «упаковка» считается плохой практикой, которую я прочитал. Может кто-нибудь объяснить мне, почему это не работает? Он не будет загружать разветвленный репозиторий!

{ 
    "repositories": 
    [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/flyandi/lumen-doctrine.git" 
     } 
    ], 
    "require": { 
     "nordsoftware/lumen-doctrine": "[email protected]" 
    } 
} 

обновление

Так что получается у него есть что-то TODO со стабильностью пакетов еще о том, что здесь:

https://igor.io/2013/02/07/composer-stability-flags.html

Затем я попытался это, который работает:

{ 
    "repositories": 
    [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/flyandi/lumen-doctrine.git" 
     } 
    ], 
    "require": { 
     "nordsoftware/lumen-doctrine": "[email protected]" 
    }, 
    "prefer-stable" : true, 
    "minimum-stability": "dev" 
} 

Что я не понимаю, так это то, что флаг @dev не работать? Может кто-то уточнить?

ответ

2

Композитор пытается установить стабильный набор пакетов по умолчанию. Он не будет разрешен, потому что пакет, который вы извлекаете (через псевдоним) , использует сами зависимости развития. Зависимость doctrine/orm пакета, который вы выбираете lumen-doctrine, требуется в режиме dev. И потребность в этой зависимости зависит от вашего пакета.

При добавлении dev-master или [email protected] за nordsoftware/lumen-doctrine он работает только для этой упаковки. @dev делает явным, что мы уже знаем из-за префикса dev-: его запрос для dev-версии, но он не меняет стабильности для всех пакетов - и не устанавливает стабильности для зависимостей пакета.

Запрос на установку для nordsoftware/lumen-doctrine может быть выполнен по dev-master (и по ряду отмеченных версий).

Проблема заключается в том, что пакет doctrine/orm не выполним, потому что nordsoftware/lumen-doctrine dev-master requires doctrine/orm [email protected]

варианта:

  • установить minimum-stability все пакеты dev (у вас уже есть что)
  • или просто добавьте доктрину/orm и понизьте стабильность только на этом пакете

{ 
    "repositories": 
    [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/flyandi/lumen-doctrine.git" 
     } 
    ], 
    "require": { 
     "nordsoftware/lumen-doctrine": "dev-master", 
     "doctrine/orm":    "[email protected]" 
    } 
} 
Смежные вопросы