Discourse layouts plugin is broken

(Guido Drehsen) #1

I do have the same Problem as Parisa. The installation is currently on v1.9.0.beta14 +18 and the system tells me to upgrade to 1.9.0.beta15 but UI upgrade is disabled

<h2>You are running an old version of the Discourse image.</h2>
Upgrades via the web UI are disabled until you run the latest image.

but doing the upgrade on the console does fail.
How can I solve this?

Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 11137 exi                   t 1>
Location of failure: /pups/lib/pups/exec_command.rb:108:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --verbose --withou                   t test --without development'", "su discourse -c 'bundle exec rake db:migrate'", "su discourse -c 'bundle exec rake assets:precompile'"]}
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one

and further up I do see:

Building native extensions.  This could take a while...
0:  unicorn (5.3.1) from /var/www/discourse/vendor/bundle/ruby/2.3.0/specifications/unicorn-5.3.1.gemspec
Using webmock 3.0.1
0:  webmock (3.0.1) from /var/www/discourse/vendor/bundle/ruby/2.3.0/specifications/webmock-3.0.1.gemspec
Bundle complete! 105 Gemfile dependencies, 181 gems now installed.
Gems in the group development were not installed.
Bundled gems are installed into `./vendor/bundle`

I, [2017-12-09T04:35:40.446491 #16]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
ArgumentError: wrong number of arguments (given 1, expected 2)
/var/www/discourse/plugins/discourse-layouts/lib/widget_helper.rb:4:in `add_widget'

How do I manually update Discourse and Docker image to latest?
(Daniela) #2

Comment out the layout plugin on your .yml file and launch the rebuild again.
Then wait until @angus fixes the problem before rehabilitating it.

(Angus McLeod) #3

Hey there :slight_smile: The layouts plugin isn’t broken. You’ll get this error if you’re trying to add a widget and you don’t pass the right number arguments to the add_widget method.

What widget(s) / versions of widgets are you trying to use with the layouts plugin? (maybe just paste the list of plugins you’re using here)

Additionally, I’ve made a small change to the layouts plugin to prevent the passing of incorrect arguments from throwing an exception like this.

(Guido Drehsen) #4

this is the list of plugins that are currently installed::

(Angus McLeod) #5

The issue is with layouts-categories. It’s using an old version of the layouts add_widget signature.

I’ve submitted a PR to your repo to update it.

(Guido Drehsen) #6

thanks to everyone who helped.
Since we had layouts-categories anyway no longer in use (was used for a test in the past) we did just remove it and were then able to sucessfully upgrade.
Thread can be closed now.

(Daniela) #7