Обновление компонента темы через rake не работает

У нас есть компонент темы, который мы устанавливаем через команду rake. Плагин и его установка через команду rake работают идеально. Обновление также проходит успешно, если выполнять его через интерфейс администратора, например, по адресу /admin/customize/themes/40. Проблема возникает, когда мы пытаемся обновить его из командной строки с помощью той же команды rake. Вывод полностью соответствует ожиданиям. Однако изменения не применяются. Похоже ли это на ошибку?

$ rake themes:install -- '--{"discourse-login-modal": {"url": "https://github.com/example/discourse-login-modal.git", "add_to_all_themes": true}}'
discourse-login-modal: уже установлен. Обновление с удалённого репозитория.

Результаты:
 Установлено: 0
 Обновлено:   1
 Ошибок:      0

Предоставляю более подробную информацию о проблеме. Запуск команды rake для обновления не привел к видимым изменениям в компоненте моей темы, однако после этого Административный интерфейс считает, что обновление применено (к сожалению, не удалось сделать скриншот).

После последующего изменения в компоненте моей темы Административный интерфейс теперь показывает, что доступно обновление, но при его применении я получаю предупреждение о том, что локальные изменения будут перезаписаны. Эти изменения — именно те, которые я хотел применить через команду rake install, которая, однако, на самом деле их не применила.


.

Привет, @markvanlan, спасибо за вашу работу над командой rake для установки темы! Не могли бы вы подсказать, почему обновление через rake install не работает?

Я разберусь с этим чуть позже на этой неделе. Я не знал, что команда rake не работает.

Я не мог понять, почему обновление не работает, но придумал обходной путь — добавить команду удаления. Удаление темы перед выполнением команды rake install, похоже, работает.

Я создал короткий PR, чтобы проверить, приемлемо ли продолжать в этом направлении: [WIP] FEATURE: Rake task to uninstall theme by chandandi · Pull Request #10138 · discourse/discourse · GitHub

Приношу извинения за то, что забыл вернуться к этому!

У меня есть предположение, почему это может не обновляться. Если я прав, это должно быть очень быстрое исправление.

Здесь что-то очень странное. Когда ThemesInstallTask обновляет удалённую тему, информация о ней обновляется корректно (показывается последний SHA, и commits_behind равен 0, как вы отметили)

Но SCSS в базе данных не обновляется. Я предполагал, что это проблема с кэшированием, но это не так! SCSS в базе данных не обновляется.


Значение на этом скриншоте должно быть другим

Изучив, как контроллер административной темы обрабатывает обновления по сравнению с тем, как задача обновляет удалённые темы, я не вижу никаких различий.

:male_detective: :mag:

Я разберусь в этой загадке.

Я разобрался с проблемой и создал PR. Описание проблемы находится в описании запроса.

Запрос принят! Обновление исправлено.