Dragon Master
Overview
This is @hcatlin reporting in with the libsass 3.0 release. It's been a wild month here at libsass HQ (currently an airbnb in NYC). Just before SassConf I was made aware of some great work going on with the @extends
feature and was able to get it merged in during SassConf just last week here in NYC. Since then, we've been doing 3.0 release candidates and testing with the major upstream projects. And, awesomely, a ton of great contributors have shown up to help! Mostly, I'll point out @mgreter and @xzyfer for their tireless work on this release, fixing a ton of issues.
I'd also like to call out the work of @uberska @jaddessi and @michaek for finally writing a decent @extends
implementation. There are still some edgecases to work out (listed here: https://github.com/sass/sass-spec/tree/master/spec/libsass-todo-tests/extend-tests), but the implementation is really solid now and works very well for us mere humans.
LibSass 3.0 is officially targeting Sass 3.4 (s3.4 in libsass parlance) features in this release instead of s3.2 which was our main target for libsass 2.0 and before. libsass 3.1 will be the release where we more strictly follow 3.4 guidelines (see the list of known issues below)
NOTE: LibSass now requires GCC version 4.7 or higher. OS X users should be fine, but Linux users with an older OS might need to update or build the package and install it as a binary.
Features:
- Decent extends support by @uberska, @jaddessi, @themichaek
- Basic Sass Maps Support by @xzyfer
- Better UTF-8 Support @mgreter
- call() function by @wonja
- Better Windows Support by @mgreter
- Spec Enhancements by @themichaek
Bug Fixes:
- Lot's of fixes to compressed output (@xzyfer)
- Whitespace fixes (@xzyfer)
- map-remove() function fix (@xzyfer)
- color name fixes (@SparkyBluefang)
- css-filter names now supported (@benesch)
- "----" interpolant bug fixed (@carsonmcdonald)
- "null" stops printing out in compressed output (@xzyfer)
API Changes:
- Moved
source_map_file
from context to options. - Fix for
omit_source_map_url
(propagate to cpp_ctx). - Removed superfluous
source_maps
from struct, generate - Source maps when
source_map_file
string contains data. - Added in
quote
andunquote
functions by @mgreter - sass2scss is now part of the project, officially by @mgreter. No need to deal with pulling it individually.
Known Issues
- Support for
@each
with maps. There are workarounds for now. - Scoped Variables. Everything is still global, which is more like 3.2.
- !global is an allowed keyword, but does nothing at the moment.
- Can't use numbers as keys in maps
- Foundation support is temporarily broken until they make a small change. Should be released soon! See a quick fix for it here. foundation/foundation-sites#5932
- Sass Spec is currently not passing all tests against Ruby Sass 3.4. In the next phase, we will be working to fix all tests to match 3.4 behaviour exactly.
Special Thanks To...
Xzyfer @xzyfer
Scott Douglas @uberska
Jamie Addessi @jaddessi
Michael Hellein @themichaek
Brian Jones @benesch
Aaron Leung @akhleung
Wonja Fairbrother @wonja
Ian Carrico @iamcarrico
Nikhil Benesch @benesch
Carson McDonald @carsonmcdonald
and everyone else who pitched in!
Also, special thanks to @bdkjones for helping to coordinate CodeKit releases and work with the Foundation team to fix and for never letting us slide on quality. ;)