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.83k stars 357 forks source link

Support for Jekyll 4.0 #651

Open janko opened 5 years ago

janko commented 5 years ago

Jekyll 4.0.0 is out, and brings lots of nice improvements. It would be really nice if github-pages gem would add support for Jekyll 4.

fsimonis commented 5 years ago

Noteworthy is the upgrade of jekyl-sass-converter to version 2. They switched from Ruby Sass to csass, as the former has reached end-of-life:

Post-install message from sass:

Ruby Sass has reached end-of-life and should no longer be used.

* If you use Sass as a command-line tool, we recommend using Dart Sass, the new
  primary implementation: https://sass-lang.com/install

* If you use Sass as a plug-in for a Ruby web framework, we recommend using the
  sassc gem: https://github.com/sass/sassc-ruby#readme

* For more details, please refer to the Sass blog:
  https://sass-lang.com/blog/posts/7828841
polyrain commented 5 years ago

Can we get an update on this?

wigging commented 5 years ago

I am also awaiting Jekyll v4.0 support for Github Pages. I need to use the "manually order documents" feature for collections but it is only available in v4.0. https://jekyllrb.com/docs/collections/#manually-ordering-documents

DirtyF commented 5 years ago

I'd recommend using GitHub Actions to build your site and publish it on GitHub Pages: https://github.com/BryanSchuetz/jekyll-deploy-gh-pages

kushalpandya commented 5 years ago

I didn't have any dependency on Jekyll 4.0 except for better SCSS compile performance (due to sassc), but I ditched GitHub Pages in favour of Netlify as it can even install 3rd-party Jekyll plugins which aren't supported by GitHub, and you get all the features that GitHub Pages provides + a few extra for free!

DirtyF commented 5 years ago

Please note that Netlify recently limited their free plan to 300min build per month, aka 10min per day.

wigging commented 5 years ago

In the past, how long did it take for GitHub Pages to update to the latest version of Jekyll? Or is GitHub Pages always on an old Jekyll version?

kushalpandya commented 5 years ago

Please note that Netlify recently limited their free plan to 300min build per month, aka 10min per day.

I think 10 min per day is sufficient for most users who are using GitHub Pages where they don't update their site as often each day. In my case, I have a moderately complex site with 50+ documents and a handful of 3rd party jekyll plugins and yet the site builds gets published under 40 seconds on Netlify. So hitting that 10 minute limit for the day would be distant. 😅

In the past, how long did it take for GitHub Pages to update to the latest version of Jekyll? Or is GitHub Pages always on an old Jekyll version?

I think upgrade to 4.0 is going to take some time as it being a major upgrade with 1 breaking change around how post_url behaves as GitHub wouldn't want a lot of broken static sites with such an upgrade. Not to mention that many repos which use GH Pages don't have Gemfile present (myself included when I used Jekyll for the first time to build my portfolio) which is going to affect them with upgrade.

brando90 commented 5 years ago

what is the progress for this? Is there support for Jekyll 4?

kimchirichie commented 5 years ago

As a new user to Jekyll, i am unsure how to post to github pages without the 4.0 support. Would anyone have any suggestions on which previous version i should be using? My bundler says

 github-pages was resolved to 4, which depends on
      jekyll (= 1.1.2)

which doesnt seem right. Regardless, I've given that a try by lowering jekyll@v1.1.2 which is when I ran into issues with jekyll-feed not being supported at jekyll@v1.1.2. So I removed that and got

An error occurred while installing yajl-ruby (1.1.0), and Bundler cannot continue.
Make sure that `gem install yajl-ruby -v '1.1.0' --source 'https://rubygems.org/'` succeeds before bundling.

Ugh... It would be nice to use jekyll@v4.0 but for the time being, which version should I use? Is there a branch that supports jekyll@v4.0?

kimchirichie commented 5 years ago

after a bit of hair pulling, I ACTUALLY read the comments in the Gemfile and commented out the gem jekyll and uncommented github-pages as instructed. hopefully someone finds my findings useful down the road.

# gem "jekyll", "~> 4.0.0"
group :jekyll_plugins do
  gem "jekyll-feed", "~> 0.11"
  gem "github-pages", "202"
end

P.S. jekyll-feed needs to be downgraded from v0.12 to v0.11 and github-pages needs to be told v202

bguiz commented 4 years ago

Jekyll 4 has added support for binary operators within where_exp, and I would like to use this feature. Can we please get a release of github-pages that works with Jekyll 4 pls?

BTW @kimchirichie thanks for this comment - that works out on localhost, but unfortunately not on our particular CI/CD setup - so still need a new release of this page.

EDIT: Quite a few people asking for it here plus a whole bunch of related questions on Stackoverflow.

hoff2-ACN commented 4 years ago

Not sure if this is any help but I suspect one could do a jekyll 4 build in a github action now. Seems plausible enough to look into whether someone's already done it, in fact. Been trying to make time to give it a shot myself.

sujaykundu777 commented 4 years ago

@hoff2-ACN I have built a Theme using Github Pages and Github Actions with the latest Bundler and Jekyll 4.0.0 out of the box, soon will be sharing the tutorial which can be used to deploy your Blog using Jekyll 4 !! 👍 Here it is 🍡 - Deploy Jeyll Blog using Github Actions with Jekyll 4

hoff2-ACN commented 4 years ago

@sujaykundu777 fantastic! thank you so much!

jdickey commented 4 years ago

So, with people either going to GitHub Actions or to Netlify, are we to assume that GitHub no longer cares about the traditional write/commit/push-and-publish workflow? This issue has been open well over five months, and four since a committer to this repo (@dirtyf) left a comment.

There are clearly a number of people waiting/hoping that one of the very few who are familiar with the codebase (if I'm reading this chart right, about 3 people) can either perform the (apparently non-trivial) updates needed to close this issue or open a PR with enough information for one or more of us tyros to get started.

Are we waiting for Godot?

DirtyF commented 4 years ago

Disclaimer: I don't work for GitHub, nor am a maintainer for this gem.

The update is indeed non-trivial, as there are breaking changes and some impacting issues were raised since Jekyll 4.0 was released, due to the new cache API, so it's safer for GitHub not to upgrade to Jekyll 4.0 for now, as they don't want to break existing websites.

As this was already mentioned before, GitHub Actions are the way to go if you want to use a custom Jekyll or plugins at your own risk.

I don't have proper rights on this repository, but this issue should be closed for now, as it won't happen anytime soon, no need to give people false hopes. GitHub should come with a proper documentation on how to run Jekyll on GitHub Pages with GitHub Actions.

jdickey commented 4 years ago

Sorry, @DirtyF, I misunderstood your relationship to the project (and possibly GitHub) from the quality of the comments you'd left earlier.

Actions sans this Gem sound like The Way Forward for those of us who'd like to take advantage of Jekyll 4 (and future versions). Thanks again.

DirtyF commented 4 years ago

On a side note; remote-theme plugin is now supoprting Jekyll 4.0 : https://github.com/benbalter/jekyll-remote-theme/releases/tag/v0.4.2

jasongaylord commented 4 years ago

Any update on the support of Jekyll 4?

sujaykundu777 commented 4 years ago

For reference you can checkout this theme on how to use jekyll 4 until pages-gem supports it (uses github action): devlopr-jekyll 🍡

jasongaylord commented 4 years ago

For reference you can checkout this theme which uses Jekyll 4.0 : devlopr-jekyll 🍡

And how does this theme support version 4 on GitHub Pages? The GitHub Pages Gem only supports 3.8.

DirtyF commented 4 years ago

Jekyll team released a guide on how to use Jekyll 4 and custom plugins on GitHub Pages with GitHub Actions: https://jekyllrb.com/docs/continuous-integration/github-actions/

sujaykundu777 commented 4 years ago

For reference you can checkout this theme which uses Jekyll 4.0 : devlopr-jekyll 🍡

And how does this theme support version 4 on GitHub Pages? The GitHub Pages Gem only supports 3.8.

It uses GitHub Action for using Jekyll 4 to build and deploy your site automatically to gh-pages branch.

jasongaylord commented 4 years ago

Thanks @DirtyF. That's helpful. I did not know they had a supported method.

It would still be nice if GitHub updated their gem to support it.

blakegearin commented 4 years ago

Jekyll 3.9.0 and lower contains the high severity vulnerability CVE-2020-14001. It's not present in Jekyll 4.0.0 or higher. This alone makes it unadvisable to use this gem if you care about the security of your project; it's not simply a nicety.

Please provide an update on when this will be addressed

ashmaroli commented 4 years ago

@blakegearin Jekyll 3.9.0 doesn't contain the said vulnerability. It is flexible enough to allow users upgrade on their discretion. Users just need to run gem update kramdown or bundle update kramdown.

blakegearin commented 4 years ago

@ashmaroli Thanks, I wasn't aware of that! For reference I was able to do that successfully and confirm the vulnerability wasn't present 🙂

wigging commented 4 years ago

Still waiting on GitHub Pages to support Jekyll 4 which is currently sitting at version 4.1.1

DirtyF commented 4 years ago

Jekyll 4.0 has breaking changes and that would break millions of Jekyll sites on Github, so either stick with 3.9.0 or use GitHub Actions to deploy the latest Jekyll 4.x on GitHub Pages

riuson commented 4 years ago

@DirtyF, we are have already file .nojekyll. Why not addd some like .jekyll4 to specify not default version?

limansky commented 4 years ago

I think the solution might be a new gem with another name, like github-pages4 providing Jekyll 4 and friends. This would allow people to use new Jekyll without playing with any kind of CI.

wigging commented 4 years ago

GitHub Actions is not a solution for Jekyll 4 support.

parkr commented 4 years ago

@wigging GitHub Actions could build your site and push the resulting compiled site to the gh-pages branch each time it ran. This is how TravisCI and other CI providers have offered GitHub Pages building in the past. Can you explain why this is not a solution? It would allow you to control your environment and build automatically.

wigging commented 4 years ago

@parkr I don't consider that a solution, it's more of a workaround to the current problem. GitHub Pages currently uses the old version 3.9 of Jekyll where the user can just push changes to GitHub to update their Jekyll site. No GitHub Actions or CI needed. I want that same workflow for the latest version of Jekyll. Is GitHub Pages going to be stuck on Jekyll 3.9 while the rest of the world moves on to Jekyll 4, 5, 6, and beyond?

garrett commented 4 years ago

FWIW: I'm part of a team where we have a website auto-update on push.

We each have our own forks for previewing. It's easy to opt-into the standard GitHub pages auto-building. It's not easy for each of us to set up actions or CI for our forks.

I imagine a lot of other folks are working in a similar manner.

It would be great if GitHub could finally, officially update GitHub Pages to Jekyll 4.x, or at least communicate what's going on and if there's an ETA. (4.0 was released over a year ago.)

cseas commented 3 years ago

Any update on when support for Jekyll 4.0+ might be added? My project has started throwing deprecation warnings which look like they won't go away unless I upgrade Jekyll 3.x to 4.x (https://github.com/jekyll/jekyll/issues/7947)

andrewbanchich commented 3 years ago

@parkr My Jekyll themes use link tags, which behave differently in 4.0. This breaks things for people using GitHub Pages, but not for people deploying with GitHub Actions / building somewhere else.

Can we please update this so I don't have to choose between users I support?

andrewbanchich commented 3 years ago

By choosing to not update Jekyll, GitHub is breaking all new sites going forward.

Regarding breaking existing sites, I expect that would only happen if users push to update their site again.

For those who do push, couldn't GitHub do something to prevent breaking sites anyway? E.g. introduce some custom config file for GH Pages that allows you to specify the Jekyll version, and refuse to compile site updates that don't include that file?

alejandro5042 commented 3 years ago

E.g. introduce some custom config file for GH Pages that allows you to specify the Jekyll version, and refuse to compile site updates that don't include that file?

Or perhaps, assume that the Jekyll version is the current one (as of the time of this comment). So if you want Jekyll 4+, you'll have to include this file.

Bonus points if this config isn't in its own file but part of an existing file, e.g. the Gemfile.

jdickey commented 3 years ago

The fact that this discussion is still ongoing a year on is...concerning. Have GitHub written off supporting Jekyll going forward? If not, credibility would be significantly enhanced by either forward motion wrt Pages/Jekyll or a migration path forward. Just IMO.

chicio commented 3 years ago

@nat please can we have an answer on this topic? 🙏

wigging commented 3 years ago

Jekyll is now at v4.2 (https://jekyllrb.com). By the time GitHub supports v4.0, Jekyll will already be at v5.0. 🤷

twsl commented 3 years ago

Any updates? Can't we just merge #745 ?

wigging commented 3 years ago

It's been more than 1.5 years since Jekyll 4.0 came out. I don't think GitHub will ever update GitHub Pages to support the latest Jekyll version.

runxel commented 3 years ago

It's been more than 1.5 years since Jekyll 4.0 came out. I don't think GitHub will ever update GitHub Pages to support the latest Jekyll version.

Which in itself would not be dramatic, but the lack of recognition and official answers here is. Bad, bad communication. 👎

br3nt commented 3 years ago

Who wants Jekyll 4?? We want Jekyll 4!! When I say Jekyll, you say 4! Jekyll!! Github Team: 3!

alantbarlow commented 3 years ago

I need Jekyll 4 support to prioritize includes over excludes in the config file. It's been 2 years since its release and no one has even been assigned to this issue.

yaitskov commented 3 years ago

Please remove constraint on gem versions. You wont be able to keep up.

hansfn commented 3 years ago

As suggested earlier adding support for the current version of Jekyll (without breaking all existing sites on Github Pages), could be as easy as adding a file .useCurrentJekyll (similar to .nojekyll) to enable it.

Anyway, an official reply from Github would be nice. I tried to make some noise on Twitter 😆