Подтвердить что ты не робот

Когда "dev-master" следует использовать в composer.json?

Я начинаю использовать Symfony2 и следую за многими учебниками. Я обнаружил, что, установив некоторые новые функции с помощью composer.json, они "всегда" объявили dev-master. Я не знаю причин, почему они всегда используют его. Пример из DoctrineFixturesBundle:

{
    "require": {
        "doctrine/doctrine-fixtures-bundle": "dev-master"
    }
}

На самом деле, я нашел googled и нашел, что кто-то написал, что если мы используем dev-master вместо любой версии stable. Это будет некоторые конфликты в будущем, потому что сегодня версия может быть 1.5.0, а завтра может быть 1.6.0.

Итак, что мы действительно используем в практических работах - dev-master или specified version и почему?

4b9b3361

Ответ 1

В случае необходимости вы можете использовать определенную (помеченную в стабильной версии) версию.

В то время как composer.lock блокирует зависимость от конкретного коммита даже при использовании dev-master... каждый composer update будет обновлять зависимость до последней версии и впоследствии обновлять файл блокировки.

Если ваш файл блокировки каким-то образом удаляется/теряется и не поддерживается резервным копированием/под управлением версии, вы можете легко завершить работу с нерабочим проектом после запуска composer install или composer update!

Простым примером может быть сам symfony/symfony... новые коммиты могут вводить новые ветвления BC (обратная совместимость) в ветки dev-master в любое время, оставляя ваше приложение в нерабочем состоянии.