Search
Write a publication
Pull to refresh

Comments 10

Проектируем систему обновления для своего софта, озадачились поиском наиболее гибкого способа. Основная проблема — как обновлять файлы, которые правились пользователем (темплейты, например и т.п.). Буду рад услышать мнения в комментариях.
Думаю то что правит пользователь не должно быть привязанным к версии системы.

Посмотрите как обновляется вордпресс — говорит: «делайте бэкап, я буду обновлятся и то что вы во мне правили потеряется». Я правил некоторые исходники и понимаю что при очередном апдейте мне придется снова дописывать нужные мне вещи. Матерюсь, но обновляюсь. С другой стороны я не хочу чтобы он сам пытался выяснить что же было исправлено и как это пропатчить — боюсь это принесет еще больше печали.
Я думаю бесполезно говорить пользователю, что «тут править нельзя, а надо просто написать аддон». Он все-равно будет править там, где ему удобно.
Я представляю (собираюсь сделать так): ядро системы и модули обновлять (но не трогаемть API модулей) + кастомные файлы в модулях, которые тоже не трогать + zip-архив, распаковывающийся апдейтером.
может быть проверять размер файлов и если он совпадает эталонному обновлять автоматом, а если нет выводить диалоговое окно «это файл скорее всего был изменён вами» с указаниями действий
Если я внутри файла поменяю
A=6 на A=3
система обновления как то заметит этот факт по размеру файла?
md5 наверно лучше брать от содержимого файла в этом случае
я не претендую на универсальность способа, но хоть какое то решение он даст
Автоматически проверяются обновления и закачиваются, происходит обновление, вместе с ним и бекап. Есть кнопочки которые позволяют отключить автомат и принудительно затребовать/установить обновление. Хранится история бекапов(настройка сколько версий назад хранить), можно сделать откат к любой версии, если надо. Есть интерфейс тестирования работы системы, после апгрейда можно протестировать. Система спроектирована так, чтоб нужные интерфейсы были доступны пользователю для работы с ней, чтоб не вмешивался в код. Эти интерфейсы постоянно расширяются, пользователи могут добавлять в репозитарий свои аддоны. Общение с сервером обновления и бекап хранятся и передаются в zip архивах. Нехватает системы зависимостей разных модулей, поэтому частичное обновление тоже возможно, если указать по модульно что обновлять, но пока производится на свой страх и риск. Решение конешно не совершенное и не законченное, но уже год работает.
Sign up to leave a comment.

Articles