Skip to content

Releases: kaj/rsass

Release 0.22.0 - 2021-06-20

20 Jun 16:22
@kaj kaj
Compare
Choose a tag to compare

Progress: 3992 of 6180 tests passed in dart-sass compatibility mode.

Breaking changes

  • The sass::Item::MixinCall enum alternative was modified.
  • Signature changes in css::CallArgs and sass:CallArgs, and new alternatives in sass::ArgsError.
  • css::Value has a new variant ArgList.
  • The OrderMap::keys() and values() functions now returns iterators, OrderMap::remove(key) now returns the removed value.

Improvements

  • Better handling of mixin call bodies, the @content item, and the content_exists function. Fixes #112.
  • @import exposes things @forwarded in the imported module.
  • Many improvements in parameter passing to functions and mixins. PR #113.
  • Some more fixes regarding function calls and modules.
  • Support the keywords function in sass:meta.
  • Removed some debug printouts that was accidentally left in 0.21.0.
  • Update sass-spec test suite to 2021-06-14.

Thanks to @Keats for reporting #112 and #108.

Release 0.21.0 - 2021-06-01

01 Jun 15:04
@kaj kaj
Compare
Choose a tag to compare

Progress: 3727 of 6171 tests passed in dart-sass compatibility mode.

Breaking changes

  • value::Unit and value::ListSeparator has new alternatives.
  • The List alternative in sass::Value and css::Value is modified.
  • The Use alternative in sass::Item is modified, and Forward added.

Improvements

  • Most of @forward and some more of @use is now supported. PR #109 and #110.
  • Handle unknown units. PR #101.
  • List can be undecided between beeing comma-separated and beeing space-separated. PR #102.
  • Improved parameter handling and returned values of the supported selector functions. PR #103.
  • Implement meta.module_variables and meta.module_functions.
  • Implement math.div function.
  • Improved parameter checking for hwb, alpha, and invert functions in sass:color module.
  • Support slash-separated lists. PR #111.
  • The if function evaluates its arguments lazily. Issue #107.
  • The --include-path cli argument is now named --load-path.
  • At least some documentation on all public items.
  • Update sass-spec test suite to 2021-05-24. Also include "other" files (for @use and @import) in rust code for the suite.

Tested with rustc 1.52.1, 1.50.0, 1.48.0, 1.45.2, 1.53.0-beta.3 (82b862164 2021-05-22), and 1.54.0-nightly (657bc0188 2021-05-31).

Release 0.20.0

25 Mar 21:27
@kaj kaj
Compare
Choose a tag to compare

Progress: 3456 of 5962 tests passed in dart-sass compatibility mode.

Breaking changes

  • The name of a module is no longer a sass::Name, but instead a String.

Improvements

  • A space-separated list can be a key in a map.
  • The builtin modules does not inherit the global functions.
  • Scope names is not sass::Name ($a_b and $a-b is the same variable, but a_b and a-b are different scopes).
  • Improve sass:map functions get and merge and add deep-merge and deep-remove.

Tested with rustc 1.51.0 (2fd73fabe 2021-03-23), 1.48.0 (7eac88abb 2020-11-16), 1.46.0 (04488afe3 2020-08-24), 1.44.1 (c7087fe00 2020-06-17), 1.51.0-beta.8 (73f48e5f6 2021-03-18), 1.53.0-nightly (07e0e2ec2 2021-03-24).

Release 0.19.0

14 Mar 18:34
@kaj kaj
Compare
Choose a tag to compare

Progress: 3371 of 5945 tests passed in dart-sass compatibility mode.

Breaking changes

  • The unit of a Numeric is now a UnitSet rather than a Unit.
  • Error has new variants and a new field in BadArguments.
  • A sass::Value::Call now has a source position.
  • A Rational is now a Ratio<i64> rather than a Ratio<isize>.

Improvements

  • Added a Contributing section to readme.
  • Handle values with multiple units. PR #97.
  • Show call position for errors in function calls, and test for type errors in many standard functions. Many error messages are made identical to dart-sass, improving test-suit progress with more than 400 tests. PR #99.
  • Fix issue #98: overflow in rational number arithmetic.
  • Allow @at-root at document root.
  • Boolean operators is truly lazy, e.g. false and f($x) does not call f.
  • Refactored number parsing to use overflowing rationals. PR #100.
  • Test suite sass-spec updated to 2021-03-02.
  • Updated num-rational and num-bigint to 0.4.0.

Thanks to @alvra for reporting #98.

Tested with rustc 1.50.0 (cb75ad5db 2021-02-10), rustc 1.48.0 (7eac88abb 2020-11-16), rustc 1.46.0 (04488afe3 2020-08-24), rustc 1.44.1 (c7087fe00 2020-06-17), rustc 1.51.0-beta.6 (6a1835ad7 2021-03-12), and rustc 1.52.0-nightly (acca81892 2021-03-13).

Release 0.18.0 - 2021-02-25

25 Feb 21:49
@kaj kaj
Compare
Choose a tag to compare

Progress: 2892 of 5945 tests passed in dart-sass compatibility mode.

Breaking changes

Lots of things have been moved around. See Scope, Numeric, and Function in particular.

Improvements

  • Support @use of user-defined modules. PR #96.
  • Improve trigonometric precision by using f64 π rather than rational.
  • Handle more peculiarities with atan2, pow, infinities and negative zero.
  • Improve name lookups in scopes and modules, PR #87.
  • new struct Scope replaces trait and three structs. PR #95.
  • A color can be Hsla or Hwba as well as Rgba. PR #88, #89.
  • Handle units in @for loops inside sass functions.
  • Some types moved into value mod, imporoved docs. PR #90.
  • Add support for $=, ~= and ^= in css attribute selectors. Issue #91, PR #92.
  • A Numeric is a Number with a Unit. Also hide NumValue enum. PR #93.
  • The SassFunction type is now named sass::Function.
  • Test suite sass-spec updated to 2021-02-18.
  • Some cleanups.

Thanks to @mfeckie for #91/#92.

Tested with rustc 1.50.0 (cb75ad5db 2021-02-10), rustc 1.48.0 (7eac88abb 2020-11-16), rustc 1.46.0 (04488afe3 2020-08-24), rustc 1.44.1 (c7087fe00 2020-06-17), rustc 1.51.0-beta.3 (b631c914c 2021-02-24), and rustc 1.52.0-nightly (a8486b64b 2021-02-24).

Release 0.17.0

29 Jan 15:17
@kaj kaj
Compare
Choose a tag to compare

Progress: 2784 of 5936 tests passed in dart-sass compatiblilty mode.

Breaking changes

  • Update nom to 6.0 rasises the minimally supported compiler version to 1.44.0. Also, the dependency is technically exposed.
  • sass::Item::Use was modified by #84.
  • compile_scss_file is renamed to compile_scss_path, and FileContext is now a trait, the default implementation is renamed to FsFileContext by #85.

Improvements

  • Allow customizing file loading by providing a custom impl of a FileContext, PR #85.
  • Support the @use name as * syntax, PR #84.
  • Make Error::BadValue a little closer to whats expected.
  • Handle units in @for loops.
  • Update nom to 6.0, PR #83.
  • Update rand to 0.8, PR #86.
  • Testing is now done with github actions rather than travis (Appveyor remains for window builds).
  • sass-spec test suite updated to 2021-01-20.

Thanks to @paolobarbolini and @alvra for code contributions.

Tested with rustc 1.49.0 (e1884a8e3 2020-12-29), 1.44.1 (c7087fe00 2020-06-17), 1.46.0 (04488afe3 2020-08-24), 1.48.0 (7eac88abb 2020-11-16), 1.50.0-beta.8 (1cd030396 2021-01-20), and 1.51.0-nightly (c0b64d97b 2021-01-28).

Release 0.16.0

10 Nov 22:40
@kaj kaj
Compare
Choose a tag to compare

Progress: 2718 of 5840 tests passed in dart-sass compatiblilty mode.

Breaking changes

  • SourceName and sass::Item::Import was changed by #62.
  • Use was added to the sass::Item enum by #80.
  • Changes to sass::Value and css::Vaue by #81.

Improvements

  • PR #80: Implement @use for standard sass modules. All standard modules are at least partially supported, only sass:string is fully supported. See issue #60 for for module support status.
  • PR 82: Implement hwb support in sass:color. Also, provide From<Rgba> for css::Value and deprecate color value constructors.
  • Provide From<bool> for css::Value (and deprecate Value::bool(v)).
  • PR #62: Improve ParseError, SourcePos, and SourceName by using located spans by nom_locate in the parser. A sass::Item::Import now handles where each file is imported from, to improve error reporting.
  • PR #81: Improved number handlig. Now Value::Number handles both machine-sized rationals, bignum rationals and floats internally and Value::NumberBig is removed. Also, Value no longer implemnts Ord but only PartialOrd, to handle f64 NaN an infinite values correctly.
  • Improve parsing of @else clauses.
  • Update spec to 2020-10-29.

Tested with rustc 1.47.0 (18bf6b4f0 2020-10-07), 1.44.1 (c7087fe00 2020-06-17), 1.42.0 (b8cedc004 2020-03-09), 1.40.0 (73528e339 2019-12-16), 1.38.0 (625451e37 2019-09-23), 1.48.0-beta.8 (121901459 2020-11-08), and 1.49.0-nightly (25f6938da 2020-11-09),

Release 0.15.0

10 Nov 22:38
@kaj kaj
Compare
Choose a tag to compare

Progress: 2320 of 5577 tests passed in dart-sass compatiblilty mode.

Breaking changes

  • The Item::Comment enum value now contains a SassString rather than a String.
  • The Error::ParseError enum value changed, and ErrPos is replaced with SourcePos and SourceName.
  • The error type of parse_scss_data changed to ParseError.
  • Unit::dimension() now returns a Dimension rather than a &str.

Improvements

  • PR #79: Refactor some error handling. Relates to #46.
  • Improve map parsing (a map is parsed as a plain vec of key/value pairs, filterig duplicates happens only when it is evaluated).
  • Allow multiple & items in the same selector.
  • & evaluates to null when used as a value without enclosing selector.
  • Implement the @debug directive.
  • Fix a % b evaluation for negative values.
  • Allow / ignore comments in properties and values.
  • Allow !default and !global in any order on variable declarations.
  • Improve inspect(...) formatting of list values.
  • Refactor and improve arithmetic on different units.
  • ListSeparator is now Copy.
  • Allow interpolation in comments.
  • Some refactoring

Tested with rustc 1.47.0 (18bf6b4f0 2020-10-07), 1.44.1 (c7087fe00 2020-06-17), 1.42.0 (b8cedc004 2020-03-09), 1.40.0 (73528e339 2019-12-16), 1.38.0 (625451e37 2019-09-23), 1.48.0-beta.5 (4c78178b1 2020-10-21), and 1.49.0-nightly (ffa2e7ae8 2020-10-24).

Release 0.14.2

13 Oct 16:30
@kaj kaj
Compare
Choose a tag to compare

Progress: 2294 of 5577 tests passed in dart-sass compatiblilty mode.

  • Some improvements in list handling, formatting and introspection.
  • Change default precision to 10, matching dart-sass.
  • Semicolon is optional after variable, if last in block or file.
  • Fix addition (and subtraction) of values with comparable units.
  • Fix css value equality for map keys and other "special" places.
  • Recognize known @-rules with escaped characters.
  • Don't copy extra @charset rules to output (one is included if needed).
  • Some internal refactor and cleanup.
  • Update spec to 2020-10-07.

Tested with rustc 1.47.0 (18bf6b4f0 2020-10-07), 1.44.1 (c7087fe00 2020-06-17), 1.42.0 (b8cedc004 2020-03-09), 1.40.0 (73528e339 2019-12-16), 1.38.0 (625451e37 2019-09-23), 1.48.0-beta.2 (212e76c31 2020-10-08), and 1.49.0-nightly (8dae8cdcc 2020-10-12)

Release 0.14.0

03 Oct 20:41
@kaj kaj
Compare
Choose a tag to compare

Progress: 2234 of 5510 tests passed in dart-sass compatiblilty mode.

  • PR #76 and #78: Target dart-sass rather than libsass compatibilty. This sets the target when testing and changes some different behaviour, including how strings are parsed and handled.
  • PR #75 from @divergentdave: Parse and add Value variants for BigInt numbers
  • PR #77: Support rgba(r g b / a) and hsla(h s l / a) functions, i.e. the channels parameter with div-separated alpha channel.
  • Fix @import indention.
  • Improve function default argument parsing and dont panic in parse_value_data.
  • Handle dictionary-ellipsis style call-by-varargs for functions.
  • PR #73 from @divergentdave: Remove three unwraps from escaped_char
  • PR #71 from @connorskees: Further optimize number printing
  • Update travis url in README.
  • PR #70 from @svenstaro: Mention grass rather than sassers, as sassers appears to be dead while grass is in rather active development.
  • Add a CHANGELOG.md
  • Update spec to 2020-09-17.
  • Update num-rational to 0.3.0.

Tested with rustc 1.46.0 (04488afe3 2020-08-24), 1.44.1 (c7087fe00 2020-06-17), 1.42.0 (b8cedc004 2020-03-09), 1.40.0 (73528e339 2019-12-16), 1.38.0 (625451e37 2019-09-23), 1.47.0-beta.7 (e28d2bd09 2020-10-01), and 1.48.0-nightly (8876ffc92 2020-10-02)