Сейчас я экспериментирую с Satis. Я хотел бы иметь возможность где-то получить точную версию моих личных пакетов, поэтому все, что обычно находится в файле composer.lock. Я всегда коммит composer.lock через Git.
Но если я правильно понимаю, Satis в своих packages.json всегда включает только обязательные части, то есть разделы из моего composer.json и, следовательно, только диапазоны версий.
Есть ли способ настроить Satis так, чтобы composer.locks также сохранялись, или как мне получить точный снимок моих пакетов?
+++ Пример +++
Хорошо, я попытаюсь объяснить немного больше.
Допустим, у меня есть пакет my/package. Здесь я добавляю несколько файлов, в том числе composer.json, в котором я определяю, что symfony/console должен быть установлен в версии выше или равной 4. Теперь я выполняю установку composer, и Symfony устанавливается в версии 4.4. Я фиксирую все файлы, включая composer.lock, и создаю релиз 1.0.
Теперь я еду в Сатис. Здесь я добавляю my/package и соответствующий URL репозитория для my/package в satis.json и обновляю его. Satis правильно проверяет мой пакет, и в packages.json или, точнее, в all*.json мой пакет указан с версией 1.0. Пока все в порядке.
Но если я сейчас взгляну на метаданные, которые Satis хранит для моего пакета во всех *.json, я увижу здесь практически указанные мной требования, т.е. что symfony/console должен быть установлен в версии выше или равной 4. Итак, Satis делает снимок composer.json и явно игнорирует composer.lock. Так что у меня нет шансов увидеть, что мой релиз 1.0 работает точно с версией 4.4 Symfony, в то время как, например, релиз 1.1 работает с symfony/console 4.5. Но эта информация мне интересна.
composer.lock
? - person Nico Haase   schedule 30.07.2020composer.json
вашего пакета. Это точка ограничения - он предоставляет диапазон версий для зависимостей. Чем шире диапазон, тем меньше вероятность возникновения конфликтов зависимостей. Использование точной версии изcomposer.lock
в основном гарантирует конфликты, потому что каждый пакет может иметь некоторые незначительные отличия. - person rob006   schedule 02.08.2020