Reputation: 63
After upgrading to Jekyll 4.0, all builds fail with the following error:
/Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/static_file.rb:148:in `cleaned_relative_path': undefined method `length' for nil:NilClass (NoMethodError)
I have updated gems, Jekyll, Bundler, and all the gems used in the project. The only plugin I am using is jekyll-minimagick
but removing this plugin does not fix the problem. Here is the full build trace
dauntless:my-site me$ bundle exec jekyll build --trace
Configuration file: /Users/me/Development/my-site/_config.yml
Source: /Users/me/Development/my-site
Destination: /Users/me/Development/my-site/_site
Incremental build: disabled. Enable with --incremental
Generating...
Traceback (most recent call last):
32: from /Users/me/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `<main>'
31: from /Users/me/.rvm/gems/ruby-2.6.3/bin/ruby_executable_hooks:24:in `eval'
30: from /Users/me/.rvm/gems/ruby-2.6.3/bin/jekyll:23:in `<main>'
29: from /Users/me/.rvm/gems/ruby-2.6.3/bin/jekyll:23:in `load'
28: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/exe/jekyll:15:in `<top (required)>'
27: from /Users/me/.rvm/gems/ruby-2.6.3/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program'
26: from /Users/me/.rvm/gems/ruby-2.6.3/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go'
25: from /Users/me/.rvm/gems/ruby-2.6.3/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute'
24: from /Users/me/.rvm/gems/ruby-2.6.3/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each'
23: from /Users/me/.rvm/gems/ruby-2.6.3/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute'
22: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:18:in `block (2 levels) in init_with_program'
21: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `process_with_graceful_fail'
20: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `each'
19: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/command.rb:89:in `block in process_with_graceful_fail'
18: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:36:in `process'
17: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/commands/build.rb:65:in `build'
16: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/command.rb:28:in `process_site'
15: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:77:in `process'
14: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:211:in `cleanup'
13: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:15:in `cleanup!'
12: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:25:in `obsolete_files'
11: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:59:in `new_files'
10: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:59:in `tap'
9: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:60:in `block in new_files'
8: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:342:in `each_site_file'
7: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:342:in `each'
6: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:343:in `block in each_site_file'
5: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:343:in `each'
4: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/site.rb:344:in `block (2 levels) in each_site_file'
3: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/cleaner.rb:60:in `block (2 levels) in new_files'
2: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/static_file.rb:58:in `destination'
1: from /Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/static_file.rb:161:in `url'
/Users/me/.rvm/gems/ruby-2.6.3/gems/jekyll-4.0.0/lib/jekyll/static_file.rb:148:in `cleaned_relative_path': undefined method `length' for nil:NilClass (NoMethodError)
Upvotes: 3
Views: 1113
Reputation: 312
I ran into this too.
Add this branch to your Gemfile:
gem "jekyll-minimagick", github: "benubois/jekyll-minimagick", branch: "patch-1"
It's the only branch I've found that adds the variables that are newly required by Jekyll 4.
Upvotes: 2
Reputation: 5434
jekyll-minimagic
hasn't been updated since 2016.
but removing this plugin does not fix the problem
Are you sure that you've removed this plugin completely or there are none else inside the _plugins
directory?
Simply removing a plugin from the config file may not be sufficient.
If you have listed the plugin under the :jekyll_plugins
group in your Gemfile
, that could load the plugin automatically.
Upvotes: 2