2015-03-30 6 views
2

У меня есть проект с несколькими пакетами Каждый пакет находится в частном репозитории git.Круговые зависимости Satis

Некоторые из пакетов имеют зависимости друг от друга.

Здесь вы можете посмотреть, как выглядит моя satis http://codepen.io/anon/pen/wBOEQW.

Теперь, если я клонировать проект-xpto/ядро ​​и запустить обновление композитора я получаю это:

➜ PHP-ядро мерзавца: обновление (мастер) композитор Загрузки композитор репозиториев с информацией пакета Обновления зависимые (включая require-dev) Ваши требования не могут быть разрешены к устанавливаемому набору пакетов.

Problem 1 
    - Installation request for project-xpto/event dev-master -> satisfiable by project-xpto/event[dev-master]. 
    - project-xpto/event dev-master requires project-xpto/activity-streams dev-master -> no matching package found. 
    Problem 2 
    - Installation request for project-xpto/tool dev-master -> satisfiable by project-xpto/tool[dev-master]. 
    - project-xpto/tool dev-master requires project-xpto/activity-streams dev-master -> no matching package found. 

Potential causes: 
- A typo in the package name 
- The package is not available in a stable-enough version according to your minimum-stability setting 
    see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> 

для получения более подробной информации.

Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems. 

Не предполагают, чтобы Satis решить все зависимости и все отлично работает?

Что я делаю неправильно?

Если вам нужно что-нибудь еще, просто спросите, я обновлю здесь.

ответ

2

Пожалуйста, дайте это попробовать:

добавить к composer.json из project-xpto/core.

Вам необходимо много пакетов для защиты dev-master, но минимальная стабильность по умолчанию - stable. Таким образом, они не разрешены стабильным набором. Вам необходимо снизить стабильность для всех пакетов до dev, установив вышеуказанную директиву в своих основных проектах composer.json.

В качестве альтернативы вы можете использовать [email protected] для снижения стабильности на конкретном пакете. Но здесь довольно много пакетов, поэтому я бы предложил установить минимальную стабильность для всего проекта.


Вы можете комбинировать «минимум-стабильность dev» с «предпочитаете устойчивую истину». Это говорит, что Composer разрешает стабильные версии И ТОЛЬКО, если стабильный не может быть разрешен, используйте зависимость dev. Этот параметр является хорошим способом на начальной стадии частного проекта, где пакеты начинают расти из «dev-master» и в «стабильные версии».

"minimum-stability": "dev", 
"prefer-stable" : true 
+1

Вы, сэр, спасите меня из трудных часов! Но просто для подтверждения, это своего рода переход от svn к git/satis, и пока они просто пустые скелеты без кода, я должен создать новые ветви в git-репозиториях, называемых «dev»/«stable»? пока я только что получил «мастер» и создал несколько тегов. Какова наилучшая практика? – Tomahock

+0

Я добавляю свой ответ с кратким уведомлением о «предпочтительном-стабильном» в сочетании с «минимальной стабильностью». –

+0

Рад, что я мог помочь :) «Лучшая практика» - хм, я думаю, когда это новый проект или миграция, нормально работать со стабильным разработчиком по всему проекту. Но цель «должна быть», чтобы получить каждый пакет в стабильную версию, даже если это всего лишь крошечный v0.1. Начать ранжирование версий в начале пакетов. Затем вы можете удалить минимум стабильности из основного проекта и начать использовать ограничения версии, получая стабильные версии, например «1.0.0», чтобы получить последнюю стабильную версию или «~ 1.0». Другими словами: цель состоит в том, чтобы иметь основной проект, составленный из стабильных пакетов. –

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