Стабильные версии Zend Framework 2 и версии Doctrine Dev - конфигурация Composer

Я пытаюсь получить стабильную версию недавно выпущенного Zend Framework 2 (2.0.2), которая будет отслеживать стабильные версии через композитор.

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

Проблема в том, что я пытаюсь использовать DoctrineModule из modules.zendframework.com, и для этого требуется, чтобы для параметра минимальной стабильности было установлено значение «dev». Когда я делаю это, версия Zend Framework меняется на 2.0.3dev, чего я не хочу.

Кто-нибудь из вас знает, как смешать dev и stable в одной конфигурации композитора?

Я бы хотел, чтобы zendframework / zendframework отслеживал только стабильную ветку, а обновление композитора возвращало последнюю стабильную (в данном случае 2.0.2), а не версию для разработчиков.

Вот мой composer.json:


    {
      "minimum-stability":"dev",
      "name": "zendframework/skeleton-application",
      "description": "Skeleton Application for ZF2",
      "license": "BSD-3-Clause",
      "keywords": [
      "framework",
      "zf2"
      ],
      "homepage": "http://framework.zend.com/",
      "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*",
        "doctrine/doctrine-module": "dev-master",  
        "doctrine/doctrine-orm-module": "dev-master",
      }
    }

Рабочий composer.json с использованием решения @hakre

Поскольку Doctrine использует другие зависимости через композитор, для минимальной стабильности необходимо установить значение «dev». Установка для zendframework require значения @stable решает проблему с загружаемыми версиями для разработки.


      "minimum-stability":"dev",
      "require": {
        "php": ">=5.3.3",
        "zendframework/zendframework": "2.*@stable",
        "doctrine/doctrine-module": "dev-master",  
        "doctrine/doctrine-orm-module": "dev-master"
       }

Большое спасибо за ответ!


person Si Griffiths    schedule 07.10.2012    source источник
comment
Уважаемый господин, с какой конкретной проблемой вы на самом деле столкнулись? Из вашего вопроса неясно, я бы сказал, что вы могли бы быть немного более прямолинейными.   -  person hakre    schedule 07.10.2012
comment
Использование минимальной стабильности изменяет ожидаемую версию zend framework 2 с 2.0.2 на 2.0.3dev, которая не является стабильной версией. Я хочу получить последнюю стабильную версию ZF2 при обновлении композитора.   -  person Si Griffiths    schedule 07.10.2012
comment
"minimum-stability":"dev" - я бы сказал, вам следует использовать здесь stable вместо dev. По крайней мере, для ZF2.   -  person hakre    schedule 07.10.2012
comment
Есть идеи, как мне это сделать? Я просмотрел документацию, и это помечено как параметр корневого уровня, поэтому его можно установить только один раз в конфигурации. Я попытался использовать require-dev для битов доктрины, но это привело к тому, что доктрина не загружалась как все ...   -  person Si Griffiths    schedule 07.10.2012
comment
require-dev предназначен для проверки версии для разработки (например, когда вы исправляете ошибку в библиотеке, чтобы вернуть ее в исходное состояние), вместо этого изучите require. Я добавил ответ.   -  person hakre    schedule 07.10.2012
comment
Быстрое обновление. Использование минимальной стабильности: стабильная не работает, поскольку у Doctrine есть зависимости, которые невозможно устранить. Поэтому мне пришлось использовать minimum-stable: dev и установить тег @stable в конце определения zendframework / zendframework: 2. * @ Stable.   -  person Si Griffiths    schedule 07.10.2012
comment
Хороший намек, я уже подозревал что-то в этом роде. Было бы полезно предложить наследование стабильности для требуемых пакетов в качестве запроса функции, чтобы сделать это более простым и не вводить в заблуждение другие пакеты, которые вы предпочитаете стабильными.   -  person hakre    schedule 07.10.2012


Ответы (1)


Ссылаясь на руководство (из минимальная стабильность ):

Все версии каждого пакета проверяются на стабильность, и те, которые менее стабильны, чем параметр minimum-stable, будут проигнорированы при разрешении зависимостей вашего проекта. Конкретные изменения требований стабильности данного пакета могут быть выполнены в require или require-dev (см. ссылки на пакеты).

Это заставит меня сказать, что если вы установите значение по умолчанию с помощью minimum-stable на стабильный, а затем для конкретного пакета, для которого он вам нужен, пометьте их как бета или dev:

{
    "require": {
        "monolog/monolog": "1.0.*@beta",
        "acme/foo": "@dev"
    }
}
person hakre    schedule 07.10.2012
comment
Вот для чего это нужно. Минимум - это просто ваше значение по умолчанию. В вашем случае вам нужен стабильный, но вам нужно сделать исключение из правила для doctrine. - person hakre; 07.10.2012
comment
Да, я изо всех сил пытался найти способ обойти это. Использование require-dev просто вообще не работало, оно удаляло зависимости от доктрины и больше не загружало их. @ Tagging (должно быть, пропустил это) работает удовольствие. Спасибо. - person Si Griffiths; 07.10.2012