Это сложный вопрос, поэтому я надеюсь, что объясню это достаточно хорошо.
Фон
Я нахожусь в процессе автоматизации процесса сборки с помощью CruiseControl.NET и NAnt.Самая большая головная боль, которую я прилагаю, - это формат номера версии и CruiseControl.NET, требующий метку от метки перед запуском проекта сборки.
В настоящее время разработчик использует Visual Studio 2008 для создания отладочной, выпускной и пользовательской сборок.Каждая из этих конфигураций вызывает BuildInc (пользовательский инструмент), который читает файл (version.ver), увеличивает номер чтения версии, генерирует файл .rc2 для исполняемых свойств и записывает новую версию обратно в version.ver.Очевидно, что версии .ver и .rc2 изменяются и нуждаются в проверке поддержки в источнике, прежде чем разработчик пометит релиз в системе контроля версий.Метка в контроле исходного кода - это номер версии, т.е. 1.2.3.4 -> 1-2-3-4.
. В настоящее время новая автоматическая сборка запускает проект CruiseControl.NET, который вызывает скрипт NAnt.Сценарий NAnt запускает Visual Studio и публикует сборки в каталоге выпуска.Это прекрасно работает, скрипт NAnt может получить предыдущий и новый номер версии, читая version.ver.Проблема в том, что CruiseControl.NET помечает источник и отображает метку на приборной панели.Новый номер версии / метка генерируется во время сборки, и какой номер для увеличения хранится в проекте Visual Studio в аргументах задач предварительной ссылки.
Номера версий
Номера версий представлены в уникальном формате и различаются между сборками, выполняемыми в магистральной сети и ветвях разработки.Сборки, выполненные на ветви, предназначены для улучшений, которые после завершения объединяются в магистраль.
Магистраль
- Формат: [Major]. [Merge]. [Release] .00 т.е. 42.01.02.00
- Major: номер системы
- Merge: увеличивается при объединении ветви
- Release: увеличивается при исправлении ошибок
Branch
- Формат [Major] .00. [Stream]. [Release] т.е. 42.00.01.01
- Major: системный номер
- Stream: номер потока, связывающий его с другимиКомпоненты для улучшения
- Релиз: Увеличено при исправлении ошибок
Числа начинаются с префикса ноль, т.е. 01, 02. Это не очень хорошо работает с любыми инструментами, с которыми я сталкивался.(Я надеюсь изменить это)
Вопросы
После всего этого, я надеюсь, вы понимаете мои проблемы.
- Какие общие улучшенияМогу ли я перейти на автоматизированный процесс?
- Как вы думаете, номер версии должен быть известен до начала сборки?
- Должна ли система автоматической сборки автоматически увеличивать номер версии?
- Стоит ли менять формат номера версии?
- Любые другие комментарии, мне действительно нужно больше мнений.
Дайте мне знать, если потребуется дополнительная информация.
Примечания
Язык - C ++, платформа - Windows, а управление исходным кодом - CVS.