Как правильно устанавливать обновления устранённых багов?
Строго по дате их выхода, или без разницы?
2. Как я понимаю, для единообразия, все патчи выполнены в виде архивов, которые нужно распаковать В КОРЕНЬ сайта, заменяя одноимённые файлы, за исключением патчей для обновления работы базы данных, которые выполяются в виде запросов к БД.
Или для некоторых обновлений возможны исключения — распаковка в ту или иную папку?
Вы не поняли вопрос.
Обычно админ, выкладывая изменения на багтрекере, описывает как устанавливать
Если вы регулярно просматриваете багтрекер и РЕГУЛЯРНО устанавливаете обновления, проблем нет.
Но если некто как я, назовём его "Нерадивый админ", заходя в багтрекер, видит Н-ное количество обновлений — сразу возникает вопрос:
Как их устанавливать, выбирать строго по дате выхода, от более ранних к более поздним, или тупо распаковывать архивы в корень сайта, невзирая на даты выхода?
Спасибо за подсказки.
Как обновлять написано в текстовом файле Readme (файл лежит в архиве с дистрибутивом)
Путём экпериментирования на Денвере установил, что:
В случае массовой распаковки архивов с патчами, необходимо соблюдать следующие условия:
ОБНОВЛЕНИЯ ПРОИЗВОДИТЬ ОТ БОЛЕЕ РАННЕГО ПАТЧА К БОЛЕЕ ПОЗДНЕМУ. Это обязательное условие!
Это надо прочитать всем. Иначе — капут.
Остаётся пожелание — для разработчиков — чтобы не было путаницы и возможных ошибок при установке — Чтобы патч с обновлениями распаковывался ТОЛЬКО В КОРЕНЬ сайта.
Если я, сужу по себе, не очень сильно отслеживаю движения в багтрекере, больше ориентируюсь на форум, то может возникнуть такая ситуация:
я сначала, скачаю и установлю заплатку более позднюю, а потом столкнусь, допустим с другой проблемой и скачаю и установлю заплатку более раннюю (имеется ввиду на одинаковый компонент системы). Тем самым я могу свести на нет предыдущую заплатку и решенная ранее проблема возникнет вновь. Более того, некотрые заплатки затрагивают несколько файлов и разобраться в их хитросплетении...
Может стоит дополнить систему решения проблем еще одним компонентом — репозиторием.
Тогда в заплатку нужно будет не архивировать сами файлы, а указывать ссылки на нужные файлы или даже используя библиотеку pclZip собирать "на лету" нужные файлы из репозитория и отдавая архив пользователю.
Таким образом какую бы заплатку я не взял из багтрекера в нее всегда попадут самые последние файлы проекта.
Отличная мысль!
Может стоит дополнить систему решения проблем еще одним компонентом — репозиторием.
Но пока, до выхода компонента, нужно соблюдать следующие действия:
Скачать ВСЕ обновления в багтрекере, и распаковать их последовательно от более раннего к более позднему.
Только так удастся добиться самых последних версий файлов.
Отличная мысль!
Но пока, до выхода компонента, нужно соблюдать следующие действия:
Скачать ВСЕ обновления в багтрекере, и распаковать их последовательно от более раннего к более позднему.
Только так удастся добиться самых последних версий файлов.
Это конечно хорошо, но как скачать фиксы в правильном порядке?
Заходить в каждую закрытую ветку, проверять ее на наличие "фиксы", смотреть на дату "фиксы" (а если, в день пару фикс было сделано?), сохранять с датой в имени (только сейчас дотянулись руки посмотреть настройки downloadmastera 😊 и включить взятие даты/времени скачиваемого файла, по-умолчанию она оказалась выключенной 😥). Ну тогда вопрос на счет правильности порядка скачивания снимается.
Зато остается вопрос удобства скачивания фикс. Может добавить колонку с ссылкой на скачивание фиксы прямо на главной багтрекера?
Я думаю, это был бы самый быстрый способ дать возможность безошибочно профикситься.Зато остается вопрос удобства скачивания фикс. Может добавить колонку с ссылкой на скачивание фиксы прямо на главной багтрекера?
Это важный вопрос, многие, уверен, испытывают здесь затруднения, поэтому желательно не оттягивать его решение.
Ну и, конечно, полный дистрибутив системы, я думаю, следует обновлять после появления каждой новой правки, отраженной в багтрекере.
Я думаю, это был бы самый быстрый способ дать возможность безошибочно профикситься.Зато остается вопрос удобства скачивания фикс. Может добавить колонку с ссылкой на скачивание фиксы прямо на главной багтрекера?
Это важный вопрос, многие, уверен, испытывают здесь затруднения, поэтому желательно не оттягивать его решение.
Самый быстрый способ мне видится таким:
Сейчас в админке есть ссылка "Проверить наличие обновлений", которая сейчас ничего не делает (по крайней мере у меня выдает ошибку: Не удалось получить данные с сервера обновлений.
Возможно сервер временно недоступен.
Так вот, при клацании на эту ссылку загружается табличка вышедших фиксов и апдейтов с кратким описанием, степенью критичности, чего касается/исправляет и тд и тп. Т.е. тот же самый багтрекер, но в другом измерении.
Далее, есть некий скрипт установки фикс в систему с, возможно автоматическим, созданием бекапов изменяемых файлов (и последующем откате в случае, если что-то пошло не так). Кроме этого, этот установочный скрипт апдейтов проверяет как минимум размер файлов которые собирается заменять и если он соответсвует оригинальному, то обрабатывает его без вопросов. Если же обнаружено несоответствие, то задать вопрос админу на предполагаемые действия, т.е. предполагается, что файл был изменен вручную.
Внесенные апдейты сохраняются в таблице и в последующем уже не попадают в список на установку
Нумерацию фиксов стоит все же сделать не по номеру в багтрекере, а по порядку их создания/применения.
Тогда можно будет сделать здесь же некую систему не позволяющую вносить фиксы в произвольном порядке, а строго по номерам и соответственно, откаты делать последовательно.
Где-то вот такие вот мечты 😊
А было бы здорово иметь такую или подобную систему поддержания icms в актуальном состоянии.
В ближайшем времени выйдет новая версия, в которой все эти патчи будут объединены,
поэтому в любом случае они не пройдут мимо вас.
Виктор, согласен с вами по поводу обновлений. Но очень многие наши пользователи имеют
недорогой хостинг с жесткими ограничениями на внешние соединения из php. Поэтому, если такая система
и будет, то работать будет далеко не везде (как показывают наши тесты). Мы внедрим такую систему,
но немного позже. Вероятнее всего, она появится в параллельной ветке 2.x, которая находится на финальной стадии разработки.
И что значит — "параллельной", они что обе будут развиваться параллельно?
А насчет, ограничений хостингов согласен, но как я понял, если ресурс становится более-менее популярным, то автору поневоле придется переходить на более дорогие тарифные планы (из-за нагрузки создаваемой на сервер), что и решит проблему ограничений. Ну и естественно, этот механизм ни в коей мере не должен отменять возможность ручного обновления, да и не сможет 😊.