CollectionBuilder / collectionbuilder-gh

A framework for creating digital exhibits from a folder of files and a spreadsheet. See Readme below for instructions to get started!
https://collectionbuilder.github.io/collectionbuilder-gh/
MIT License
92 stars 76 forks source link

Issue with github-pages gem with Ruby 3 #51

Open evanwill opened 3 years ago

evanwill commented 3 years ago

Gemfile contained gem "github-pages" to keep in sync with github pages versions. However, the gem only works with Ruby 2.7x and causes error with Ruby 3 when you bundle exec jekyll s.

To avoid issues, I changed the Gemfile to use our generic jekyll + webrick version, b303164a1397d8ac1d5fcc6e8ee86bdc20202d7b It should work for local development on Ruby 3 or 2 now.

Adding this issue in case anyone comes across the error using the original Gemfile. Hopefully this is a temporary thing.

danieljohnevans commented 1 year ago

Can't seem to reproduce issue. No issue installing gem github-pages and running bundle exec jekyll serve

Running ruby 3.1.2p20 and jekyll 4.2.2

Possibly resolved?

evanwill commented 1 year ago

I don't think it is resolved yet... @danieljohnevans to reproduce the error in your CB-GH repository, in your "Gemfile", uncomment gem "github-pages" and comment out jekyll and webrick. So your Gemfile would look like:

gem "github-pages"
#gem "jekyll"
#gem "webrick", "~> 1.7"

If you are running Ruby 3x, you will end up with an error when you bundle exec jekyll s because webrick isn't included in ruby 3 or github-pages gem. If you uncomment "webrick" it will work.

Using the github-pages gem is in theory is the way to keep in sync with the actual build environment on GitHub Pages. The Dependency versions lists what is currently included. But notice that this includes "ruby 2.7.4". Bundler doesn't change ruby versions, so it can't deal with the fact that the gem isn't actually compatible with ruby 3 (the breaking change is just that 3 doesn't have webrick).

I commented out github-pages gem just to simplify things and match our other templates, but if you want to use it you could either: