Releases: kaj/rsass
Release 0.22.0 - 2021-06-20
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
andsass:CallArgs
, and new alternatives insass::ArgsError
. css::Value
has a new variantArgList
.- The
OrderMap::keys()
andvalues()
functions now returns iterators,OrderMap::remove(key)
now returns the removed value.
Improvements
- Better handling of mixin call bodies, the
@content
item, and thecontent_exists
function. Fixes #112. @import
exposes things@forward
ed 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 insass:meta
. - Removed some debug printouts that was accidentally left in 0.21.0.
- Update sass-spec test suite to 2021-06-14.
Release 0.21.0 - 2021-06-01
Progress: 3727 of 6171 tests passed in dart-sass compatibility mode.
Breaking changes
value::Unit
andvalue::ListSeparator
has new alternatives.- The
List
alternative insass::Value
andcss::Value
is modified. - The
Use
alternative insass::Item
is modified, andForward
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
andmeta.module_functions
. - Implement
math.div
function. - Improved parameter checking for
hwb
,alpha
, andinvert
functions insass: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
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 aString
.
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, buta_b
anda-b
are different scopes). - Improve
sass:map
functionsget
andmerge
and adddeep-merge
anddeep-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
Progress: 3371 of 5945 tests passed in dart-sass compatibility mode.
Breaking changes
- The unit of a
Numeric
is now aUnitSet
rather than aUnit
. Error
has new variants and a new field inBadArguments
.- A sass::Value::Call now has a source position.
- A
Rational
is now aRatio<i64>
rather than aRatio<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 callf
. - 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
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 namedsass::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
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 tocompile_scss_path
, andFileContext
is now a trait, the default implementation is renamed toFsFileContext
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
Progress: 2718 of 5840 tests passed in dart-sass compatiblilty mode.
Breaking changes
SourceName
andsass::Item::Import
was changed by #62.Use
was added to thesass::Item
enum by #80.- Changes to
sass::Value
andcss::Vaue
by #81.
Improvements
- PR #80: Implement
@use
for standard sass modules. All standard modules are at least partially supported, onlysass:string
is fully supported. See issue #60 for for module support status. - PR 82: Implement hwb support in
sass:color
. Also, provideFrom<Rgba>
forcss::Value
and deprecate color value constructors. - Provide
From<bool>
forcss::Value
(and deprecateValue::bool(v)
). - PR #62: Improve
ParseError
,SourcePos
, andSourceName
by using located spans by nom_locate in the parser. Asass::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 andValue::NumberBig
is removed. Also,Value
no longer implemntsOrd
but onlyPartialOrd
, 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
Progress: 2320 of 5577 tests passed in dart-sass compatiblilty mode.
Breaking changes
- The
Item::Comment
enum value now contains aSassString
rather than aString
. - The
Error::ParseError
enum value changed, andErrPos
is replaced withSourcePos
andSourceName
. - The error type of
parse_scss_data
changed toParseError
. Unit::dimension()
now returns aDimension
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 nowCopy
.- 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
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
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)
andhsla(h s l / a)
functions, i.e. thechannels
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)