github / pages-gem

A simple Ruby Gem to bootstrap dependencies for setting up and maintaining a local Jekyll environment in sync with GitHub Pages
http://pages.github.com
MIT License
1.82k stars 350 forks source link

Update GithubPages to use Ruby 3.x and latest jekyll #825

Open gucio321 opened 2 years ago

gucio321 commented 2 years ago

Before submitting an issue, please be sure to

This issue affects

The GitHub Pages Gem is intended to help users replicate the GitHub Pages build environment locally. If your issue affects both the hosted version and the version previewed locally, you may be better suited reporting seeking support in other forums.

What did you do (e.g., steps to reproduce)

Hi there, I'm trying to build my website locally and getting ruby crash after running bundle exec jekyll serve:

crash log ```console Configuration file: /home/username/git/sCHEMe-website/_config.yml Source: /home/username/git/sCHEMe-website Destination: /home/username/git/sCHEMe-website/_site Incremental build: disabled. Enable with --incremental Generating... GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data. done in 0.658 seconds. jekyll 3.9.0 | Error: no implicit conversion of Hash into Integer /usr/share/gems/gems/pathutil-0.16.2/lib/pathutil.rb:502:in `read': no implicit conversion of Hash into Integer (TypeError) from /usr/share/gems/gems/pathutil-0.16.2/lib/pathutil.rb:502:in `read' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/utils/platforms.rb:75:in `proc_version' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/utils/platforms.rb:40:in `bash_on_windows?' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/build.rb:77:in `watch' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/build.rb:43:in `process' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/serve.rb:93:in `block in start' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/serve.rb:93:in `each' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/serve.rb:93:in `start' from /usr/share/gems/gems/jekyll-3.9.0/lib/jekyll/commands/serve.rb:75:in `block (2 levels) in init_with_program' from /usr/share/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `block in execute' from /usr/share/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `each' from /usr/share/gems/gems/mercenary-0.3.6/lib/mercenary/command.rb:220:in `execute' from /usr/share/gems/gems/mercenary-0.3.6/lib/mercenary/program.rb:42:in `go' from /usr/share/gems/gems/mercenary-0.3.6/lib/mercenary.rb:19:in `program' from /usr/share/gems/gems/jekyll-3.9.0/exe/jekyll:15:in `' from /usr/bin/jekyll:23:in `load' from /usr/bin/jekyll:23:in `' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli/exec.rb:63:in `load' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli/exec.rb:63:in `kernel_load' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli/exec.rb:28:in `run' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli.rb:474:in `exec' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli.rb:30:in `dispatch' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/cli.rb:24:in `start' from /usr/share/gems/gems/bundler-2.2.22/libexec/bundle:49:in `block in ' from /usr/share/gems/gems/bundler-2.2.22/lib/bundler/friendly_errors.rb:128:in `with_friendly_errors' from /usr/share/gems/gems/bundler-2.2.22/libexec/bundle:37:in `' from /usr/bin/bundle:23:in `load' from /usr/bin/bundle:23:in `
' ```

I'm using ruby 3.0.2

$ ruby --version
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]

steps to reproduce are:

What did you expect to happen?

site should be served

What happened instead?

crash I mentioned above

Additional information

as far as I understand this happens because of ruby's backword compatibility as iirc github uses ruby 2.x but the currently used version is 3.x . If so, is it possible to update that version?

muriloloffi commented 2 years ago

I'd like to add to this request something that I think is related: a version bump for liquid (from 4.0.3 to >= 5) as dependency. Current version is not compatible with theme-check.

danielhjacobs commented 2 years ago

This was caused by https://github.com/envygeeks/pathutil/issues/4 and shouldn't be an issue with Jekyll version 3.9.2

Jekyll v3.9.2 finally removed Jekyll's main dependency on pathutil (https://github.com/jekyll/jekyll/pull/8942/commits/55e3648338946b1d1b47be7c9ad36cba44123227). Now that Github Pages updated to that version of Jekyll (see https://github.com/github/pages-gem/pull/833), this issue shouldn't affect Github pages or Jekyll anymore.