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

LibSass deprecated in October 2020 #116

Closed
CarterPape opened this issue Mar 14, 2021 · 14 comments · Fixed by #124
Closed

LibSass deprecated in October 2020 #116

CarterPape opened this issue Mar 14, 2021 · 14 comments · Fixed by #124

Comments

@CarterPape
Copy link

The Sass implementation on which this gem is based was deprecated October 2020. Again.

Although there is not yet any deprecation warning that prints to announce this deprecation, I figured it might be good to get ahead of the warning and put an issue in about this.

I've forked this repo and will dabble with potential solutions, but I am not a regular contributor and don't program for a living, so it might be ugly.

@NeRdTheNed
Copy link

Looks like Dart Sass is the new Sass implementation, no clue how easy it would be to use it instead.

@rsampaths16
Copy link

Figuring out why @use wasn't working lead me here.

@rsampaths16
Copy link

I was looking around for potential solutions and approches for upgrading sass.
Seems like the dependency we have currently is jekyll/jekyll-sass-converter -> sass/sassc-ruby -> sass/libsass.

The interoperability between sassc-ruby ( Ruby ) & libsass ( C ) is achieved by ffi/ffi. FFI supports native C types along with structs, enums etc. We need something similar for interoperability between Ruby & Dart. I tried searching for libraries that support this but was unsuccessful.

@NeRdTheNed
Copy link

I was looking around for potential solutions and approches for upgrading sass.
Seems like the dependency we have currently is jekyll/jekyll-sass-converter -> sass/sassc-ruby -> sass/libsass.

The interoperability between sassc-ruby ( Ruby ) & libsass ( C ) is achieved by ffi/ffi. FFI supports native C types along with structs, enums etc. We need something similar for interoperability between Ruby & Dart. I tried searching for libraries that support this but was unsuccessful.

Apparently Dart Sass is also distributed as a pure Javascript NPM package, which might be another option.

@CarterPape
Copy link
Author

Apparently Dart Sass is also distributed as a pure Javascript NPM package, which might be another option.

This looks most promising to me. It is compiled from the Dart Sass implementation, which is the "reference implementation of Sass". I have an easier time wrapping my head around an NPM dependency than I do a standalone Dart executable.

@ntkme
Copy link
Contributor

ntkme commented May 29, 2021

There are sass/embedded-protocol and sass/dart-sass-embedded which can be used to create language bindings for sass/dart-sass by launching a separate compiler process and communicating via stdio. I created sass-embedded as a host implementation for Ruby.

Update: The support for sass-embedded has been release with jekyll-sass-converter 2.2.0. Instruction is available here: https://github.com/jekyll/jekyll-sass-converter#sass-embedded

Note: This won't work out of box on GitHub Pages as it still runs Jekyll 3.x, you will have to use a custom action to build your pages with Jekyll 4.x.

@mangkoran
Copy link

Is there any chance that above fix getting merged? This repo haven't had much activity in the last 12+ months.

@mattr-
Copy link
Member

mattr- commented Sep 16, 2021

It looks like both sass/embedded-protocol and sass/dart-sass-embedded are stable enough to start using. Is that a valid assumption? If so, I'm happy to coordinate getting a PR merged and a release done to address the libsass deprecation.

@phisch
Copy link

phisch commented Sep 16, 2021

There are no stable realeases for them yet:
https://github.com/sass/embedded-protocol/releases
https://github.com/sass/dart-sass-embedded/releases

It might make sense to create a PR for it now, and do some early testing. But block the merge until a stable release is published and the PR was tested with it.

edit: just saw that's exactly what ntkme already said above.

@ntkme
Copy link
Contributor

ntkme commented Sep 16, 2021

@mattr- @phisch I just opened a draft PR #124 so that we can start the review process and work on changes.

@ntkme
Copy link
Contributor

ntkme commented Oct 19, 2021

@vikashd @emcoding @imustafin Thanks for trying things out. Now #124 has been merged into this repository, you should update your projects to use this project instead of my fork.

@phisch
Copy link

phisch commented Oct 19, 2021

This has been merged for a while now, so is there a plan to make a new release anytime soon?

erbridge added a commit to dxw/playbook2 that referenced this issue Jan 27, 2022
libsass (the default) is no longer supported. jekyll-sass-converter has
yet to do a release that contains the Dart Sass implementation, so we
import from the main branch directly. See
jekyll/jekyll-sass-converter#116 (comment)
for more details.
@oDinZu
Copy link

oDinZu commented May 2, 2023

I received an error using the CSS vanilla-framework that Ubuntu uses; I assume it is because of libsass beind deprecated.

my _global_functions.scss is using @use 'sass:math'; and the deprecated LibSass doesn't make use of the use statement according to a StackOverflow article from late 2021.

https://stackoverflow.com/questions/61326061/does-jekyll-support-use-sass-statement

Conversion error: Jekyll::Converters::Scss encountered an error while converting 'assets/css/main.scss':
hydenjekyllorg-jekyll-serve-1  |                     Error: Invalid CSS after "... $value: math": expected expression (e.g. 1px, bold), was ".div($value, $numbe" on line 96:19 of _scss/libs/vanilla-framework/_global_functions.scss from line 7:1 of _scss/libs/vanilla-framework/_settings.scss from line 1:1 of _scss/libs/vanilla-framework/_vanilla.scss from line 3:1 of _scss/styles.scss from line 1:1 of main.scss >> $value: math.div($value, $number); ------------------^ 

@sylhare
Copy link

sylhare commented Dec 6, 2023

The issue might be because there's still an open issue for GitHub pages gem which is using a deprecated version of jekyll-sass-converter (1.5.2): github/pages-gem#813

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.