Какая хорошая практика для создания патчей программного обеспечения?
Недавно я взял на себя ответственность за программный продукт, который был развит довольно неорганизован, и я создал новую структуру проекта, репозиторий исходного кода, отслеживание проблем и сборку с использованием nant и teamcity. Я нахожусь в точке, где каждая фиксация одной из основных ветвей компилируется, тестируется и встраивается в настройку.
Всегда строить и отправлять полные настройки мне кажется неправильным, и я хотел бы установить какое-то автоматическое создание патчей, но я не знаю, как это сделать. Есть ли у вас какие-либо предложения, как я могу это сделать или где я могу найти информацию по этой теме? Google пока не помог.
Некоторые подробности о моей текущей настройке:
Repository:
- git:
- 2 основных ветки: разработка и мастер
Система сборки:
- teamcity
- 2 конфигурации: одна для построения каждой ветки
- сборка состоит только из одного шага сборки:
- nant runner: nant script является частью репозитория и содержит следующие цели: clean, init, compile, test, deploy, build_setup (с использованием inno setup)
Я думаю, мне придется разделить nant script на части и использовать разные шаги сборки, чтобы каким-то образом сравнить артефакты новой сборки с более старыми и создать патч, содержащий обновленные файлы. Я на правильном пути, и если да, то кто-нибудь знает хороший пример или учебник о том, как настроить teamcity.
Ответы
Ответ 1
Если у вас нет массивного многомегабайтного приложения конечного пользователя, создание патчей (которые, как я предполагаю, вы хотите быть минимальными), является сложной задачей, поскольку вам придется предоставлять исправления от каждой предыдущей версии до самых обновленный.
Кроме того, вы можете инвестировать в инфраструктуру autoupdate, чтобы приложение обновлялось каждый раз, когда выпускается новая версия.
Что касается построения настроек для каждой фиксации, я лично не думаю, что это необходимо, если вы не будете постоянно тестировать саму программу установки. Скорее, полная сборка должна запускаться вручную, всякий раз, когда время ее выпуска.
Ответ 2
Вы должны посмотреть что-то вроде Microsoft ClickOnce для обновлений/патчей.