Compass / compass

Compass is no longer actively maintained. Compass is a Stylesheet Authoring Environment that makes your website design simpler to implement and easier to maintain.
http://compass-style.org
Other
6.73k stars 1.18k forks source link

Watch crashes when listen 3.0 is installed #1992

Open thany opened 9 years ago

thany commented 9 years ago

I've updated all my gems, and as part of the update, Listen updates as well. Now when I execute compass watch in an existing project, I get this:

>>> Compass is watching for changes. Press Ctrl-C to Stop.
[Listen warning]:
  Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback.
NoMethodError on line ["402"] of C: undefined method `start' for #<Thread:0x000000045ff2e0>
Run with --trace to see the full backtrace

So, with the --trace option:

>>> Compass is watching for changes. Press Ctrl-C to Stop.
[Listen warning]:
  Listen will be polling for changes. Learn more at https://github.com/guard/listen#polling-fallback.
NoMethodError on line ["402"] of C: undefined method `start' for #<Thread:0x0000000458f7d8>
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.4.15/lib/sass/plugin/compiler.rb:402:in `map'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.4.15/lib/sass/plugin/compiler.rb:402:in `listen_to'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/sass-3.4.15/lib/sass/plugin/compiler.rb:338:in `watch'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/sass_compiler.rb:46:in `watch!'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/commands/watch_project.rb:41:in `perform'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/commands/base.rb:18:in `execute'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/commands/project_base.rb:19:in `execute'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/exec/sub_command_ui.rb:43:in `perform!'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/lib/compass/exec/sub_command_ui.rb:15:in `run!'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/bin/compass:30:in `block in <top (required)>'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/bin/compass:44:in `call'
  C:/Ruby22-x64/lib/ruby/gems/2.2.0/gems/compass-1.0.3/bin/compass:44:in `<top (required)>'
  C:/Ruby22-x64/bin/compass:23:in `load'
  C:/Ruby22-x64/bin/compass:23:in `<main>'

Now, the weird thing is that listen 2.10 is still installed. Perhaps Compass is blindly using the latest version, even though it might need to depend specifically on 2.x, but I can't be too sure. But when I remove Listen 3.x and are left with 2.x, Compass works fine again.

As for all my versions: Windows 7 x64, Ruby 2.2.2p95 x64, Gem 2.4.8, Compass 1.0.3, Sass 3.4.15, Listen 3.0.1 & 2.10.1. All from stable release channels.

mgillman commented 9 years ago

I can confirm that I am seeing the same behavior on listen 3.0.2. After downgrading to listen 2.10.1, compass watch works as expected.