Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bundle update error #145

Closed
y377 opened this issue Dec 22, 2022 · 34 comments
Closed

bundle update error #145

y377 opened this issue Dec 22, 2022 · 34 comments

Comments

@y377
Copy link
Member

y377 commented Dec 22, 2022

/usr/local/rvm/gems/ruby-2.7.2/gems/jekyll-sass-converter-3.0.0/lib/jekyll/converters/scss.rb:175:in rescue in convert': expected "{". (Jekyll::Converters::Scss::SyntaxError)`

Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
                    expected "{".
                    ------------------------------------------------
      Jekyll 4.3.1   Please append `--trace` to the `serve` command
                     for any additional information or backtrace.
                    ------------------------------------------------

Originally, my code was working fine, but I couldn’t start jekyll after bundle update. I couldn’t find the reason, but I’m sure it must have something to do with SCSS

After my hard work, I found a solution, please see the following code, uninstall gem uninstall sass-embedded, now you can start

[root@jekyll 20221119]# gem uninstall sass-embedded

You have requested to uninstall the gem:
        sass-embedded-1.57.1

jekyll-sass-converter-3.0.0 depends on sass-embedded (~> 1.54)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled sass-embedded-1.57.1
[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5 --port=4000 --trace
Configuration file: /root/20221119/_config.yml
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:
        Pagination:   Locale:
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
                    done in 1.653 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

this my Gemfile

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.7.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    rack (2.2.4)
    rack-protection (3.0.5)
      rack
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sassc (2.4.0)
      ffi (~> 1.9)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.3.0)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll (~> 4.3)
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap

BUNDLED WITH
   2.3.26
@ntkme
Copy link
Contributor

ntkme commented Dec 22, 2022

In the end there is an issue in your scss code or its dependencies. The sass-embedded is not meant to be fully compatible with sassc, and the error you’re seeing is effectively just dart sass being more strict about syntax issues than sassc.

If you prefer to use sassc rather than fix the syntax issue, you should lock the version range in Gemfile, for example:

gem 'jekyll-sass-converter', '~> 2.2'

@y377
Copy link
Member Author

y377 commented Dec 22, 2022

I came back at night to fix other parts of my website, and accidentally found the <head> part of _layouts/default.html, my custom <style> is indeed missing a }, let me complete this theme completely , I will verify again, and thank you for specifying!

@ntkme
Copy link
Contributor

ntkme commented Dec 24, 2022

Please also check and see if this is a duplicate of #146.

@y377
Copy link
Member Author

y377 commented Jan 4, 2023

I came back at night to fix other parts of my website, and accidentally found the <head> part of _layouts/default.html, my custom <style> is indeed missing a }, let me complete this theme completely , I will verify again, and thank you for specifying!

I came back at night to fix other parts of my website, and accidentally found the <head> part of _layouts/default.html, my custom <style> is indeed missing a }, let me complete this theme completely , I will verify again, and thank you for specifying!

jekyll new PATH --blank default name is main.scss

First I make sure there is no missing}, I find the solution is: change /assets/css/main.scss to /assets/css/style.scss, I wonder if it conflicts with _sass/main.scss because the cli mentions main, but I don't know why

@ntkme
Copy link
Contributor

ntkme commented Jan 4, 2023

First I make sure there is no missing}, I find the solution is: change /assets/css/main.scss to /assets/css/style.scss, I wonder if it conflicts with _sass/main.scss because the cli mentions main, but I don't know why

This is why: https://github.com/jekyll/jekyll-sass-converter#dropped-support-of-importing-files-with-the-same-filename-as-their-parent-file

@y377
Copy link
Member Author

y377 commented Jan 4, 2023

Jekyll or Jekyll Sass Converter(One party needs to fix this error), and the updated version does not build as fast as the old version

@ntkme
Copy link
Contributor

ntkme commented Jan 4, 2023

Jekyll or Jekyll Sass Converter(One party needs to fix this error

This is intended behavior. It was never supposed to work, but somehow working in 2.x due to a bug. In 3.x (a new breaking major release), we have decided to bite the bullet to fix the behavior. So this will not be "fixed" as it is not a bug. If you want to know the background, please check #137.

the updated version does not build as fast as the old version

This is also expected to some degree. Without knowing how much slower performance you're seeing we cannot tell if it is really a problem or not. New implementation is running a separate progress in Dart VM, which will definitely be slower than a native C-ext based libsass. However, libsass has been deprecated for more than 2 years that Dart Sass is the current implementation.

@y377
Copy link
Member Author

y377 commented Jan 4, 2023

Jekyll or Jekyll Sass Converter(One party needs to fix this error

This is intended behavior. It was never supposed to work, but somehow working in 2.x due to a bug. In 3.x (a new breaking major release), we have decided to bite the bullet to fix the behavior. So this will not be "fixed" as it is not a bug. If you want to know the background, please check #137.

the updated version does not build as fast as the old version

This is also expected to some degree. Without knowing how much slower performance you're seeing we cannot tell if it is really a problem or not. New implementation is running a separate progress in Dart VM, which will definitely be slower than a native C-ext based libsass. However, libsass has been deprecated for more than 2 years that Dart Sass is the current implementation.

At the same time, I support the renewal, creation is the soul of progress

Suppose I have a topic template for 21 posts. If sass2.0 is used, it takes 3 seconds to run bundle exec jekyll serve until the build is complete. If sas-embedded is used, it takes 5 seconds to run bundle exec jekyll serve until the build is complete. If I had 3000 posts, and other collections, I think the build time would multiply!

@ntkme
Copy link
Contributor

ntkme commented Jan 4, 2023

The time to compile sass shouldn’t scale with number of posts.

@y377
Copy link
Member Author

y377 commented Jan 4, 2023

Hopefully, as you said, I don't want it to be related, but if different posts or collections use different layouts, are they really not related? I will simulate 300 posts as soon as possible for comparison experiment! Now I need to finish anchor first, and I will follow up later!

Thanks again for your answer!

@ntkme
Copy link
Contributor

ntkme commented Jan 4, 2023

There are two ways sass are complied:

  1. Any .sass/.scss with yaml front matter is compiled and should be compiled only once during site build (doesn’t matter how many times the result css is used in different layouts or pages).
  2. Via sassify/scssify - each of the invocation is a new compilation so in general these should be avoided from using in theme layout (cause tons of repeated complations), and used only if you have to in specific page.

@ashmaroli
Copy link
Member

@y377 Is any of your layouts or include files using either of the sassify / scssify filter?

@y377
Copy link
Member Author

y377 commented Jan 5, 2023

@y377 Is any of your layouts or include files using either of the sassify / scssify filter?

I didn't use sassify / scssify
I don't even know how these two filters work

@ashmaroli
Copy link
Member

@y377 Is your source directory publicly accessible? If yes, please share the link to the repository. I would like to clone it and see there is a reason why you think Sass conversion is taking longer with more posts.
Technically, it may not even be the sass-converter at all but Jekyll itself but as a user, you do not have the means to objectively measure the time taken.

@y377
Copy link
Member Author

y377 commented Jan 14, 2023

@ashmaroli example

Before unloading:

[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /root/20221119/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2023-01-11-tocbot目录生成.md
  Jekyll Spaceship: [TableProcessor] table_test.md
                    done in 9.347 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    gemoji (3.0.1)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-spaceship (0.10.2)
      gemoji (~> 3.0)
      jekyll (>= 3.6, < 5.0)
      nokogiri (~> 1.6)
      rainbow (~> 3.0)
    jekyll-timeago (0.14.0)
      mini_i18n (>= 0.8.0)
    jekyll-toc (0.17.1)
      jekyll (>= 3.9)
      nokogiri (~> 1.11)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.3)
    listen (3.7.1)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    mini_i18n (0.9.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    nokogiri (1.13.10-x86_64-linux)
      racc (~> 1.4)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    racc (1.6.2)
    rack (2.2.5)
    rack-protection (3.0.5)
      rack
    rainbow (3.1.1)
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sassc (2.4.0)
      ffi (~> 1.9)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.4.2)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap
  jekyll-spaceship
  jekyll-timeago
  jekyll-toc

BUNDLED WITH
   2.3.26

After unloading:

[root@jekyll 20221119]# gem uninstall sass-embedded

You have requested to uninstall the gem:
        sass-embedded-1.57.1-x86_64-linux-gnu

jekyll-sass-converter-3.0.0 depends on sass-embedded (~> 1.54)
If you remove this gem, these dependencies will not be met.
Continue with Uninstall? [yN]  y
Successfully uninstalled sass-embedded-1.57.1-x86_64-linux-gnu
[root@jekyll 20221119]# bundle exec jekyll serve --host=10.10.10.5
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /root/20221119/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /root/20221119
       Destination: /root/20221119/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2023-01-11-tocbot目录生成.md
  Jekyll Spaceship: [TableProcessor] table_test.md
                    done in 8.636 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

bundle after uninstall:(And then run the bundle)

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.1)
      public_suffix (>= 2.0.2, < 6.0)
    colorator (1.1.0)
    concurrent-ruby (1.1.10)
    em-websocket (0.5.3)
      eventmachine (>= 0.12.9)
      http_parser.rb (~> 0)
    eventmachine (1.2.7)
    ffi (1.15.5)
    forwardable-extended (2.6.0)
    gemoji (3.0.1)
    google-protobuf (3.21.12-x86_64-linux)
    http_parser.rb (0.8.0)
    i18n (1.12.0)
      concurrent-ruby (~> 1.0)
    jekyll (4.3.1)
      addressable (~> 2.4)
      colorator (~> 1.0)
      em-websocket (~> 0.5)
      i18n (~> 1.0)
      jekyll-sass-converter (>= 2.0, < 4.0)
      jekyll-watch (~> 2.0)
      kramdown (~> 2.3, >= 2.3.1)
      kramdown-parser-gfm (~> 1.0)
      liquid (~> 4.0)
      mercenary (>= 0.3.6, < 0.5)
      pathutil (~> 0.9)
      rouge (>= 3.0, < 5.0)
      safe_yaml (~> 1.0)
      terminal-table (>= 1.8, < 4.0)
      webrick (~> 1.7)
    jekyll-admin (0.11.1)
      jekyll (>= 3.7, < 5.0)
      sinatra (>= 1.4)
      sinatra-contrib (>= 1.4)
    jekyll-feed (0.17.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-paginate-v2 (3.0.0)
      jekyll (>= 3.0, < 5.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    jekyll-seo-tag (2.8.0)
      jekyll (>= 3.8, < 5.0)
    jekyll-sitemap (1.4.0)
      jekyll (>= 3.7, < 5.0)
    jekyll-spaceship (0.10.2)
      gemoji (~> 3.0)
      jekyll (>= 3.6, < 5.0)
      nokogiri (~> 1.6)
      rainbow (~> 3.0)
    jekyll-timeago (0.15.0)
      mini_i18n (>= 0.8.0)
    jekyll-toc (0.17.1)
      jekyll (>= 3.9)
      nokogiri (~> 1.11)
    jekyll-watch (2.2.1)
      listen (~> 3.0)
    kramdown (2.4.0)
      rexml
    kramdown-parser-gfm (1.1.0)
      kramdown (~> 2.0)
    liquid (4.0.4)
    listen (3.8.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.4.0)
    mini_i18n (0.9.0)
    multi_json (1.15.0)
    mustermann (3.0.0)
      ruby2_keywords (~> 0.0.1)
    nokogiri (1.14.0-x86_64-linux)
      racc (~> 1.4)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (5.0.1)
    racc (1.6.2)
    rack (2.2.5)
    rack-protection (3.0.5)
      rack
    rainbow (3.1.1)
    rb-fsevent (0.11.2)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rexml (3.2.5)
    rouge (4.0.1)
    ruby2_keywords (0.0.5)
    safe_yaml (1.0.5)
    sass-embedded (1.57.1-x86_64-linux-gnu)
      google-protobuf (~> 3.21)
    sinatra (3.0.5)
      mustermann (~> 3.0)
      rack (~> 2.2, >= 2.2.4)
      rack-protection (= 3.0.5)
      tilt (~> 2.0)
    sinatra-contrib (3.0.5)
      multi_json
      mustermann (~> 3.0)
      rack-protection (= 3.0.5)
      sinatra (= 3.0.5)
      tilt (~> 2.0)
    terminal-table (3.0.2)
      unicode-display_width (>= 1.1.1, < 3)
    tilt (2.0.11)
    unicode-display_width (2.4.2)
    webrick (1.7.0)

PLATFORMS
  x86_64-linux

DEPENDENCIES
  jekyll
  jekyll-admin
  jekyll-feed
  jekyll-paginate-v2
  jekyll-seo-tag
  jekyll-sitemap
  jekyll-spaceship
  jekyll-timeago
  jekyll-toc

BUNDLED WITH
   2.3.26

Let us witness the miracle:

image

9.347s - 3.874s ≈ 5.5s

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

@y377 I think you made the mistake of not clearing jekyll build cache when you do the test so that later runs are always faster than first run. In my test, sass-embedded is actually consistently faster than sassc for your site:

$ git clean -dffx
Removing .jekyll-cache/
Removing _site/2023/01/11/
Removing _site/CNAME

$ cat Gemfile.lock | grep sass
      jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    sass-embedded (1.58.0-arm64-darwin)
  jekyll-sass-converter

$ bundle exec jekyll build
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /Users/ntkme/Developer/test/jekyll_better/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /Users/ntkme/Developer/test/jekyll_better
       Destination: /Users/ntkme/Developer/test/jekyll_better/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:              
        Pagination:   Locale:           
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [TableProcessor] _posts/2018-05-11-pwa-zh-preface.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-06-30-dreamer.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-09-27-avoiding-success-at-all-cost.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-10-06-vim-cn-im.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-09-03-vim-from-finder.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-11-19-is-pwa-dead-in-2019.md
  Jekyll Spaceship: [TableProcessor] _posts/2020-04-03-react-hooks-vue-composition.md
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
                    done in 1.23 seconds.
 Auto-regeneration: disabled. Use --watch to enable.
$ git clean -dffx         
Removing .jekyll-cache/
Removing _site/2023/01/11/
Removing _site/CNAME

$ cat Gemfile.lock | grep sass
      jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (2.2.0)
      sassc (> 2.0.1, < 3.0)
    sassc (2.4.0)
  jekyll-sass-converter (~> 2.0)

$ bundle exec jekyll build    
  Jekyll Spaceship: 🚀 Jekyll-Spaceship 0.10.2
  Jekyll Spaceship: 🎉 A Jekyll plugin to provide powerful supports.
  Jekyll Spaceship: 👉 https://github.com/jeffreytse/jekyll-spaceship
Configuration file: /Users/ntkme/Developer/test/jekyll_better/_config.yml
  Jekyll Spaceship: 🗂  use table-processor
  Jekyll Spaceship: 🗂  use mathjax-processor
  Jekyll Spaceship: 🗂  use plantuml-processor
  Jekyll Spaceship: 🗂  use mermaid-processor
  Jekyll Spaceship: 🗂  use polyfill-processor
  Jekyll Spaceship: 🗂  use media-processor
  Jekyll Spaceship: 🗂  use emoji-processor
  Jekyll Spaceship: 🗂  use element-processor
            Source: /Users/ntkme/Developer/test/jekyll_better
       Destination: /Users/ntkme/Developer/test/jekyll_better/_site
 Incremental build: disabled. Enable with --incremental
      Generating... 
       Jekyll Feed: Generating feed for posts
         AutoPages: Disabled/Not configured in site.config.
        Pagination: ----------------------------
        Pagination: Page: blog/index.html
        Pagination:  Active configuration
        Pagination:   Enabled:          true
        Pagination:   Items per page:   10
        Pagination:   Permalink:        /page/:num/
        Pagination:   Title:            :num
        Pagination:   Limit:            0
        Pagination:   Sort by:          date
        Pagination:   Sort reverse:     true
        Pagination:  Active Filters
        Pagination:   Collection:       posts
        Pagination:   Offset:           0
        Pagination:   Category:         [Not set]
        Pagination:   Tag:              
        Pagination:   Locale:           
        Pagination:  Filtering by: Category   21 => 21
        Pagination:  Filtering by: Tag        21 => 21
        Pagination:  Filtering by: Locale     21 => 21
        Pagination: Rolling through the date fields for all documents
        Pagination: Complete, processed 1 pagination page(s)
  Jekyll Spaceship: [TableProcessor] _posts/2018-05-11-pwa-zh-preface.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-06-30-dreamer.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-09-27-avoiding-success-at-all-cost.md
  Jekyll Spaceship: [TableProcessor] _posts/2018-10-06-vim-cn-im.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-09-03-vim-from-finder.md
  Jekyll Spaceship: [TableProcessor] _posts/2019-11-19-is-pwa-dead-in-2019.md
  Jekyll Spaceship: [TableProcessor] _posts/2020-04-03-react-hooks-vue-composition.md
  Jekyll Spaceship: [PlantumlProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MermaidProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [TableProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MathjaxProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [MediaProcessor] _posts/2022-12-11-codeshuode.md
  Jekyll Spaceship: [EmojiProcessor] _posts/2022-12-11-codeshuode.md
                    done in 3.0 seconds.
 Auto-regeneration: disabled. Use --watch to enable.

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

@y377 Can you please retest and make sure you remove .jekyll-cache and _site folder before each run?

On my M1 Macbook Pro I consistently get the follow results:

  • sass-emebedded 1.58.0 bundle takes ~1.22s
  • sassc 2.4.0 bundle takes ~2.95s

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

remove .jekyll-cache and _site:

    jekyll-sass-converter (>= 2.0, < 4.0)
    jekyll-sass-converter (3.0.0)
      sass-embedded (~> 1.54)
    sass-embedded (1.57.1-x86_64-linux-gnu)

and

done in 6.94 seconds.
 Auto-regeneration: enabled for '/root/20221119'
  JekyllAdmin mode: production
    Server address: http://10.10.10.5:4000/
  Server running... press ctrl-c to stop.

I hope this issue first do not close, because I am busy with the theme build, for the time being first not jekyll-sass-converter to do a systematic comparison test, later when the theme's features are done, I will do a more detailed comparison test, I do is a large theme, a very large kind, either the number of articles or the number of pages, which can test the difference between the two, as one user said, when he had 2000 articles, the build takes 13 seconds to get to the next step

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

@y377 Can you please also retest sassc?

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

@y377 Can you please also retest sassc?

[root@jekyll 20221119]# bundle exec jekyll serve
Could not find sass-embedded-1.58.0-x86_64-linux-gnu in locally installed gems
Run `bundle install` to install missing gems.
[root@jekyll 20221119]#

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

@y377 Remove the Gemfile.lock, update Gemfile, and then rerun bundle - this is the correct way to change your dependency. Just removing the gem is not correct.

@ashmaroli
Copy link
Member

Additionally, you need not remove .jekyll-cache after every build. Either use CLI switch --disable-disk-cache or set disable_disk_cache: true in your config file.

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

@y377 Remove the Gemfile.lock, update Gemfile, and then rerun bundle - this is the correct way to change your dependency. Just removing the gem is not correct.

image

If bundle, sass1.58 is installed again, how do you test the difference?

i need frist:

image

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

With your sample repository, try paste these commands and see what you get:

For sass-embedded:

git clone https://github.com/y377/jekyll_better.git
cd jekyll_better
rm Gemfile.lock
sed -i -e '/gem "jekyll-sass-converter"/s/.*/  gem "jekyll-sass-converter"/' Gemfile
bundle
bundle exec jekyll build --disable-disk-cache

For sassc:

git clone https://github.com/y377/jekyll_better.git
cd jekyll_better
rm Gemfile.lock
sed -i -e '/gem "jekyll-sass-converter"/s/.*/  gem "jekyll-sass-converter", "~> 2.0"/' Gemfile
bundle
bundle exec jekyll build --disable-disk-cache

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

It seems that all gems versions are too high, no matter how to uninstall, as long as you run the bundle command, it will force the installation of [sass-embedded 1.58.0 (x86_64-linux-gnu)]

@ashmaroli
Copy link
Member

@y377 I hope you're developing your site / theme via a Public GitHub repository. Then you can easily test two different versions using GitHub Actions.

Have the following in your Gemfile:

# Gemfile

gem "jekyll-sass-converter", ENV["SASS_CONVERTER_VERSION"]

Then supply two different versions via build matrix:

# GH Action workflow:

jobs:
  ci:
    strategy:
      matrix:
        sass_conv_version:
           - "~> 2.0"
           - "~> 3.0"
    steps:
      [...] # checkout, setup Ruby, etc..
      - run: bundle exec jekyll build --disable-disk-cache
        env:
          SASS_CONVERTER_VERSION: ${{ matrix.sass_conv_version }}

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

Just now some operations, it seems that sass3.0 is 6.995s,
sassc2.4 is 12.67s

@ashmaroli
Copy link
Member

Ultimately, I don't think sass-converter implementation is going to have a significant impact until your templates use sassify / scssify filters extensively; or if third-party plugins invoke site.process multiple times..

@y377
Copy link
Member Author

y377 commented Feb 11, 2023

Just now some operations, it seems that sass3.0 is 6.995s, sassc2.4 is 12.67s

@ntkme @ashmaroli

In this way, thanks for your answers, this question will be put here for now, and I will do in-depth research after I improve the theme. After all, the theme keeps adding plug-ins and using more and more liquid 'if' statements. It is said that 'if' statements will consume extra construction time, so there will be errors. Revised most of the content, just the conclusion shows that sass3.0 is faster, I was a little lost

@ntkme
Copy link
Contributor

ntkme commented Feb 11, 2023

Again, I think the problem is that your previous tests were done with disk cache enabled, which will have unpredictable outcome depends on whether the cache got invalidated or not. For this kind of benchmarking you must disable caching.

@ashmaroli
Copy link
Member

I am going to close this issue since there's nothing to do at our end.
Setting up GitHub Actions at your end will aid in development.
Good Luck!

@y377
Copy link
Member Author

y377 commented Jul 23, 2023

@ashmaroli hi,ashmaroli,One question to bother you here, I would like to react to the question about the abuse of power by community administrators, which will make more people afraid to send out honest comments on community posts, what do you think about this please? I've been dedicated to promoting Jekyll for so many years, and seeing such community administrators, I'll never dare to visit the community again!
Deleted content

Reported Posts Removed by Administrators
Jul 22
9m ago


I'm sorry, but I don't know if I'm going to be able to do this.
1d
Hello.

This is an automated email from Jekyll Talk to notify you that Post 1 has been removed.

Your post was flagged as off-topic: the community feels it is not a good fit for the topic, as currently defined by the title and the first post.

This post was reported by the community and the administrators chose to remove it.

Do very beautiful, is to black tone, in order to life sciences as the content of the site, will let a person have a touch of horror, if this is a publicity to quit smoking site, the black tone is suitable, of course, this is only my first intuitive feeling!
Check out our Community Code 1 for details.

image

@ashmaroli
Copy link
Member

Hello @y377
First of all, GitHub repository issues is not the place for discussing such stuff. It is via direct emails.
Secondly, I am not an administrator of the community site, so I don't have full context behind your query. However, based on the screenshot you've posted, I feel the administration removed your post since it looked like spam. Why would you start / maintain a thread with CJK language on an English language forum?
Thank you for the continued use of Jekyll and its community forum but I'm certain that the Community Guidelines are easily accessible and condemn spamming the forum with issues that do not benefit the community as a collective whole.

@y377
Copy link
Member Author

y377 commented Jul 24, 2023

Hello @y377 First of all, GitHub repository issues is not the place for discussing such stuff. It is via direct emails. Secondly, I am not an administrator of the community site, so I don't have full context behind your query. However, based on the screenshot you've posted, I feel the administration removed your post since it looked like spam. Why would you start / maintain a thread with CJK language on an English language forum? Thank you for the continued use of Jekyll and its community forum but I'm certain that the Community Guidelines are easily accessible and condemn spamming the forum with issues that do not benefit the community as a collective whole.

Let me clarify, my participation in replying to the post was in English, the screenshot you see is just the i18 of my community site, it's not me following the post in Chinese, please don't misunderstand.
Since you are not a community administrator, let this go, and I shouldn't distract you from my active participation in Jekyll coding itself. Thanks for your reply!

torrocus added a commit to fractalsoft/blog.fractalsoft.org that referenced this issue Oct 9, 2023
We want to be up to date.
So I updated Jekyll to the latest version. [1]

Lately, we have been favoring GitHub Actions
over the built-in GitHub Pages.
I also switched the theme from the remote version
to the version installed from the gem.

This forced us to make a few configuration changes.
We had to add a few gems that were previously
loaded via GitHub Pages.

Additionally, there were deprecation warnings related to Sass gem. [2]
This in turn made me have to add `jekyll-sass-converter` gem [3]
in a specific version.

After these changes, everything works.
However, there is definitely space for optimization.

[1]: https://rubygems.org/gems/jekyll
[2]: mmistakes/minimal-mistakes#4054
[3]: jekyll/jekyll-sass-converter#145 (comment)
torrocus added a commit to fractalsoft/blog.fractalsoft.org that referenced this issue Oct 9, 2023
@jekyll jekyll locked and limited conversation to collaborators Jul 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

4 participants