Наш программный продукт состоит из многих частей. Допустим, он состоит из части драйвера ядра, пользовательской dll и программного обеспечения с графическим интерфейсом. Во время разработки мы компилируем и используем их все в последних версиях, но это не то же самое, когда дело доходит до релиза.
Действительно, часть ядра должна быть заморожена намного раньше, чем другая. Затем dll замораживается для тщательного тестирования, и последним замороженным является графический интерфейс. По мере продвижения QA нам нужно создавать новые версии полной версии с исправленным графическим интерфейсом, но с использованием ранее включенного драйвера ядра и dll.
Мне интересно, существует ли инструмент, который управлял бы какой версией каждой части программного обеспечения, используемой для создания выпуска?
Этот инструмент, возможно, будет интегрирован в цепочку инструментов для создания версии каждого выбранного программного обеспечения и объединения их в установщик Windows или пакеты Linux.
Изменить: как у нас дела?
На данный момент мы используем SVN с buildbot в качестве инструмента CI для Linux/gcc и Windows/VStudio. Мы находимся в режиме, когда весь репозиторий разветвляется/тегируется по мере необходимости. Но это больно и делает процесс выпуска болезненным сейчас, когда появляется все больше и больше относительно независимых частей программного обеспечения.
Мы думаем об изменении макета репозитория, чтобы иметь несколько независимых разветвленных/помеченных проектов. Это гораздо лучше соответствовало бы циклу разработки и выпуска программного обеспечения. Но тогда нам абсолютно необходим такой инструмент.
Проблема связана с тем, что разные части программного обеспечения, каждая со своими разветвленными/помеченными версиями, собраны в полную версию программного обеспечения.
Изменить: что необходимо.
В итоге я понял, что мне нужен менеджер пакетов для Windows. Менеджер пакетов в смысле менеджера RPM или DEB в Linux.
Кто-нибудь знает менеджер пакетов в Windows?