Ошибка синтаксиса Ruby 3.2 при стандартной установке

У меня возникла та же ошибка, что и в этом сообщении, при стандартной установке во время обновления через браузер. Ошибка произошла во время операций plugin:pull_compatible_all и multisite:migrate, а не при предварительной компиляции ассетов.

Ошибка:

SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)

Полный лог обновления, скопированный из интерфейса в браузере:

********************************************************
*** Пожалуйста, подождите, следующие шаги могут занять время ***
********************************************************
Перезапуск Unicorn для освобождения памяти
Перезапуск unicorn pid: 559
Ожидание перезагрузки Unicorn.
Ожидание перезагрузки Unicorn..
Ожидание перезагрузки Unicorn...
Ожидание перезагрузки Unicorn....
Ожидание перезагрузки Unicorn.....
Ожидание перезагрузки Unicorn......
Ожидание перезагрузки Unicorn.......
Ожидание перезагрузки Unicorn........
Остановка 1 воркера Unicorn для освобождения памяти
Остановка очереди задач для высвобождения памяти, мастер pid: 15009
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
Используется openssl-signature_algorithm 1.2.1
Используется aws-sigv4 1.5.0
Используется faraday 2.7.2
Используется image_optim 0.31.2
Используется request_store 1.5.1
Используется logstash-logger 0.26.1
Используется message_bus 4.3.1
Используется mini_racer 0.6.3
Используется sidekiq 6.5.8
Используется mini_suffix 0.3.3
Используется oauth-tty 1.0.5
Используется snaky_hash 2.0.1
Используется omniauth 1.9.2
Используется pry 0.14.2
Используется puma 6.0.2
Используется rack-mini-profiler 3.0.0
Используется rack-protection 3.0.5
Используется rbtrace 0.4.14
Используется redis-namespace 1.9.0
Используется rqrcode 2.1.2
Используется rss 0.2.9
Используется sassc 2.0.1
Используется sprockets 3.7.2
Используется uglifier 4.2.0
Используется unf 0.1.4
Используется unicorn 6.1.0
Используется web-push 3.0.0
Используется loofah 2.19.1
Используется net-imap 0.3.1
Используется net-pop 0.1.2
Используется net-smtp 0.3.3
Используется cose 1.3.0
Используется css_parser 1.13.0
Используется ruby-readability 0.7.0
Используется sanitize 6.0.0
Используется ecma-re-validator 0.4.0
Используется activesupport 7.0.4.3
Используется rails-html-sanitizer 1.5.0
Используется globalid 1.0.1
Используется activemodel 7.0.4.3
Используется aws-sdk-core 3.130.2
Используется faraday-retry 2.0.0
Используется json_schemer 0.2.23
Используется mini_scheduler 0.15.0
Используется oauth 1.1.0
Используется oauth2 1.4.11
Используется pry-byebug 3.10.1
Используется pry-rails 0.3.9
Используется rails-dom-testing 2.0.3
Используется actionview 7.0.4.3
Используется activejob 7.0.4.3
Используется active_model_serializers 0.8.4
Используется activerecord 7.0.4.3
Используется aws-sdk-kms 1.56.0
Используется aws-sdk-sns 1.53.0
Используется omniauth-oauth2 1.7.3
Используется omniauth-oauth 1.2.0
Используется actionpack 7.0.4.3
Используется actionview_precompiler 0.2.3
Используется aws-sdk-s3 1.114.0
Используется discourse-seed-fu 2.3.12
Используется omniauth-facebook 9.0.0
Используется omniauth-github 1.4.0
Используется omniauth-google-oauth2 0.8.2
Используется omniauth-twitter 1.4.0
Используется railties 7.0.4.3
Используется sprockets-rails 3.4.2
Используется mail 2.8.0.edge из https://github.com/discourse/mail.git (at main@5b700fc)
Используется lograge 0.12.0
Используется rails_failover 0.8.1
Используется rails_multisite 4.0.1
Используется sassc-rails 2.1.2
Используется actionmailer 7.0.4.3
Установка uri 0.12.2
Используется net-http 0.3.2
Завершено! 135 зависимостей из Gemfile, сейчас установлено 171 gem.
Gems из групп 'test' и 'development' не были установлены.
Установленные gems находятся в `./vendor/bundle`
$ yarn install --production
yarn install v1.22.19
[1/5] Проверка package.json...
[2/5] Разрешение пакетов...
успех Уже актуально.
$ yarn --cwd app/assets/javascripts/discourse $(node -e 'if(JSON.parse(process.env.npm_config_argv).original.includes(`--frozen-lockfile`)){console.log(`--frozen-lockfile`)}')
yarn install v1.22.19
[1/4] Разрешение пакетов...
[2/4] Загрузка пакетов...
[3/4] Связывание зависимостей...
[4/4] Сборка свежих пакетов...
успех Файл блокировки сохранён.
Готово за 8.84с.
Готово за 9.31с.
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
rake aborted!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(См. полный трассировку, запустив задачу с флагом --trace)
Не удалось проверить совместимые версии плагинов
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
rake aborted!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
      download(*, **, print_deprecation: false)
                ^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(См. полный трассировку, запустив задачу с флагом --trace)
Docker Manager: НЕ УДАЛОСЬ ОБНОВИТЬ
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:101:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Запуск 1 остановленного ранее воркера Unicorn

Запуск обновления из консоли (git pull && ./launcher rebuild app, как указано здесь) вызвал другую ошибку, но я не уверен, какое сообщение об ошибке здесь релевантно:

I, [2023-07-04T08:08:49.261121 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
- Сборка
- Сборка
- сборка...
- очистка
- очистка
Ошибка сборки (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]) в @ember/test-helpers/-internal/build-registry.js

[BABEL]: --- ЗАГЛУШКА ---
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в зависимостях (или devDependencies) в файле package.json.
Добавьте "@babel/plugin-proposal-private-property-in-object" в ваши devDependencies, чтобы обойти эту ошибку. Это заставит это сообщение исчезнуть.
 (Во время обработки: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)Ошибка: [BABEL]: --- ЗАГЛУШКА ---
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в зависимостях (или devDependencies) в файле package.json.
Добавьте "@babel/plugin-proposal-private-property-in-object" в ваши devDependencies, чтобы обойти эту ошибку. Это заставит это сообщение исчезнуть.
 (Во время обработки: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object/lib/index.js:28:7)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/available-plugins.js:62:46)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/filter-items.js:11:25)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)
    at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js:16:20)
    at Module._compile (node:internal/modules/cjs/loader:1256:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
    at Module.load (node:internal/modules/cjs/loader:1119:32)
    at Module._load (node:internal/modules/cjs/loader:960:12)
    at Module.require (node:internal/modules/cjs/loader:1143:19)
    at require (node:internal/modules/cjs/helpers:110:18)


Стек ошибок и отчет: /tmp/error.dump.5abe6326cd5a415063a7ad1c85649486.log
ошибка Команда завершилась с кодом выхода 1.
I, [2023-07-04T08:09:05.088181 #1]  INFO -- : Проверка 'Video Upload' для 'default'... актуально
yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
ПРЕДУПРЕЖДЕНИЕ: Node v18.16.1 не протестирован с Ember CLI на вашей платформе. Мы рекомендуем использовать самую свежую версию «Active LTS» Node.js. См. подробности по адресу https://git.io/v7S5n.
Окружение: production
очистка...
информация Посетите https://yarnpkg.com/en/docs/cli/run для документации по этой команде.

I, [2023-07-04T08:09:05.089002 #1]  INFO -- : Завершение асинхронных процессов
I, [2023-07-04T08:09:05.089274 #1]  INFO -- : Отправка INT в HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
103:signal-handler (1688458145) Получен SIGTERM, планирование завершения...
I, [2023-07-04T08:09:05.089522 #1]  INFO -- : Отправка TERM в exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2023-07-04 08:09:05.089 UTC [42] LOG:  получен запрос на быстрое завершение
103:M 04 Jul 2023 08:09:05.183 # Пользователь запросил завершение...
103:M 04 Jul 2023 08:09:05.183 * Сохранение финального снапшота RDB перед выходом.
2023-07-04 08:09:05.186 UTC [42] LOG:  прерывание любых активных транзакций
2023-07-04 08:09:05.190 UTC [42] LOG:  фоновый воркер "logical replication launcher" (PID 51) завершился с кодом выхода 1
2023-07-04 08:09:05.190 UTC [46] LOG:  завершение работы
103:M 04 Jul 2023 08:09:05.388 * БД сохранена на диск
103:M 04 Jul 2023 08:09:05.389 # Redis готов к выходу, пока...
2023-07-04 08:09:05.431 UTC [42] LOG:  система баз данных завершена


НЕ УДАЛОСЬ
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' завершилась с ошибкой, код возврата #<Process::Status: pid 2323 exit 1>
Место ошибки: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и поищите предыдущие сообщения об ошибках, их может быть больше одной.
./discourse-doctor может помочь в диагностике проблемы.
f1dc57af807a68bb877ce724ea4a3424c77d39250b8ee20cb022194938925ce8

Я откатился к коммиту, который был до git pull (cdc5f905a2f245171b9f53fb76f4ba947389fc6b), и снова выполнил сборку, но получил ту же ошибку.

Я попробовал ./discourse-doctor, и он также завершался ошибкой из-за той же ошибки Babel. Он сообщил, что установка использует неофициальные плагины, и предложил их отключить, но как это сделать без работающего приложения? Все плагины были установлены через интерфейс браузера, а не в app.yaml.

При перезапуске приложения в браузере появляется ошибка Oops - Error 500. При входе в приложение, в /var/www/discourse/log/production.log отображается та же ошибка синтаксиса, и версия Ruby действительно 3.1 (ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]).

Форум сейчас неработоспособен. Как мне исправить версию Ruby? Или пересобрать приложение? Или откатиться к рабочей версии?

Мой app.yml без комментариев и с замазанными идентификаторами:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.ratelimited.template.yml"

expose:
  - "80:80"
  - "443:443"
  - "2222:22"

params:
  db_default_text_search_config: "pg_catalog.english"
  db_shared_buffers: "128MB"
  version: stable

env:
  LANG: en_US.UTF-8
  UNICORN_WORKERS: 2
  DISCOURSE_DEVELOPER_EMAILS: 'redacted'
  DISCOURSE_HOSTNAME: 'redacted'
  DISCOURSE_SMTP_ADDRESS: "redacted"
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: "redacted"
  DISCOURSE_SMTP_PASSWORD: "redacted"
  DISCOURSE_SMTP_ENABLE_START_TLS: true
  LETSENCRYPT_ACCOUNT_EMAIL: "redacted"
  DISCOURSE_MAXMIND_LICENSE_KEY: "redacted"
  DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 0

volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - mkdir -p plugins
          - git clone https://github.com/discourse/docker_manager.git

run:
  - exec: echo "Начало пользовательских команд"

  - exec: echo "Конец пользовательских команд"
  - exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Авторизованные SSH-ключи для этого контейнера:"; } NF>=2 {print $NF;}'
1 лайк

В США сегодня государственный праздник, так что сейчас не самое удачное время для возникновения проблем… Пожалуйста, покажите вывод команды discourse-doctor.

Я подозреваю, что, возможно, docker-manager не обновился, но с не меньшей вероятностью вам действительно нужно отключить плагины. К сожалению, я не знаю, как это сделать, так как ваш app.yml, похоже, не содержит никаких плагинов, кроме docker_manager.

1 лайк

Возможно, это ошибка в вашей теме.

Запустится ли ваш сайт с помощью команды

./launcher start app?

1 лайк

В обновлении произошла ошибка

api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Пожалуйста, помогите мне это исправить.В моем обновлении произошла ошибка

api_key = "a quick brown fox"
fetch("https://api.example.com/data", headers: { 'Authorization' => api_key })

Пожалуйста, помогите мне это исправить.

I, [2023-07-04T08:37:51.481286 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle install --retry 3 --jobs 4’
I, [2023-07-04T08:40:20.584190 #1] INFO – : Загрузка метаданных gem с https://rubygems.org/
Загрузка GitHub - discourse/mail: A Really Ruby Mail Library · GitHub
Используется rake 13.0.6
Загрузка concurrent-ruby 1.1.10
Загрузка minitest 5.17.0
Используется builder 3.2.4
Используется racc 1.6.2
Загрузка erubi 1.11.0
Используется crass 1.0.6
Загрузка rack 2.2.5
Установка erubi 1.11.0
Установка minitest 5.17.0
Установка rack 2.2.5
Используется mini_mime 1.1.2
Используется timeout 0.3.1
Используется public_suffix 5.0.1
Используется aws-eventstream 1.2.0
Используется aws-partitions 1.583.0
Используется jmespath 1.6.2
Загрузка msgpack 1.6.0
Используется bundler 2.4.1
Используется byebug 11.1.3
Используется cbor 0.5.9.6
Используется cgi 0.3.6
Используется chunky_png 1.4.0
Используется coderay 1.1.3
Используется colored2 3.1.2
Загрузка connection_pool 2.3.0
Установка concurrent-ruby 1.1.10
Установка msgpack 1.6.0 с нативными расширениями
Установка connection_pool 2.3.0
Загрузка openssl 3.0.2
Установка openssl 3.0.2 с нативными расширениями
Используется cppjieba_rb 0.4.2
Используется diffy 3.4.2
Используется digest 3.1.1
Используется discourse-fonts 0.0.9
Загрузка regexp_parser 2.6.1
Установка regexp_parser 2.6.1
Используется email_reply_trimmer 0.1.13
Загрузка excon 0.96.0
Используется execjs 2.8.1
Загрузка exifr 1.3.10
Установка exifr 1.3.10
Установка excon 0.96.0
Используется faraday-net_http 3.0.2
Используется ruby2_keywords 0.0.5
Используется fast_blank 1.0.1
Используется fast_xs 0.8.0
Загрузка fastimage 2.2.6
Используется ffi 1.15.5
Установка fastimage 2.2.6
Используется fspath 3.1.2
Используется gc_tracer 1.5.1
Используется guess_html_encoding 0.0.11
Используется hana 1.3.7
Используется hashie 5.0.0
Используется highline 2.1.0
Используется hkdf 1.0.0
Используется http_accept_language 2.1.1
Загрузка image_size 3.2.0
Используется htmlentities 4.3.4
Используется in_threads 1.6.0
Используется progress 3.6.0
Используется json 2.6.3
Загрузка uri_template 0.7.0
Установка uri_template 0.7.0
Установка image_size 3.2.0
Загрузка jwt 2.6.0
Установка jwt 2.6.0
Используется kgio 2.11.4
Загрузка libv8-node 16.10.0.0 (x86_64-linux)
Используется method_source 1.0.0
Загрузка thor 1.2.1
Установка thor 1.2.1
Загрузка zeitwerk 2.6.6
Установка zeitwerk 2.6.6
Используется logstash-event 1.2.02
Загрузка logster 2.11.3
Установка logster 2.11.3
Используется lru_redux 1.1.0
Используется lz4-ruby 0.3.3
Используется maxminddb 0.1.22
Используется memory_profiler 1.0.1
Загрузка redis 4.8.0
Установка redis 4.8.0
Используется mini_sql 1.4.0
Используется multi_json 1.15.0
Используется multi_xml 0.6.0
Используется mustache 1.1.1
Используется uri 0.12.2
Загрузка nio4r 2.5.8
Установка nio4r 2.5.8 с нативными расширениями
Установка libv8-node 16.10.0.0 (x86_64-linux)
Загрузка version_gem 1.1.1
Установка version_gem 1.1.1
Загрузка oj 3.13.14
Установка oj 3.13.14 с нативными расширениями
Используется optimist 3.0.1
Загрузка pg 1.4.5
Установка pg 1.4.5 с нативными расширениями
Загрузка r2 0.2.7
Установка r2 0.2.7
Загрузка raindrops 0.20.0
Установка raindrops 0.20.0 с нативными расширениями
Используется rchardet 1.8.0
Используется rexml 3.2.5
Используется rinku 2.0.6
Используется rotp 6.2.2
Используется rqrcode_core 1.2.0
Используется rubyzip 2.3.2
Загрузка tilt 2.0.11
Установка tilt 2.0.11
Используется sshkey 2.0.0
Загрузка stackprof 0.2.23
Установка stackprof 0.2.23 с нативными расширениями
Используется unf_ext 0.0.8.2
Используется webrick 1.7.0
Загрузка xorcist 1.1.3
Установка xorcist 1.1.3 с нативными расширениями
Загрузка nokogiri 1.14.2 (x86_64-linux)
Установка nokogiri 1.14.2 (x86_64-linux)
Используется mail 2.8.0.edge из GitHub - discourse/mail: A Really Ruby Mail Library · GitHub (на main@5b700fc)
Используется net-protocol 0.2.1
Загрузка addressable 2.8.1
Установка addressable 2.8.1
Используется aws-sigv4 1.5.0
Загрузка rack-test 2.0.2
Установка rack-test 2.0.2
Используется request_store 1.5.1
Загрузка message_bus 4.3.1
Установка message_bus 4.3.1
Загрузка rack-mini-profiler 3.0.0
Установка rack-mini-profiler 3.0.0
Загрузка rack-protection 3.0.5
Установка rack-protection 3.0.5
Загрузка i18n 1.12.0
Установка i18n 1.12.0
Загрузка tzinfo 2.0.5
Установка tzinfo 2.0.5
Загрузка sprockets 3.7.2
Установка sprockets 3.7.2
Загрузка ecma-re-validator 0.4.0
Установка ecma-re-validator 0.4.0
Используется uglifier 4.2.0
Загрузка faraday 2.7.2
Установка faraday 2.7.2
Используется mini_suffix 0.3.3
Загрузка sassc 2.0.1
Установка sassc 2.0.1 с нативными расширениями
Используется omniauth 1.9.2
Загрузка image_optim 0.31.2
Установка image_optim 0.31.2
Используется pry 0.14.2
Используется logstash-logger 0.26.1
Загрузка sidekiq 6.5.8
Установка sidekiq 6.5.8
Загрузка redis-namespace 1.9.0
Установка redis-namespace 1.9.0
Используется net-http 0.3.2
Загрузка mini_racer 0.6.3
Установка mini_racer 0.6.3 с нативными расширениями
Используется oauth-tty 1.0.5
Используется snaky_hash 2.0.1
Загрузка bootsnap 1.15.0
Установка bootsnap 1.15.0 с нативными расширениями
Используется rbtrace 0.4.14
Загрузка puma 6.0.2
Установка puma 6.0.2 с нативными расширениями
Загрузка rqrcode 2.1.2
Установка rqrcode 2.1.2
Используется rss 0.2.9
Используется unf 0.1.4
Загрузка loofah 2.19.1
Установка loofah 2.19.1
Используется ruby-readability 0.7.0
Загрузка sanitize 6.0.0
Установка sanitize 6.0.0
Загрузка net-imap 0.3.1
Установка net-imap 0.3.1
Используется net-pop 0.1.2
Используется net-smtp 0.3.3
Загрузка css_parser 1.13.0
Установка css_parser 1.13.0
Используется aws-sdk-core 3.130.2
Загрузка activesupport 7.0.4.3
Установка activesupport 7.0.4.3
Загрузка json_schemer 0.2.23
Установка json_schemer 0.2.23
Загрузка faraday-retry 2.0.0
Установка faraday-retry 2.0.0
Используется oauth2 1.4.11
Используется pry-byebug 3.10.1
Используется pry-rails 0.3.9
Загрузка mini_scheduler 0.15.0
Установка mini_scheduler 0.15.0
Используется unicorn 6.1.0
Используется oauth 1.1.0
Загрузка rails-html-sanitizer 1.5.0
Установка rails-html-sanitizer 1.5.0
Используется aws-sdk-kms 1.56.0
Используется aws-sdk-sns 1.53.0
Загрузка rails-dom-testing 2.0.3
Установка rails-dom-testing 2.0.3
Загрузка globalid 1.0.1
Установка globalid 1.0.1
Загрузка activemodel 7.0.4.3
Установка activemodel 7.0.4.3
Используется omniauth-oauth2 1.7.3
Используется omniauth-oauth 1.2.0
Используется aws-sdk-s3 1.114.0
Загрузка actionview 7.0.4.3
Установка actionview 7.0.4.3
Загрузка activejob 7.0.4.3
Установка activejob 7.0.4.3
Используется active_model_serializers 0.8.4
Загрузка activerecord 7.0.4.3
Установка activerecord 7.0.4.3
Используется omniauth-facebook 9.0.0
Используется omniauth-github 1.4.0
Используется omniauth-google-oauth2 0.8.2
Используется omniauth-twitter 1.4.0
Загрузка actionpack 7.0.4.3
Установка actionpack 7.0.4.3
Используется actionview_precompiler 0.2.3
Используется discourse-seed-fu 2.3.12
Загрузка actionmailer 7.0.4.3
Установка actionmailer 7.0.4.3
Загрузка railties 7.0.4.3
Установка railties 7.0.4.3
Используется sprockets-rails 3.4.2
Используется lograge 0.12.0
Загрузка rails_failover 0.8.1
Загрузка rails_multisite 4.0.1
Установка rails_multisite 4.0.1
Установка rails_failover 0.8.1
Загрузка openssl-signature_algorithm 1.2.1
Используется web-push 3.0.0
Установка openssl-signature_algorithm 1.2.1
Используется cose 1.3.0
Загрузка sassc-rails 2.1.2
Установка sassc-rails 2.1.2
Сборка завершена! 135 зависимостей Gemfile, 171 gem теперь установлены.
Gems в группах ‘development’ и ‘test’ не были установлены.
Собранные gems установлены в ./vendor/bundle
Сообщение после установки от image_optim:
Оптимизация изображений для Rails вынесена в gem image_optim_rails
Вы можете безопасно удалить config.assets.image_optim = false, если не планируете использовать этот gem

I, [2023-07-04T08:40:20.585621 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all’
I, [2023-07-04T08:40:24.327439 #1] INFO – : проверка совместимой версии docker_manager: 1b2d7eb0369155b6442b09adfb17b8942c04b093
HEAD теперь указывает на 1b2d7eb Bump minimal versions

I, [2023-07-04T08:40:24.327817 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake db:migrate’
102:M 04 Jul 2023 08:40:28.803 * 100 изменений за 300 секунд. Сохранение…
102:M 04 Jul 2023 08:40:28.804 * Фоновое сохранение запущено процессом 2319
2319:C 04 Jul 2023 08:40:29.127 * БД сохранена на диске
2319:C 04 Jul 2023 08:40:29.128 * Fork CoW для RDB: текущий 1 МБ, пиковый 1 МБ, средний 1 МБ
102:M 04 Jul 2023 08:40:29.210 * Фоновое сохранение завершено успешно
I, [2023-07-04T08:40:29.966284 #1] INFO – :
I, [2023-07-04T08:40:29.967083 #1] INFO – : > cd /var/www/discourse && su discourse -c ‘bundle exec rake themes:update assets:precompile’

  • Сборка
  • Сборка
  • сборка…
  • очистка
  • очистка
    Ошибка сборки (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]) в @ember/test-helpers/-internal/build-registry.js

[BABEL]: — ЗАГЛУШКА ПАКЕТА —
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена
для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в своих
зависимостях (или devDependencies) в файле package.json.
Добавьте “@babel/plugin-proposal-private-property-in-object” в devDependencies,
чтобы обойти эту ошибку. Это уберет данное сообщение.
(При обработке: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)Ошибка: [BABEL]: — ЗАГЛУШКА ПАКЕТА —
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена
для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в своих
зависимостях (или devDependencies) в файле package.json.
Добавьте “@babel/plugin-proposal-private-property-in-object” в devDependencies,
чтобы обойти эту ошибку. Это уберет данное сообщение.
(При обработке: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
at Object. (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object/lib/index.js:28:7)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object. (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/available-plugins.js:62:46)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object. (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/filter-items.js:11:25)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object. (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js:16:20)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)

Стек вызовов и отчет об ошибке: /tmp/error.dump.62bb2ff34bdbec58308fd7d5b2fab0f6.log
error Команда завершилась с кодом выхода 1.
I, [2023-07-04T08:40:44.826892 #1] INFO – : Проверка ‘Video Upload’ для ‘default’… актуально
yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
ПРЕДУПРЕЖДЕНИЕ: Node v18.16.1 не тестировался с Ember CLI на вашей платформе. Мы рекомендуем использовать самую последнюю версию “Active LTS” Node.js. Подробнее см. ember-cli/docs/node-support.md at master · ember-cli/ember-cli · GitHub
Среда: production
очистка…
info Посетите yarn run | Yarn для документации по этой команде.

I, [2023-07-04T08:40:44.827572 #1] INFO – : Завершение асинхронных процессов
I, [2023-07-04T08:40:44.827621 #1] INFO – : Отправка INT в HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 41
I, [2023-07-04T08:40:44.827734 #1] INFO – : Отправка TERM в exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 102
102:signal-handler (1688460044) Получен SIGTERM, планирование завершения…
2023-07-04 08:40:44.827 UTC [41] LOG: получен запрос на быстрое завершение
102:M 04 Jul 2023 08:40:44.856 # Пользователь запросил завершение…
102:M 04 Jul 2023 08:40:44.856 * Сохранение финального снимка RDB перед выходом.
2023-07-04 08:40:44.883 UTC [41] LOG: прерывание любых активных транзакций
2023-07-04 08:40:44.886 UTC [41] LOG: фоновый рабочий процесс “logical replication launcher” (PID 50) завершился с кодом 1
2023-07-04 08:40:44.887 UTC [45] LOG: завершение работы
102:M 04 Jul 2023 08:40:44.978 * БД сохранена на диске
102:M 04 Jul 2023 08:40:44.978 # Redis готов к выходу, пока-пока…
2023-07-04 08:40:45.023 UTC [41] LOG: система БД выключена

НЕУДАЧА

Pups::ExecError: cd /var/www/discourse && su discourse -c ‘bundle exec rake themes:update assets:precompile’ завершился с кодом #<Process::Status: pid 2320 exit 1>
Место сбоя: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn’
exec завершился с параметрами {“cd”=>“$home”, “hook”=>“assets_precompile”, “cmd”=>[“su discourse -c ‘bundle exec rake themes:update assets:precompile’”]}
bootstrap завершился с кодом выхода 1
** СБОЙ ЗАГРУЗКИ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.
64eb105c2de1517c880ea75102bf870c657542c35141dbec0fca357d33911198
==================== КОНЕЦ ЖУРНАЛА ПЕРЕСБОРКИ ====================
Не удалось пересобрать приложение.

Проверка вашего доменного имени . . .

Соединение с redacted успешно.
Вам, вероятно, следует удалить любые нестандартные плагины и пересобрать.
Попытка перезапуска существующего контейнера. . .
Обнаружена архитектура x86_64.

запуск существующего контейнера

  • /usr/bin/docker start app
    Ошибка от демона: драйвер не смог настроить внешнюю связь для конечной точки app (dc0e7be2e9a1b8644d73adf1e327236bdb49650ec05388fa81eb665e1ac1316f): Ошибка запуска пользовательского прокси: прослушивание tcp 0.0.0.0:443: прослушивание: адрес уже занят
    Ошибка: не удалось запустить контейнеры: app
    Не удалось перезапустить контейнер.

==================== ПЛАГИНЫ ====================
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub

Нестандартные плагины не обнаружены.

См. официальный список по адресу discourse/lib/plugin/metadata.rb at main · discourse/discourse · GitHub

========================================

Версия Discourse на redacted: НЕ НАЙДЕНА
Версия Discourse на localhost: НЕ НАЙДЕНА

==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================
ОЗУ (МБ): 3084

          всего        использовано  свободно  совместно  буфер/кэш  доступно

Память: 3012 416 1648 6 947 2401
Своп: 511 117 394

==================== ПРОВЕРКА МЕСТА НА ДИСКЕ ====================
---------- Место на диске ОС ----------
Файловая система Размер Использовано Доступно %Исп Монтировано в
/dev/vda1 26G 20G 5.1G 80% /

==================== ИНФОРМАЦИЯ О ДИСКЕ ====================
Диск /dev/vda: 26 GiB, 27917287424 байт, 54525952 сектора
Единицы: сектора по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: dos
Идентификатор диска: 0xf849ba6e

Устройство Загрузочный Начало Конец Сектора Размер Id Тип
/dev/vda1 2048 54525951 54523904 26G 83 Linux

==================== КОНЕЦ ИНФОРМАЦИИ О ДИСКЕ ====================

==================== ТЕСТ ПОЧТЫ ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Или просто отправьте тестовое сообщение себе.
Адрес электронной почты для теста почты? (‘n’ для пропуска) [redacted]: Отправка письма на redacted. . .
Ошибка от демона: Контейнер 91601890406d42c06076f4468dfcc196af018179f6bc970a6983feb296ef00c5 не запущен

Замена: SMTP_PASSWORD
Замена: LETSENCRYPT_ACCOUNT_EMAIL
Замена: DEVELOPER_EMAILS
Замена: DISCOURSE_DB_PASSWORD
Замена: Отправка письма на

==================== ГОТОВО! ====================


[quote="Jay Pfaffman, post:3, topic:270491, username:pfaffman"]
Возможно, это ошибка в вашей теме.
[/quote]

У меня только тема по умолчанию (кажется, она странно называется "Migrated from Site Text" и была создана `system`) с 3 дополнительными компонентами (`Disco TOC`, `Sick - Gallery Component` и `Video Upload`). Я попробовал отключить эти компоненты и пересобрать, но получил ту же ошибку.

[quote="Jay Pfaffman, post:3, topic:270491, username:pfaffman"]
Будет ли

`./launcher start app`

запускать ваш сайт?
[/quote]

До моего изменения в `base_store.rb` оно запускало приложение, но доступ к форуму из браузера приводил к ошибке Oops 500, с синтаксической ошибкой в журнале.

С изменением в `base_store.rb` форум, кажется, работает нормально. Я просто не могу его пересобрать. На панели управления указано, что у меня последняя версия: 3.0.4 (cec7c05dae). И когда я нажимаю на ссылку обновления, оно говорит, что я должен обновиться через ssh. Мой `/var/discourse` находится на коммите `984d5495edfa8af028ab6809407af817d555125c`, который, кажется, является самым последним, так что, вероятно, оно просто говорит это, потому что приложение не было пересобрано на этом коммите.

Из любопытства, как вы устанавливаете плагины через интерфейс браузера?

1 лайк

Кажется, я перепутал плагины и компоненты темы. Через интерфейс браузера были установлены только компоненты темы.

2 лайка

Ах — это, думаю, немного меняет дело по сравнению с обычным, так как почти все установки проходят тесты. См. Почему Discourse по умолчанию всегда устанавливает «бета-версии»?

2 лайка

Спасибо за сообщение об ошибке, @sigmike. Проблема с версией Ruby будет исправлена после пересборки, поэтому наша главная задача сейчас — обеспечить успешное завершение пересборки.

Мне удалось воспроизвести Build Error на чистой установке из ветки stable. Похоже, что yarn (наш менеджер пакетов для JS) некорректно понижает версии пакетов в рабочем пространстве с предустановленных 'tests-passed' до версий, требуемых веткой stable.

В среднесрочной перспективе мы планируем отказаться от использования yarn в качестве менеджера пакетов. Поэтому на данный момент я добавил обходное решение в процесс сборки, которое сбрасывает директорию node_modules при пересборке для установок, не помеченных как tests-passed. Если вы попробуете выполнить пересборку снова, всё должно работать значительно лучше.

Дайте знать, как всё получится!

9 лайков

Это устранило проблему с пересборкой, спасибо.

Похоже, что версия test-passed на самом деле более проверена в реальных условиях, и пересборки будут также быстрее, поэтому я, вероятно, перейду на неё. Однако сайт работает на stable с 2016 года без проблем.

5 лайков

На мой взгляд, в стабильной версии должно быть возможно использовать одно и то же базовое изображение на протяжении всего цикла выпуска. Это первый раз, когда это стало невозможно (из-за той единственной строки, которая требует Ruby 3.2).

1 лайк

К сожалению, мы не можем оставлять базовое изображение неизменным в течение 6–12 месяцев. Пакеты, установленные в образе Docker, получают обновления безопасности, и мы должны обеспечивать их распространение среди пользователей стабильной ветки.

В данном случае у нас был выбор: создать и поддерживать полностью отдельный образ «Ruby 3.1» для стабильной ветки или выполнить обратную портировку небольших изменений, чтобы стабильная ветка работала на последнем образе. Мы выбрали второй вариант, так как это требует меньше усилий и сопряжено с меньшим риском. Это означает, что все используют один и тот же образ, который мы тщательно тестируем и развертываем на нашем хостинге.

6 лайков