Создание отдельных тем для повторяющихся событий

Пока не видно какого-либо дальнейшего прогресса по PR:

Я по-прежнему надеюсь, что эта функциональность будет реализована в встроенном плагине Events, а не потребует отдельного обслуживания.

Этот прошлый опыт также заставляет меня немного осторожничать с тем, чтобы поддерживать это локально в течение длительного времени.

В моём собственном self-host я уже использую хук after_code для небольшого бэкпорта из PR upstream. Сначала хук проверяет маркеры, показывающие, что функциональность уже появилась в upstream. Если её нет, он скачивает патч для известного коммита, выполняет git apply --check и только затем применяет его с помощью git apply.

Это работает достаточно хорошо, пока патч продолжает соответствовать ядру, но у меня уже была ситуация, когда более ранняя версия этого бэкпорта перестала применяться по мере развития ядра. Тогда сборка завершилась ошибкой, и контейнер оставался офлайн, пока я не удалил хук.

Для этого конкретного изменения, если мне понадобится временный запасной вариант, я, вероятно, предоставлю бэкпорт через after_code тем же способом, а не упаковывал бы его как отдельный плагин.

Причина в том, что #43187 уже модифицирует собственный серверный путь планового переноса (rollover) во встроенном плагине Events. Хук after_code может применить практически тот же самый патч из upstream непосредственно во время пересборки. Отдельный плагин потребовал бы воссоздать эту интеграцию через точку расширения или иным образом переопределить/подменить внутреннее поведение MonitorEventDates, что добавит ещё один слой и может оказаться таким же хрупким.

Недостаток подхода с after_code заключается в том, что он по-прежнему привязан к точной структуре кода upstream. Поскольку поведение темы-преемника затрагивает MonitorEventDates, тот же самый патч для фиксированного коммита может продолжать использоваться, пока git apply --check успешен. Если upstream достаточно изменит этот код, и контекст патча перестанет совпадать, мне придётся перебазить или адаптировать изменения под текущий main, создать новый коммит и обновить хук, чтобы использовать этот новый SHA коммита.

Таким образом, моё предпочтение остаётся прежним:

  • слить функциональность темы-преемника во встроенный плагин Events; или
  • если команда предпочитает, чтобы это поведение оставалось внешним, предоставить поддерживаемый хук вокруг переноса (rollover) повторяющихся событий.

До тех пор, пока этого не произойдёт, патч через after_code будет практичным временным решением для self-host, но я не считаю его идеальным механизмом долгосрочного распространения.

3 лайка