gjtorikian / commonmarker

Ruby wrapper for the comrak (CommonMark parser) Rust crate
MIT License
429 stars 82 forks source link

Latest version of commonmarker breaks with jekyll build #142

Closed emmahsax closed 3 years ago

emmahsax commented 3 years ago

I am using a MacOS with Ruby 3.0.1 and Bundler 2.2.21. I upgraded commonmarker to 0.22.0 (was previously using 0.21.2), and now, when I try to jekyll build, I get the following error:

$ jekyll build
Configuration file: /Users/emmasax/projects/emmahsax.github.io/_config.yml
                    ------------------------------------------------
      Jekyll 4.2.0   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
/Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/bundler/gems/jekyll-commonmark-cdc2700972cf/lib/jekyll-commonmark.rb:11:in `<class:CommonMark>': uninitialized constant CommonMarker::Config::Parse (NameError)
Did you mean?  OptParse
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/bundler/gems/jekyll-commonmark-cdc2700972cf/lib/jekyll-commonmark.rb:9:in `<class:Markdown>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/bundler/gems/jekyll-commonmark-cdc2700972cf/lib/jekyll-commonmark.rb:8:in `<module:Converters>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/bundler/gems/jekyll-commonmark-cdc2700972cf/lib/jekyll-commonmark.rb:7:in `<module:Jekyll>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/bundler/gems/jekyll-commonmark-cdc2700972cf/lib/jekyll-commonmark.rb:6:in `<top (required)>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/external.rb:60:in `require'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/external.rb:60:in `block in require_with_graceful_fail'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/external.rb:57:in `each'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/external.rb:57:in `require_with_graceful_fail'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/plugin_manager.rb:30:in `require_gems'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/plugin_manager.rb:22:in `conscientious_require'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:131:in `setup'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/site.rb:36:in `initialize'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:30:in `new'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/build.rb:30:in `process'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `each'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/jekyll-4.2.0/exe/jekyll:15:in `<top (required)>'
        from /Users/emmasax/.rbenv/versions/3.0.1/bin/jekyll:23:in `load'
        from /Users/emmasax/.rbenv/versions/3.0.1/bin/jekyll:23:in `<top (required)>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli/exec.rb:63:in `load'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli/exec.rb:63:in `kernel_load'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli/exec.rb:28:in `run'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli.rb:474:in `exec'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli.rb:30:in `dispatch'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/cli.rb:24:in `start'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/exe/bundle:49:in `block in <top (required)>'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/lib/bundler/friendly_errors.rb:128:in `with_friendly_errors'
        from /Users/emmasax/.rbenv/versions/3.0.1/lib/ruby/gems/3.0.0/gems/bundler-2.2.21/exe/bundle:37:in `<top (required)>'
        from /Users/emmasax/.rbenv/versions/3.0.1/bin/bundle:23:in `load'

Reverting back to commonmarker 0.21.2 resolved the issue.

kivikakk commented 3 years ago

140 changed the API slightly, but jekyll-commonmarker doesn't support it yet; it looks like there's a pending pull request to restrict the version for compatibility at https://github.com/jekyll/jekyll-commonmark/pull/43. For now with Jekyll you'll need to use <0.22.