sass / dart-sass

The reference implementation of Sass, written in Dart.
https://sass-lang.com/dart-sass
MIT License
3.96k stars 360 forks source link

change in distribution format #2200

Closed theseer closed 7 months ago

theseer commented 7 months ago

When trying to upgrade from a (seriously) outdated version of dart-sass on a project still using 1.56.1 to the latest version, I noticed that - starting 1.58.0 - the distribution archive - at least for linux and macos - has changed: Rather than one staticly linked and stripped binary the archive now contains a set of files: a shell script, a dart runtime and a sass.snapshot.

Is there any documentation as to why that change happened, whether or not it was intentional? Is there any documentation to maybe compile it myself to a single static binary?

ntkme commented 7 months ago

For macOS, the self contained binary does not have proper code signing. For linux, the self contained binary breaks with ld-linux or patchelf due to lack of real ELF linking. It means that the self-contained binary for macOS and linux are only suitable for running locally, and is not ready for distribution.

If you still want to build a self contained binary for local use, see https://github.com/sass/homebrew-sass/blob/master/Formula/sass.rb

nex3 commented 7 months ago

https://github.com/google/dart_cli_pkg/issues/67 is tracking this support, but as @ntkme has outlined there are serious blockers at the moment.

theseer commented 7 months ago

Thanks for the quick answers as well as the pointers!

I'm still a bit confused though: The older releases didn't seem to have had the issues mentioned - at least there used to be single binaries in the distribution archive.

Or does that imply they were actually broken - at least in some cases - and just "nobody" noticed?

nex3 commented 7 months ago

The change was made to fix https://github.com/sass/dart-sass-embedded/issues/78.