ai / autoprefixer-rails

Autoprefixer for Ruby and Ruby on Rails
https://twitter.com/autoprefixer
MIT License
1.22k stars 108 forks source link

Something broke in my Jekyll when upgrading from 5.2.1.3 to 6.0.0 #81

Closed nhoizey closed 8 years ago

nhoizey commented 8 years ago

I've written a general question on StackOverflow and someone told me the issue could be with autoprefixer-rails.

I downgraded to 5.2.1.2 I had before this upgrade, and tried to upgrade one version at a time, leaving all other gems to the latest versions.

I upgraded to 5.2.1.3 with no issue.

But when I ugraded to 6.0.0, I got the issue described on StackOverflow.

Here is the configuration I use: https://github.com/nhoizey/nicolas-hoizey.com/blob/master/autoprefixer.yml

nhoizey commented 8 years ago

I tried upgrading commit after commit from the 5.2.1.3 release, and I found where the issue begins: https://github.com/ai/autoprefixer-rails/commit/c47f6bcadf150388057ba42f6626c9af22253b32

ai commented 8 years ago

Current release is 6.2. Can you update to this version and show your results?

ai commented 8 years ago

BTW, It is very important to use latest Autoprefixer, because actual Autoprefixer = actual browsers and prefixes data.

nhoizey commented 8 years ago

@ai it doesn't work with any 6.x.y version, sorry I wasn't clear enough.

And I know using most recent version of Autoprefixer is needed… ;-)

I may try this other gem: https://github.com/octopress/autoprefixer

ai commented 8 years ago

octopress-autoprefixer is not other gem, it is just a wrap for this gem :).

I ask you update to 6.2 to have latest stacktrace. If you show me a error, I think I can fix it.

nhoizey commented 8 years ago

Sorry… ;-)

Here is the trace:

Configuration file: ./_config.yml
  Liquid Exception: wrong number of arguments (3 for 1..2) in _includes/head.html, included in _layouts/default.html
rake aborted!
Jekyll::Tags::IncludeTagError: wrong number of arguments (3 for 1..2)
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/tags/include.rb:124:in `rescue in render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/tags/include.rb:116:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:109:in `block in render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:82:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:128:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:138:in `render!'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:106:in `render_liquid'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:205:in `render_all_layouts'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:239:in `do_layout'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives/archive.rb:104:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:104:in `block in render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:103:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:103:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:48:in `generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:280:in `block in generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:279:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:279:in `generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:50:in `process'
/Users/nhoizey/Dropbox/Personnel/Devs/nicolas-hoizey.com/Rakefile:15:in `block (2 levels) in <top (required)>'
ArgumentError: wrong number of arguments (3 for 1..2)
/usr/local/lib/ruby/gems/2.2.0/gems/autoprefixer-rails-6.2.0/lib/autoprefixer-rails.rb:17:in `install'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/environment.rb:71:in `install_autoprefixer!'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/environment.rb:37:in `initialize'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/patches/site_patch.rb:28:in `new'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/patches/site_patch.rb:28:in `assets'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/renderer.rb:38:in `render_asset'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/tag.rb:11:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:109:in `block in render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:82:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:128:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:138:in `render!'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/tags/include.rb:121:in `block in render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/context.rb:112:in `stack'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/tags/include.rb:119:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:109:in `block in render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:96:in `render_all'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/block.rb:82:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:128:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/liquid-2.6.3/lib/liquid/template.rb:138:in `render!'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:106:in `render_liquid'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:205:in `render_all_layouts'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/convertible.rb:239:in `do_layout'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives/archive.rb:104:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:104:in `block in render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:103:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:103:in `render'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-archives-2.1.0/lib/jekyll-archives.rb:48:in `generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:280:in `block in generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:279:in `each'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:279:in `generate'
/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-2.5.3/lib/jekyll/site.rb:50:in `process'
/Users/nhoizey/Dropbox/Personnel/Devs/nicolas-hoizey.com/Rakefile:15:in `block (2 levels) in <top (required)>'
Tasks: TOP => site:index => site:generate
(See full trace by running task with --trace)
ai commented 8 years ago

BTW, can you check what Sprockets version is used in Jekyll?

nhoizey commented 8 years ago

I currently have sprockets 2.12.4

ai commented 8 years ago

And how did you install AutoprefixerRails to Jekyll?

nhoizey commented 8 years ago

I just followed what's said in Jekyll Assets' readme:

add "autoprefixer-rails" to your Gemfile

ai commented 8 years ago

Hm, I never think about it and test it :-).

nhoizey commented 8 years ago

Can I help?

ai commented 8 years ago

Yeap, PR is welcome :)

nhoizey commented 8 years ago

I really don't know what's wrong, and I don't know Ruby… :-/

I can definitely help with tests, through…

ai commented 8 years ago

The main problem is that this autoprefixer-rails i a plugin for Rails. Not for Jekyll.

ai commented 8 years ago

I found the problem.

Jekyll has a code to autoinstall Autoprefixer (the question was how Autoprefixer even installed to Jekyll automatically):

/usr/local/lib/ruby/gems/2.2.0/gems/jekyll-assets-0.13.0/lib/jekyll/assets_plugin/environment.rb:71:in `install_autoprefixer!'

And this code uses old AutoprefixerRails API. Open a issue in Jekyll repo and write that Autoprefixer API had been changed. Post a stacktrace, fix is very simple.

nhoizey commented 8 years ago

You mean Jekyll Assets, not Jekyll, right?

Thanks!