Service Mesh Performance Installation Issue

I encountered this error after cloning the repository:

$ make site
cd docs; \        
        make site;
make[1]: Entering directory `D:/Journey/service-mesh-performance/docs'
bundle exec jekyll serve --drafts --livereload
Could not find nokogiri-1.13.9, jekyll-coffeescript-2.0.0, webrick-1.7.0, jekyll-4.2.1, html-pipeline-2.14.0, mini_portile2-2.8.0, racc-1.6.0, coffee-script-source-1.12.2, addressable-2.8.0, em-websocket-0.5.2, i18n-1.8.10, jekyll-sass-converter-2.1.0, kramdown-2.3.1, liquid-4.0.3, rouge-3.26.1, terminal-table-2.0.0, activesupport-6.1.4.1, execjs-2.7.0, public_suffix-4.0.6, http_parser.rb-0.6.0, concurrent-ruby-1.1.9, sassc-2.4.0, listen-3.7.0, minitest-5.14.4, tzinfo-2.0.4, zeitwerk-2.4.2, ffi-1.15.4, rb-fsevent-0.11.0 in locally installed gems
Run `bundle install` to install missing gems.
make[1]: *** [site] Error 7
make[1]: Leaving directory `D:/Journey/service-mesh-performance/docs'
make: *** [site] Error 2

To resolve this error, I executed the following commands:

cd docs
bundle install

After that, I attempted to run make site again and encountered this error:

$ make site
bundle exec jekyll serve --drafts --livereload 
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
Configuration file: D:/Journey/service-mesh-performance/docs/_config.yml
            Source: D:/Journey/service-mesh-performance/docs
       Destination: D:/Journey/service-mesh-performance/docs/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
  Liquid Exception: undefined method `tainted?' for "SMP":String in D:/Journey/service-mesh-performance/docs/collections/_posts/2020-05-21-meshmark-explained.md
                    ------------------------------------------------
      Jekyll 4.2.1   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/variable.rb:124:in `taint_check': undefined method `tainted?' for "SMP":String (NoMethodError)

      return unless obj.tainted?
                       ^^^^^^^^^
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/variable.rb:89:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:80:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/tags/if.rb:46:in `block (2 levels) in render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/tags/if.rb:44:in `each'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/tags/if.rb:44:in `block in render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/tags/if.rb:43:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:82:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/inclusion.rb:16:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/tags/include.rb:208:in `block in render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/context.rb:123:in `stack'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/tags/include.rb:206:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:103:in `render_node_to_output'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/block_body.rb:91:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:208:in `block in render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:242:in `with_profiling'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:207:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/liquid-4.0.3/lib/liquid/template.rb:220:in `render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:131:in `render_liquid'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:80:in `render_document'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:63:in `run'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:547:in `render_regenerated'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:532:in `block (2 levels) in render_docs'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:531:in `each'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:531:in `block in render_docs'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:530:in `each_value'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:530:in `render_docs'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:210:in `render'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:80:in `process'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:28:in `process_site'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:65:in `build'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:36:in `process'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `each'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
        from C:/Ruby32-x64/lib/ruby/gems/3.2.0/gems/jekyll-4.2.1/exe/jekyll:15:in `<top (required)>'
        from C:/Ruby32-x64/bin/jekyll:25:in `load'
        from C:/Ruby32-x64/bin/jekyll:25:in `<main>'
make: *** [site] Error 1

Looking for an effective solution @Savio.Dias @Yash.Sharma @Karan

@Vaibhav.Maurya have u installed all the prerequisites before installing jekyll and bundler gems?

meshery, meshery.io, layer5.io are running well. I installed all the prerequisites.

1 Like

I’ve found an effective solution to resolve this issue:

To fix this problem, follow these steps:

  1. Navigate to the ‘docs’ directory using the command cd docs.

  2. Delete the ‘Gemfile.lock’ file.

  3. Run the command make setup.

  4. Add the following line at the end of the ‘Gemfile’:

    gem 'kramdown-parser-gfm'
    

    For example, in your ‘Gemfile’:

     # After making changes to the Gemfile, remember to execute `bundle update`!
     source "https://rubygems.org"
    
    group :jekyll_plugins do
        gem "jekyll-feed", ">= 0.15.0"
        gem "jekyll-paginate"
        gem "jekyll-sitemap", ">= 1.4.0"
        # gem "jekyll-seo-tag"
        gem 'jemoji', '~> 0.12.0'
        gem "nokogiri", ">= 1.12.5"
        gem 'jekyll-coffeescript', '~> 2.0'
        gem 'jekyll-manager' if ENV['ADMIN'] == 'on'
    +   gem 'kramdown-parser-gfm'
    end
    
    # Delete the following lines if not on Windows:
    # Performance-booster for watching directories on Windows
    gem "wdm", ">= 0.1.0" if Gem.win_platform?
    
    gem "webrick", "~> 1.7" 
    
    
  5. Finally, run the command make site.

I hope you find this solution helpful. If anyone encounters any issues, please don’t hesitate to share them.

@Vaibhav.Maurya That’s great that this solution is working for you, but can you briefly explain what this kramdown-parser-gfm Gem is doing ?

@asubedy
kramdown-parser-gfm is a Ruby Library that helps convert GitHub Flavored Markdown to the web application format. Since this dependency is not present in the Gemfile, I added it to the Gemfile. And I deleted the Gemfile.lock because of jekyll version conflict issue.

Gemfile.lock conflict issue

$ make setup
ADMIN=on bundle install
Calling `DidYouMean::SPELL_CHECKERS.merge!(error_name => spell_checker)' has been deprecated. Please call `DidYouMean.correct_error(error_name, spell_checker)' instead.
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Bundler could not find compatible versions for gem "jekyll":
  In snapshot (Gemfile.lock):
    jekyll (= 4.2.1)

  In Gemfile:
    jekyll-feed (>= 0.15.0) was resolved to 0.15.1, which depends on
      jekyll (>= 3.7, < 5.0)

    jekyll-manager was resolved to 0.1.1, which depends on
      jekyll (~> 3.5)

    jemoji (~> 0.12.0) was resolved to 0.12.0, which depends on
      jekyll (>= 3.0, < 5.0)

Running `bundle update` will rebuild your snapshot from scratch, using only
the gems in your Gemfile, which may resolve the conflict.
make: *** [setup] Error 6

Saying to add this dependency to Gemfile

$ make site
bundle exec jekyll serve --drafts --livereload 
Configuration file: F:/service-mesh-performance/docs/_config.yml
            Source: F:/service-mesh-performance/docs
       Destination: F:/service-mesh-performance/docs/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
  Dependency Error: Yikes! It looks like you don't have kramdown-parser-gfm or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- kramdown-parser-gfm' If you run into trouble, you can find helpful resources at https://jekyllrb.com/help/!
  Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2020-05-21-meshmark-explained.md':
                    kramdown-parser-gfm
             ERROR: YOUR SITE COULD NOT BE BUILT:
                    ------------------------------------
                    kramdown-parser-gfm
make: *** [site] Error 1