![use cases][1]
Сейчас мало кого удивишь инструментами управления зависимостями проекта вроде `npm`, `composer`, `bundler`, `pip`, `maven`, `cargo` и других. Их общий недостаток — невозможность управлять непосредственно средой выполнения. Такая задача решается через `nvm`, `php-build`, `rvm`, `virtualenv`, `sdkman`, `rustup` и прочие глобальные "манагеры" версий runtime, обычно написанные под Bash/Zsh.
Следующий уровень "проблем" начинается, когда универсальный разработчик ежедневно занимается проектами с использованием совершенно разных технологий. Переменные окружения превращаются в месиво, а запуск шелла может занимать несколько секунд. Неизбежно начинаются бытовые ошибки в работе с этим зоопарком.
Далее разброд и шатание настегает Continuous Integration & Delivery, где ручные танцы с бубном установки инструментов и активирования конкретных версий совершенно не приветствуются, а в идеале требуется в принципе максимально абстрагироваться от используемых технологий и довести процесс до примитивных нейтральных команд: подготовить к релизу, затегить, скачать, подготовить, построить, упаковать, выложить, проверить, одобрить(подписать), выкатить.
Тут сам собой напрашивается инструмент, унифицировано работающий поверх уже существующих технологий,
который из себя и представляет [FutoIn CID — FutoIn Continuous Integration & Delivery tool][2].
[Читать дальше →][3]
[1]:
https://habrastorage.org/files/b0e/ba0/6e7/b0eba06e74d2414e9be00f0e3beb59ed.png "use cases"
[2]:
https://pypi.python.org/pypi/futoin-cid
[3]:
https://habrahabr.ru/post/325764/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut