Reconstrucción de la aplicación abortada debido a un plugin de asistente personalizado

una reconstrucción con la última versión se aborta con un error de FileNotFound:

...
I, [2021-12-01T07:30:27.434946 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/es-ae86f17b3afa4050566e8f73dc225848cb65e80cad4c295b582952dc77c7eaa0.js
I, [2021-12-01T07:30:27.614232 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/lv-9f2031c47ff7c4c4148613ed46bcc80db9f17d84b72a0c08fb5dbaf288008aad.js
I, [2021-12-01T07:30:27.822346 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/el-3c850821550e0cc516515732b7cde8b35cc68c29296abbc39a1c2831ad6ba962.js
I, [2021-12-01T07:30:28.032559 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/pl_PL-a4a808930b95183b4acb3fec1e8e3e1591cade54f05d4f943585be78e8eb82e5.js
I, [2021-12-01T07:30:28.241255 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/nb_NO-194012fc110e9b92bd6f406ed2a9eebff3e6dda2ad0bd4b33dfa084b0efb6b67.js
I, [2021-12-01T07:30:28.440104 #670]  INFO -- : Writing /var/www/discourse/public/assets/locales/nl-0bdaabfc71e0a96fef67da00c68f177c508da66854fab7511225dfd11d754aab.js
I, [2021-12-01T07:30:28.448192 #670]  INFO -- : Writing /var/www/discourse/public/assets/wizard-custom-guest-16c07e21721b356a3cf622bc07b3dbee79d53c0624b57562959140418b62a454.js
I, [2021-12-01T07:30:28.455716 #670]  INFO -- : Writing /var/www/discourse/public/assets/wizard-custom-globals-ceb8c5478df3f5ede82d275c13b9badd66fdce63559117914170ea33ab0ee3ba.js
rake aborted!
Sprockets::FileNotFound: no se pudo encontrar el archivo 'discourse/app/mixins/composer-upload' con el tipo 'application/javascript'
Buscado en estas rutas:
  /var/www/discourse/app/assets/images
  /var/www/discourse/app/assets/javascripts
  /var/www/discourse/app/assets/stylesheets
  /var/www/discourse/vendor/assets/javascripts
  /var/www/discourse/vendor/assets/svg-icons
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/logster-2.10.0/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.6/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/lib/assets/compiled
  /var/www/discourse/config/locales
  /var/www/discourse/public/javascripts
...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' falló con el retorno #<Process::Status: pid 668 exit 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec falló con los parámetros {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
f094a27a808540af5c9dd844181fe50f8933cb184b8adf614dee1ecf669fd9cd
** FALLÓ EL ARRANQUE ** por favor desplázate hacia arriba y busca mensajes de error anteriores, puede haber más de uno.
./discourse-doctor puede ayudar a diagnosticar el problema.
==================== FIN DEL REGISTRO DE RECOMPILACIÓN ====================
No se pudo reconstruir la aplicación.

¿Tienes el plugin de asistente personalizado? ¿O algún otro plugin no estándar? Supongo que es un problema con Una nueva era para las cargas de archivos en Discourse.

sí, y sí, varios, solo los estoy revisando uno por uno.
Cuando los deshabilité todos, la reconstrucción funcionó.

Lo he reducido, el problema es el plugin del asistente personalizado.
Moveré este hilo a la categoría de plugins.

@angus para tu información, también creé un problema en GitHub.

Esto se ha corregido. Por favor, actualiza a la última versión del plugin (1.15.5).

muchas gracias por la rápida solución.
Acabo de realizar con éxito la reconstrucción con la nueva versión del plugin.

Estoy viendo un error que parece muy similar al intentar compilar la versión 2.8.0.beta10 con la última versión de discourse-custom-wizard, durante la ejecución de bundle exec rake themes:update assets:precompile, y no sé si se trata realmente de otra manifestación del mismo problema.

Sprockets::FileNotFound: no se pudo encontrar el archivo 'discourse/app/mixins/upload' con tipo 'application/javascript'

Puedo compilar con éxito eliminando discourse-custom-wizard de la lista de plugins. La lista completa con la que estoy intentando compilar (./launcher bootstrap app) es:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-canned-replies.git
          - git clone https://github.com/discourse/discourse-tooltips.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-assign
          - git clone https://github.com/gdpelican/retort.git
          - git clone https://github.com/discourse/discourse-checklist
          - git clone https://github.com/discourse/discourse-sitemap
          - git clone https://github.com/discourse/discourse-bcc
          - git clone https://github.com/discourse/discourse-math
          - git clone https://github.com/Ebsy/discourse-nationalflags.git
          - git clone https://github.com/discourse/discourse-voting.git
          - git clone https://github.com/cpradio/discourse-plugin-composer-help-button.git
          - git clone https://github.com/paviliondev/discourse-custom-wizard.git

Compila correctamente con esa última línea comentada, pero falla repetidamente cuando intento compilar con ella incluida.

El error más detallado:

I, [2021-12-22T02:29:00.989134 #4965]  INFO -- : Escribiendo /var/www/discourse/public/assets/wizard-custom-globals-ceb8c5478df3f5ede82d275c13b9badd66fdce63559117914170ea33ab0ee3ba.js
rake aborted!
Sprockets::FileNotFound: no se pudo encontrar el archivo 'discourse/app/mixins/upload' con tipo 'application/javascript'
Rutas verificadas: 
  /var/www/discourse/app/assets/images
  /var/www/discourse/app/assets/javascripts
  /var/www/discourse/app/assets/stylesheets
  /var/www/discourse/vendor/assets/javascripts
  /var/www/discourse/vendor/assets/svg-icons
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/logster-2.10.1/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/message_bus-3.3.8/vendor/assets/javascripts
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/actionview-6.1.4.1/lib/assets/compiled
  /var/www/discourse/config/locales
  /var/www/discourse/public/javascripts
  /var/www/discourse/plugins/discourse-assign/auto_generated
  /var/www/discourse/plugins/discourse-assign/assets
  /var/www/discourse/plugins/discourse-assign/admin/assets
  /var/www/discourse/plugins/discourse-assign/test/javascripts
  /var/www/discourse/plugins/discourse-bcc/auto_generated
  /var/www/discourse/plugins/discourse-bcc/assets
  /var/www/discourse/plugins/discourse-bcc/admin/assets
  /var/www/discourse/plugins/discourse-bcc/test/javascripts
  /var/www/discourse/plugins/discourse-canned-replies/auto_generated
  /var/www/discourse/plugins/discourse-canned-replies/assets
  /var/www/discourse/plugins/discourse-canned-replies/admin/assets
  /var/www/discourse/plugins/discourse-canned-replies/test/javascripts
  /var/www/discourse/plugins/discourse-checklist/auto_generated
  /var/www/discourse/plugins/discourse-checklist/assets
  /var/www/discourse/plugins/discourse-checklist/admin/assets
  /var/www/discourse/plugins/discourse-checklist/test/javascripts
  /var/www/discourse/plugins/discourse-custom-wizard/assets/javascripts
  /var/www/discourse/plugins/discourse-custom-wizard/assets/stylesheets/wizard
  /var/www/discourse/plugins/discourse-custom-wizard/auto_generated
  /var/www/discourse/plugins/discourse-custom-wizard/assets
  /var/www/discourse/plugins/discourse-custom-wizard/admin/assets
  /var/www/discourse/plugins/discourse-custom-wizard/test/javascripts
  /var/www/discourse/plugins/discourse-data-explorer/auto_generated
  /var/www/discourse/plugins/discourse-data-explorer/assets
  /var/www/discourse/plugins/discourse-data-explorer/admin/assets
  /var/www/discourse/plugins/discourse-data-explorer/test/javascripts
  /var/www/discourse/plugins/discourse-details/auto_generated
  /var/www/discourse/plugins/discourse-details/assets
  /var/www/discourse/plugins/discourse-details/admin/assets
  /var/www/discourse/plugins/discourse-details/test/javascripts
  /var/www/discourse/plugins/discourse-local-dates/auto_generated
  /var/www/discourse/plugins/discourse-local-dates/assets
  /var/www/discourse/plugins/discourse-local-dates/admin/assets
  /var/www/discourse/plugins/discourse-local-dates/test/javascripts
  /var/www/discourse/plugins/discourse-math/auto_generated
  /var/www/discourse/plugins/discourse-math/assets
  /var/www/discourse/plugins/discourse-math/admin/assets
  /var/www/discourse/plugins/discourse-math/test/javascripts
  /var/www/discourse/plugins/discourse-narrative-bot/auto_generated
  /var/www/discourse/plugins/discourse-narrative-bot/assets
  /var/www/discourse/plugins/discourse-narrative-bot/admin/assets
  /var/www/discourse/plugins/discourse-narrative-bot/test/javascripts
  /var/www/discourse/plugins/discourse-nationalflags/auto_generated
  /var/www/discourse/plugins/discourse-nationalflags/assets
  /var/www/discourse/plugins/discourse-nationalflags/admin/assets
  /var/www/discourse/plugins/discourse-nationalflags/test/javascripts
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/auto_generated
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/assets
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/admin/assets
  /var/www/discourse/plugins/discourse-plugin-composer-help-button/test/javascripts
  /var/www/discourse/plugins/discourse-presence/auto_generated
  /var/www/discourse/plugins/discourse-presence/assets
  /var/www/discourse/plugins/discourse-presence/admin/assets
  /var/www/discourse/plugins/discourse-presence/test/javascripts
  /var/www/discourse/plugins/discourse-sitemap/auto_generated
  /var/www/discourse/plugins/discourse-sitemap/assets
  /var/www/discourse/plugins/discourse-sitemap/admin/assets
  /var/www/discourse/plugins/discourse-sitemap/test/javascripts
  /var/www/discourse/plugins/discourse-solved/auto_generated
  /var/www/discourse/plugins/discourse-solved/assets
  /var/www/discourse/plugins/discourse-solved/admin/assets
  /var/www/discourse/plugins/discourse-solved/test/javascripts
  /var/www/discourse/plugins/discourse-tooltips/auto_generated
  /var/www/discourse/plugins/discourse-tooltips/assets
  /var/www/discourse/plugins/discourse-tooltips/admin/assets
  /var/www/discourse/plugins/discourse-tooltips/test/javascripts
  /var/www/discourse/plugins/discourse-voting/auto_generated
  /var/www/discourse/plugins/discourse-voting/assets
  /var/www/discourse/plugins/discourse-voting/admin/assets
  /var/www/discourse/plugins/discourse-voting/test/javascripts
  /var/www/discourse/plugins/docker_manager/auto_generated
  /var/www/discourse/plugins/docker_manager/assets
  /var/www/discourse/plugins/docker_manager/admin/assets
  /var/www/discourse/plugins/docker_manager/test/javascripts
  /var/www/discourse/plugins/lazy-yt/auto_generated
  /var/www/discourse/plugins/lazy-yt/assets
  /var/www/discourse/plugins/lazy-yt/admin/assets
  /var/www/discourse/plugins/lazy-yt/test/javascripts
  /var/www/discourse/plugins/poll/auto_generated
  /var/www/discourse/plugins/poll/assets
  /var/www/discourse/plugins/poll/admin/assets
  /var/www/discourse/plugins/poll/test/javascripts
  /var/www/discourse/plugins/retort/auto_generated
  /var/www/discourse/plugins/retort/assets
  /var/www/discourse/plugins/retort/admin/assets
  /var/www/discourse/plugins/retort/test/javascripts
  /var/www/discourse/plugins/styleguide/auto_generated
  /var/www/discourse/plugins/styleguide/assets
  /var/www/discourse/plugins/styleguide/admin/assets
  /var/www/discourse/plugins/styleguide/test/javascripts
  /var/www/discourse/tmp/ember-rails
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/discourse-ember-source-3.12.2.3/dist
  /var/www/discourse/vendor/bundle/ruby/2.7.0/gems/ember-data-source-3.0.2/dist/globals
/var/www/discourse/plugins/discourse-custom-wizard/assets/javascripts/wizard-custom.js:6
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/resolve.rb:65:in `resolve!'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:399:in `resolve'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:207:in `process_require_directive'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:180:in `block in process_directives'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:178:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:178:in `process_directives'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:83:in `_call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/directive_processor.rb:68:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/bundle.rb:23:in `block in call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/utils.rb:200:in `dfs'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/bundle.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:75:in `call_processor'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `reverse_each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/processor_utils.rb:56:in `call_processors'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:134:in `load_from_unloaded'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:60:in `block in load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:317:in `fetch_asset_from_dependency_cache'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/loader.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:20:in `block in initialize'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/cached_environment.rb:47:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:66:in `find_asset'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/base.rb:73:in `find_all_linked_assets'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:134:in `block in find'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `each'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:133:in `find'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:186:in `compile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-3.7.2/lib/rake/sprocketstask.rb:147:in `with_logger'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/sprockets-rails-3.4.2/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Tasks: TOP => assets:precompile
(Ver el rastreo completo ejecutando la tarea con --trace)
I, [2021-12-22T02:29:01.062324 #1]  INFO -- : Actualizando 'discourse-groups-css-classes-in-body' para 'default'...
Actualizando 'discourse-units' para 'default'...
Actualizando 'discourse-image-annotator' para 'default'...



FALLÓ
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' falló con el código de retorno #<Process::Status: pid 4963 exit 1>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
ejecución fallida con los parámetros {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
758338f1df1e2e950fd7228c757bfb7dfbcf1e7742d6cb175e3aec7c9f52addb

Gracias por el informe. Ya está solucionado.

Solo una nota: hemos estado trabajando en un sistema automatizado de notificación de compatibilidad de plugins durante un tiempo y lo lanzaremos junto con algunas grandes actualizaciones de custom-wizard en el nuevo año.

El sistema detectó este problema de compatibilidad una hora después de que el commit relevante se incluyera en discourse/discourse, y envió una advertencia a los clientes del plugin, que habrías visto en tu panel de administración antes de actualizar (la captura de pantalla es de nuestra instancia de prueba; esta funcionalidad aún no se ha lanzado).

Gracias por esa corrección adicional, que (sin sorpresa) confirmo que solucionó mi compilación, ¡y vaya que esa advertencia automatizada es una gran idea! :tada: