doxysphinx icon indicating copy to clipboard operation
doxysphinx copied to clipboard

libsass is marked as deprecated

Open Rubyfi opened this issue 2 years ago • 2 comments

With the release of v3.3.0, doxysphinx dropped the requirement for dart-sass in favor of libsass. However, according to the libsass homepage, it is deprecated and dart-sass should be used instead. There's also a post by sass-lang, which recommends implementers (such as libsass-python) to eventually drop support for libsass as well.

Rubyfi avatar Apr 24 '23 10:04 Rubyfi

First of all, thank you for telling us 👍 😄

I wasn't aware of that as I only checked the first level dependency (https://github.com/sass/libsass-python) where everything looked quite "maintained". 😞

While libsass is deprecated they'll still claim that it is somewhat maintained because they will try to fix bugs and security issues "on best-effort basis":

LibSass and Node Sass will continue to be maintained indefinitely on a best-effort basis, including fixing major bugs and security issues and maintaining compatibility with the latest Node versions.

And as libsass and libsass-python does not depend on many external libs (only six as far as I can see with github dependency views) it's not that critical I guess (e.g. FOSS scanners shouldn't complain here e.g.).

Still, we won't get new features for libsass but as we're only using it for css scoping right now we should get away with it for some time at least (until doxygen/doxygenawesome uses some modern css libsass couldn't understand).

However I think this is not a good situation for us so we should consider changing that again.

A possible replacement could be PyScss. Or even switching to some less compiler (if there is a good one available).

Or we could just restore dartsass usage again... As we removed that in the first place to make installation of doxysphinx easier we could perhaps bundle it.

We'll discuss that issue internally.

mb-emag avatar Apr 24 '23 11:04 mb-emag

Another option is to drop sass and just implement the scoping pass on css, I actually implemented this in a package creatively named simple-css-selector-transform using tinycss2 for use in doxysphinx, because the nodejs dart-sass dependency wasn't suitable for us. In the end I did not do the integration because 3.3.0 dropped the nodejs requirement, but it might be useful in the end.

Maetveis avatar Apr 27 '23 07:04 Maetveis