Кажется, это больше-меньше какая-то ошибка, но в любом случае. Несколько минут назад пересборка не удалась. Без Discourse AI она прошла успешно.
Это был первый странный момент, но я не думаю, что это имеет значение.
I, [2025-01-21T10:15:39.800894 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle install --jobs $(($(nproc) - 1)) --retry 3'
WARN: Unresolved or ambiguous specs during Gem::Specification.reset:
stringio (>= 0)
Available/installed versions of this gem:
- 3.1.2
- 3.1.1
WARN: Clearing out unresolved specs. Try 'gem cleanup <gem>'
Please report a bug if this causes problems.
А вот здесь начинается самое интересное.
I, [2025-01-21T10:16:08.572988 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
Plugin name is 'discourse-microsoft-auth', but plugin directory is named 'discourse-plugin-office365-auth'
rake aborted!
ActiveRecord::DuplicateMigrationNameError: (ActiveRecord::DuplicateMigrationNameError)
Multiple migrations have the name EnablePgVectorExtension.
И наконец, вот эта менее информативная часть:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 990 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
bootstrap failed with exit code 1
Теперь работа выполнена. Я понимаю, почему всё устроено именно так, но нам нужен другой способ борьбы с плагинами. Конечно, разные контейнеры, но…
В любом случае. Это конфликт между Discourse AI, после внедрения системы квот, и Discourse AI Topic Summary 🤖 — при пересборке один из них должен быть отключён.
Поэтому я оставляю вас обсуждать с @merefield, кто что будет делать.
Отлично! Для информации: это точно моя вина, а не DAI.
Я выпустил рефакторинг AI Topic Summary непосредственно перед этим, что, по иронии судьбы, мало связано с той миграцией — я просто объединил их в один релиз. Этот релиз добавил корректную CI и соответствие Zeitwerk.