Skip to content

Delorean

Compare
Choose a tag to compare
@mgreter mgreter released this 20 Jan 03:38
· 1054 commits to master since this release

Here we go with the latest and most awesome LibSass release ever (so far). First release in 2016 and version 3.3.3 brings us even closer to ruby sass, which is currently at version 3.4.21, and we should be on par as far as our spec tests go. Lots of improvements were done under the hood and will only be visible on the surface with certain edges cases, while a few others will have a more profound impact. If you find differences or other problems, please always check our open issues on github first before opening a new ticket 🔍 📖 🐛 🚑

Parser and rendering refactorings

LibSass is now able to use stringification functions for its internal AST objects whenever its needed. Previously this was only possible when we had access to a context instance, which sometimes made it impossible to invoke the right code path. This tight coupling has been factored out and we can now use these more freely to get our output even closer to ruby sass. Parser now supports multiple operations without parentheses (a > b == c) correctly and an extensive generated test suite for this feature was added to sass-spec. 👟 😄

Full support for variable arguments

Since the introduction variable arguments in Sass 3.3 LibSass has been playing whack-a-mole with bug fixes. As of this release we should have argument handling compatible with the latest stable Ruby Sass. Thanks to @davidkpiano for his many detailed bug reports and his fantastic sassdash library whose extensive test suite helped make this possible.

Lots of bug-fixes

There were two weeks of ongoing bug slaughtering by @mgreter after new-years eve, which resulted in over 80 closed issues (there are 117 closed github issues in total for this release). @xzyfer also had a good streak with 14 closed issues. Special thanks to @ksmadsen for his c++11 random_device fix. Also a big thanks for our continuing contributors @am11 and @saper for their inputs, feedback and pull requests 👋 🙇

Improved spec tests

With this release we have a bit more than 275 new spec tests. We started to include error tests too, which was quite difficult at the beginning, since we need to get the output 100% correct to really pass a spec test, although we really only test the first line for error specs so far. None the less, with this release a lot more error messages are matching the ones of ruby sass and we also catch more cases. But we still let a lot more syntax silently pass than ruby sass does.

Upcoming version 3.3.4

We plan to do at least an additional 3.3.4 release which should include the last missing features for the C-API. Version 3.4.0 is our next window to introduce breaking API changes and I already can say that it will probably only touch the experimental API part. Other than that we are pretty much down to only a handful of open issues and can hopefully close a few of those for the next version, which is currently scheduled for March (without any guarantee of course).