Usage ======= Идея CrossPM (как пакетного менеджера) примерно такая же, как и других популярных пакетных менеджеров (npm, pyenv, etc).
Можно придерживаться примерно следующего алгоритма:
crosspm lock
- создает файл dependencies.txt.lock. Он хранит список пакетов последней версии, которые нашел crosspm
. Условия для поиска задаются в файле конфигурации crosspm.yaml\config.yamlcrosspm download
- пакеты из lock-файла выкачиются рекурсивно (если есть lock-файл в скаченном архиве, он скачает все пакеты у пакета)crosspm download
может включает в себя lock
команду, т.е. если вы используете файл с масками, то он ищет последние при загрузке.
Команда crosspm lock
фиксирует текущие версии удовлетворяющие маскам, указанным в файле dependencies.txt
. Фиксирует версии в выходной файл, обычно, dependencies.txt.lock
.
Разработчик запускает команду, сохраняет новый файл dependencies.txt.lock
в гит-репозитория для повторяемости сборки.
Имея, например, следующий файл манифест dependencies.txt:
boost * 1.55-pm
poco *- 1.46-pm
openssl 1.0.20- 1.0.1i-pm
log4cplus 1.1.6 1.1-pm
pyyaml 3.10.115 3.10-python-3.4
protobuf 0.>=1.* default
gtest 0.0.6 default
gmock 0.0.5 default
Выполним команду lock:
crosspm lock dependencies.txt dependencies.txt.lock
Будет получен следующий файл dependencies.txt.lock:
boost 1.55.0 1.55-pm
poco 1.46.11075-develop-vc110-x86 1.46-pm
openssl 1.0.20-develop 1.0.1i-pm
log4cplus 1.1.6 1.1-pm
pyyaml 3.10.115 3.10-python-3.4
protobuf 1.10.343 default
gtest 0.0.6 default
gmock 0.0.5 default