Некоторое время мы развертывали наши локальные пакеты в определенной папке packages.stable и добавляли ее в качестве репозитория пути. Для целей тестирования каждый разработчик имеет копию этой машины и дополнительную аналогичную папку packages.mine, в которой хранятся личные версии (например, новая функция). В зависимости от разработчика в папке packages.mine были более новые или более старые версии по сравнению с packages.stable, а также отсутствовали некоторые пакеты. Поскольку это было локальное репо, у нас был атрибут версии во всех файлах composer.json.
Это позволило composer req my/package1:*@dev, и композитор выбрал лучшую альтернативу: стабильную, если мои пакеты старые или отсутствующие, или мои, если они были новее. Таким образом, разработчику не нужно заботиться обо всех пакетах.
Теперь мы хотели переместить пакеты стабильных папок в несколько VCS. Внезапно перезапись больше не работает, поскольку composer up всегда игнорирует репозиторий локального пути packages.mine и принимает «новейшую фиксацию» из VCS.
Есть ли способ реализовать первый сценарий, если стабильной является VCS? Или это какое-то непредсказуемое поведение связано с локальными репозиториями пути, которые сработали только случайно?





Это действительно не проблема, если использовать другой пререлизный суффикс. -dev - это специальный зарезервированный суффикс, а dev-master всегда указывает на некоторую фиксацию, которая затем устанавливается на -dev (dev-master может указывать на ветку, но все же). На самом деле это причина, по которой -dev123 не является действующей версией композитора, а также является допустимым семвером. Таким образом, избегание -dev означает игнорирование последней фиксации dev-master.
Если в "местном" коде используется зарезервированный суффикс, отличный от -dev, он работает, например -alpha. Это позволяет местному коду иметь нумерованные суффиксы, такие как -alpha123. Добавление composer req my/package1:*@alpha создает желаемое состояние, в котором репозиторий локального пути имеет приоритет над любой версией VCS.
См. https://getcomposer.org/doc/04-schema.md#minimum-stability