From b00bde91826a35087246afef5c915fbca12cb861 Mon Sep 17 00:00:00 2001 From: Jason Frey Date: Fri, 13 Dec 2024 11:02:40 -0500 Subject: [PATCH] Upgrade Ruby to 3.3 and Jekyll to 4.3 Jekyll comes with the jekyll-sass-converter plugin, so most of the work in this commit is switching to that gem, which expects an _sass directory by default. Also, that gem does not support sprockets, so we need to do some manual handling of the various sass gems to include their stylesheets and other assets (fonts) in the proper directories. Fixes #878 --- .github/workflows/ci.yaml | 2 +- Gemfile | 6 ++++-- lib/miq/executor.rb | 2 +- site/_config.yml | 2 +- site/_includes/head.html | 2 +- site/_plugins/font_generator.rb | 18 ++++++++++++++++++ site/_plugins/sass_loader.rb | 16 ++++++++++++++++ site/{_assets/css => _sass}/_appliances.scss | 0 site/{_assets/css => _sass}/_banner.scss | 0 site/{_assets/css => _sass}/_blog.scss | 0 site/{_assets/css => _sass}/_colors.scss | 0 site/{_assets/css => _sass}/_docs.scss | 0 site/{_assets/css => _sass}/_features.scss | 0 site/{_assets/css => _sass}/_footer.scss | 0 site/{_assets/css => _sass}/_header.scss | 0 site/{_assets/css => _sass}/_labels.scss | 0 site/{_assets/css => _sass}/_lightbox.scss | 0 site/{_assets/css => _sass}/_logo.scss | 0 site/{_assets/css => _sass}/_menu.scss | 0 site/{_assets/css => _sass}/_mixins.scss | 0 site/{_assets/css => _sass}/_off_canvas.scss | 0 site/{_assets/css => _sass}/_page.scss | 0 site/{_assets/css => _sass}/_partners.scss | 0 site/{_assets/css => _sass}/_platforms.scss | 0 site/{_assets/css => _sass}/_post.scss | 0 site/{_assets/css => _sass}/_search.scss | 0 site/{_assets/css => _sass}/_site_nav.scss | 0 site/{_assets/css => _sass}/_solutions.scss | 0 .../css => _sass}/_syntax-highlighting.scss | 0 site/{_assets/css => _sass}/_triad.scss | 0 site/{_assets/css => _sass}/_twbs_custom.scss | 0 .../css => _sass}/_twbs_overrides.scss | 0 site/{_assets/css => _sass}/_type.scss | 0 site/{_assets/css => _sass}/themes/_dark.scss | 0 site/{_assets/css => _sass}/themes/_light.scss | 0 .../{_assets/css => _sass}/themes/_toggle.scss | 0 site/{_assets => assets}/css/main.scss | 6 +++--- 37 files changed, 45 insertions(+), 9 deletions(-) create mode 100644 site/_plugins/font_generator.rb create mode 100644 site/_plugins/sass_loader.rb rename site/{_assets/css => _sass}/_appliances.scss (100%) rename site/{_assets/css => _sass}/_banner.scss (100%) rename site/{_assets/css => _sass}/_blog.scss (100%) rename site/{_assets/css => _sass}/_colors.scss (100%) rename site/{_assets/css => _sass}/_docs.scss (100%) rename site/{_assets/css => _sass}/_features.scss (100%) rename site/{_assets/css => _sass}/_footer.scss (100%) rename site/{_assets/css => _sass}/_header.scss (100%) rename site/{_assets/css => _sass}/_labels.scss (100%) rename site/{_assets/css => _sass}/_lightbox.scss (100%) rename site/{_assets/css => _sass}/_logo.scss (100%) rename site/{_assets/css => _sass}/_menu.scss (100%) rename site/{_assets/css => _sass}/_mixins.scss (100%) rename site/{_assets/css => _sass}/_off_canvas.scss (100%) rename site/{_assets/css => _sass}/_page.scss (100%) rename site/{_assets/css => _sass}/_partners.scss (100%) rename site/{_assets/css => _sass}/_platforms.scss (100%) rename site/{_assets/css => _sass}/_post.scss (100%) rename site/{_assets/css => _sass}/_search.scss (100%) rename site/{_assets/css => _sass}/_site_nav.scss (100%) rename site/{_assets/css => _sass}/_solutions.scss (100%) rename site/{_assets/css => _sass}/_syntax-highlighting.scss (100%) rename site/{_assets/css => _sass}/_triad.scss (100%) rename site/{_assets/css => _sass}/_twbs_custom.scss (100%) rename site/{_assets/css => _sass}/_twbs_overrides.scss (100%) rename site/{_assets/css => _sass}/_type.scss (100%) rename site/{_assets/css => _sass}/themes/_dark.scss (100%) rename site/{_assets/css => _sass}/themes/_light.scss (100%) rename site/{_assets/css => _sass}/themes/_toggle.scss (100%) rename site/{_assets => assets}/css/main.scss (95%) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index e0376ad94..73d17032d 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -19,7 +19,7 @@ jobs: - name: Set up Ruby uses: ruby/setup-ruby@v1 with: - ruby-version: '2.7' + ruby-version: '3.3' bundler-cache: true timeout-minutes: 30 - name: Build diff --git a/Gemfile b/Gemfile index 150824f55..2bd42a8a6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,12 +1,14 @@ source 'https://rubygems.org' +ruby "~> 3.3.6" + gem "activesupport", ">= 5.2.7", :require => false gem "bootstrap-sass", "~> 3.x" gem "font-awesome-sass", "~> 4.x" -gem "jekyll", "~> 3.x" -gem "jekyll-assets", "< 3" # jekyll-assets 3.0.12 brings in sprockets 4 which has a bug: See https://github.com/envygeeks/jekyll-assets/pull/636 +gem "jekyll", "~> 4.3" gem "jekyll-coffeescript" gem "jekyll-paginate" +gem "jekyll-sass-converter" gem "jekyll-sitemap" gem "jemoji" gem "kramdown-parser-gfm" diff --git a/lib/miq/executor.rb b/lib/miq/executor.rb index 0bce925c4..030d590c8 100644 --- a/lib/miq/executor.rb +++ b/lib/miq/executor.rb @@ -52,7 +52,7 @@ def run_cmd_with_bundle_env(cmd, clean) success = if clean || (cmd =~ /cd\ /) env = ENV.to_h.slice("BUNDLE_WITHOUT", "MIQ_DEBUG", "MIQ_ENV") - Bundler.clean_system(env, cmd) + Bundler.unbundled_system(env, cmd) else system(cmd) end diff --git a/site/_config.yml b/site/_config.yml index f5c437706..e92c0e5a6 100644 --- a/site/_config.yml +++ b/site/_config.yml @@ -7,8 +7,8 @@ plugins: - jekyll-coffeescript - - jekyll-assets - jekyll-paginate + - jekyll-sass-converter - jekyll-sitemap - jemoji diff --git a/site/_includes/head.html b/site/_includes/head.html index 60019f4ad..8baf21d71 100644 --- a/site/_includes/head.html +++ b/site/_includes/head.html @@ -21,7 +21,7 @@ } - {% css main %} + diff --git a/site/_plugins/font_generator.rb b/site/_plugins/font_generator.rb new file mode 100644 index 000000000..559d204c3 --- /dev/null +++ b/site/_plugins/font_generator.rb @@ -0,0 +1,18 @@ +require "font-awesome-sass" + +class FontGenerator < Jekyll::Generator + def generate(site) + @site = site + @site.static_files.concat(font_files) + end + + def font_files + source = FontAwesome::Sass.gem_path + Dir.glob(File.join(source, "assets/fonts/font-awesome/*")).map do |font| + font = font.sub(source, "") + dir = File.dirname(font) + file_name = File.basename(font) + Jekyll::StaticFile.new(@site, source, dir, file_name) + end + end +end diff --git a/site/_plugins/sass_loader.rb b/site/_plugins/sass_loader.rb new file mode 100644 index 000000000..b5265b77b --- /dev/null +++ b/site/_plugins/sass_loader.rb @@ -0,0 +1,16 @@ +require "jekyll/converters/scss" +require "bootstrap-sass" +require "font-awesome-sass" + +# sass/load_paths configuration in _config.yml only supports hardcoded paths, +# so we override to add in the paths from the gems dynamically. +module SassLoader + def user_sass_load_paths + super + [ + Bootstrap.stylesheets_path, + FontAwesome::Sass.stylesheets_path + ] + end +end + +Jekyll::Converters::Scss.prepend(SassLoader) diff --git a/site/_assets/css/_appliances.scss b/site/_sass/_appliances.scss similarity index 100% rename from site/_assets/css/_appliances.scss rename to site/_sass/_appliances.scss diff --git a/site/_assets/css/_banner.scss b/site/_sass/_banner.scss similarity index 100% rename from site/_assets/css/_banner.scss rename to site/_sass/_banner.scss diff --git a/site/_assets/css/_blog.scss b/site/_sass/_blog.scss similarity index 100% rename from site/_assets/css/_blog.scss rename to site/_sass/_blog.scss diff --git a/site/_assets/css/_colors.scss b/site/_sass/_colors.scss similarity index 100% rename from site/_assets/css/_colors.scss rename to site/_sass/_colors.scss diff --git a/site/_assets/css/_docs.scss b/site/_sass/_docs.scss similarity index 100% rename from site/_assets/css/_docs.scss rename to site/_sass/_docs.scss diff --git a/site/_assets/css/_features.scss b/site/_sass/_features.scss similarity index 100% rename from site/_assets/css/_features.scss rename to site/_sass/_features.scss diff --git a/site/_assets/css/_footer.scss b/site/_sass/_footer.scss similarity index 100% rename from site/_assets/css/_footer.scss rename to site/_sass/_footer.scss diff --git a/site/_assets/css/_header.scss b/site/_sass/_header.scss similarity index 100% rename from site/_assets/css/_header.scss rename to site/_sass/_header.scss diff --git a/site/_assets/css/_labels.scss b/site/_sass/_labels.scss similarity index 100% rename from site/_assets/css/_labels.scss rename to site/_sass/_labels.scss diff --git a/site/_assets/css/_lightbox.scss b/site/_sass/_lightbox.scss similarity index 100% rename from site/_assets/css/_lightbox.scss rename to site/_sass/_lightbox.scss diff --git a/site/_assets/css/_logo.scss b/site/_sass/_logo.scss similarity index 100% rename from site/_assets/css/_logo.scss rename to site/_sass/_logo.scss diff --git a/site/_assets/css/_menu.scss b/site/_sass/_menu.scss similarity index 100% rename from site/_assets/css/_menu.scss rename to site/_sass/_menu.scss diff --git a/site/_assets/css/_mixins.scss b/site/_sass/_mixins.scss similarity index 100% rename from site/_assets/css/_mixins.scss rename to site/_sass/_mixins.scss diff --git a/site/_assets/css/_off_canvas.scss b/site/_sass/_off_canvas.scss similarity index 100% rename from site/_assets/css/_off_canvas.scss rename to site/_sass/_off_canvas.scss diff --git a/site/_assets/css/_page.scss b/site/_sass/_page.scss similarity index 100% rename from site/_assets/css/_page.scss rename to site/_sass/_page.scss diff --git a/site/_assets/css/_partners.scss b/site/_sass/_partners.scss similarity index 100% rename from site/_assets/css/_partners.scss rename to site/_sass/_partners.scss diff --git a/site/_assets/css/_platforms.scss b/site/_sass/_platforms.scss similarity index 100% rename from site/_assets/css/_platforms.scss rename to site/_sass/_platforms.scss diff --git a/site/_assets/css/_post.scss b/site/_sass/_post.scss similarity index 100% rename from site/_assets/css/_post.scss rename to site/_sass/_post.scss diff --git a/site/_assets/css/_search.scss b/site/_sass/_search.scss similarity index 100% rename from site/_assets/css/_search.scss rename to site/_sass/_search.scss diff --git a/site/_assets/css/_site_nav.scss b/site/_sass/_site_nav.scss similarity index 100% rename from site/_assets/css/_site_nav.scss rename to site/_sass/_site_nav.scss diff --git a/site/_assets/css/_solutions.scss b/site/_sass/_solutions.scss similarity index 100% rename from site/_assets/css/_solutions.scss rename to site/_sass/_solutions.scss diff --git a/site/_assets/css/_syntax-highlighting.scss b/site/_sass/_syntax-highlighting.scss similarity index 100% rename from site/_assets/css/_syntax-highlighting.scss rename to site/_sass/_syntax-highlighting.scss diff --git a/site/_assets/css/_triad.scss b/site/_sass/_triad.scss similarity index 100% rename from site/_assets/css/_triad.scss rename to site/_sass/_triad.scss diff --git a/site/_assets/css/_twbs_custom.scss b/site/_sass/_twbs_custom.scss similarity index 100% rename from site/_assets/css/_twbs_custom.scss rename to site/_sass/_twbs_custom.scss diff --git a/site/_assets/css/_twbs_overrides.scss b/site/_sass/_twbs_overrides.scss similarity index 100% rename from site/_assets/css/_twbs_overrides.scss rename to site/_sass/_twbs_overrides.scss diff --git a/site/_assets/css/_type.scss b/site/_sass/_type.scss similarity index 100% rename from site/_assets/css/_type.scss rename to site/_sass/_type.scss diff --git a/site/_assets/css/themes/_dark.scss b/site/_sass/themes/_dark.scss similarity index 100% rename from site/_assets/css/themes/_dark.scss rename to site/_sass/themes/_dark.scss diff --git a/site/_assets/css/themes/_light.scss b/site/_sass/themes/_light.scss similarity index 100% rename from site/_assets/css/themes/_light.scss rename to site/_sass/themes/_light.scss diff --git a/site/_assets/css/themes/_toggle.scss b/site/_sass/themes/_toggle.scss similarity index 100% rename from site/_assets/css/themes/_toggle.scss rename to site/_sass/themes/_toggle.scss diff --git a/site/_assets/css/main.scss b/site/assets/css/main.scss similarity index 95% rename from site/_assets/css/main.scss rename to site/assets/css/main.scss index ff6169966..617eec9fa 100644 --- a/site/_assets/css/main.scss +++ b/site/assets/css/main.scss @@ -1,10 +1,10 @@ +--- +--- + @charset "utf-8"; $font-size-base: 16px; -@import "font-awesome-sprockets"; -@import "bootstrap-sprockets"; - @import "font-awesome"; @import "twbs_custom"; @import "twbs_overrides";