Композитор и несколько ветвей

У меня есть проект git с двумя филиалами:

  • Мастер: В настоящее время «стабильная ветка», но подвергнута изменению. Релизы отмечены оттуда.
  • Devel: ветка разработки для следующей версии. Это сливается с мастером, когда мы считаем, что некоторые функции здесь довольно стабильны.

В master у меня есть требование в моем composer.json которое использует определенную версию:

 "require" : { "triagens/arangodb" : "1.2.1", "php" : ">=5.4.0" }, 

В моей ветке разработки я хотел бы использовать версию разработки зависимостей:

 "require" : { "triagens/arangodb" : "dev-devel", "php" : ">=5.4.0" }, 

Эффективно, когда ветви переключаются, и выполняется composer install или composer update я хотел бы, чтобы композитор обновлял / изменял зависимости к соответствующим версиям.

Поскольку composer install --dev не поддерживает другую версию зависимостей в require-dev , я не могу установить другую версию в разделе require-dev .

Я также предпочел бы, чтобы у каждого филиала не было отдельного composer.json поскольку слияние было бы довольно болезненным.

Если у вас есть несколько ветвей, и каждая ветвь использует некоторую версию зависимости, что лучший способ сделать это?

Вы можете поддерживать несколько версий composer.json под разными именами:

  • composer.master.json
  • composer.dev.json

Затем, когда вы вызываете composer.phar update composer.phar install или composer.phar update , вы можете предисловие к желаемому файлу-композитору:

  • COMPOSER=composer.master.json php composer.phar update
  • COMPOSER=composer.dev.json php composer.phar update

См. Документы CLI .