Ivy отлично подходит для управления зависимостями, но он не предназначен для обработки всего жизненного цикла программного обеспечения во многих модулях.Тем не менее, у него есть несколько функций, которые, кажется, поддерживают его (например, атрибуты status
и branch
), а реклама лучших практик плюща намекает на возможностьпродвигать интеграционные изменения к этапу или выпуску «с некоторой работой».
К сожалению, я не нашел четкого руководства о том, как управлять циклом dev -> test -> deploy.Вот некоторые вещи, которых я хочу достичь:
(учитывая, что разработчики обычно работают во многих модулях в локальной рабочей области)
- Dev может локально публиковать изменения в модуле, чтобы другие модули в рабочей области могли получать обновленные артефакты.
- Dev может назначить версию как "готовую к развертыванию для тестирования" с помощью одной команды.
- Тестер может обозначить версию как «готовая к работе» с помощью одной команды.
- Dev может пересобрать любую версию из источника , и соответствующие зависимости будут выбраны правильно (или повторяющиеся сборки).
Некоторые вещи, о которых я довольно ясно знаю:
- Редакция
status
должна использоваться, чтобы указать, предназначена ли эта ревизия только дляразработка, готова к тестированию или готова к производству - Атрибут
branch
должен быть достаточным для обработки различных веток проекта
Вот что я пытаюсь решить:
Как проmote интеграционные сборки
Допустим, у меня в рабочей области проверены эти модули:
Теперь я доволен модулем a и решил опубликовать вехуиспользуя проверенные версии в моем рабочем пространстве.Что должно произойти в репо:
e-1.0-RC1
публикуется d-1.1-RC2
публикуется, ссылаясь на e-1.0-RC1
как зависимость c-2.0-RC1
публикуется, ссылаясь на d-1.1-RC2
как зависимость b-3.3-RC1
публикуется, ссылаясь на e-1.0-RC1
как зависимость - Наконец,
a-7.1-RC2
публикуется, ссылаясь на c-2.0-RC1
и b-3.3-RC1
в качестве зависимостей.
Если я попытаюсь свернуть свое собственное для этого, я, вероятно, в конечном итоге займусь некоторым управлением рабочим пространством, ivy.xml, найду и заменим и т.д.черви, я хотел бы получить некоторые мнения.Какой лучший способ справиться с этим?