From c7e3ff39cfacb80e07893aa14780d183897c7c6e Mon Sep 17 00:00:00 2001 From: Connor Skees Date: Sat, 24 Jul 2021 19:17:29 -0400 Subject: [PATCH] update readme and changelog --- CHANGELOG.md | 6 +++- README.md | 84 +++++++++++---------------------------------------- src/output.rs | 4 +-- 3 files changed, 24 insertions(+), 70 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c469ef..d207de5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,18 @@ # TBD +- **feature complete, byte-for-byte support for bootstrap** + - add bootstrap v5.0.2 to ci + - run script to verify output against the last 2,500 commits to bootstrap - feature complete `min`/`max` support -- special functions and `min`/`max` are now allowed as arguments - removed dependency on `peekmore`, which sped up parsing and simplified lookahead - emit comments inside the `@if` rule body - fix bug in `hue(...)` function in which the value would be incorrect in when the `red` channel was the highest and the green channel was lower than the blue channel - no longer round output from `saturation(...)` function -- improve handling of newlines inside and around `@media` +- improve handling of newlines for `@media`, `@supports`, `@at-root`, placeholder selectors, unrelated style rules, and unknown @-rules - arglists can be equal to comma separated lists - throw error for invalid uses of `@charset` - more robustly parse `@else if`, allowing escaped and uppercase characters +- resolve two `@extend` bugs -- one in which we would incorrectly emit `a b, a > b` as a selector, even though `a b` is a superselector of `a > b`, and a feature called "three-level extend loop", in which a stylesheet where `a` extends `b`, `b` extends `c`, and `c` extends `a` would fail to include all 3 selectors in certain places # 0.10.5 diff --git a/README.md b/README.md index 0580866..e62076d 100644 --- a/README.md +++ b/README.md @@ -20,19 +20,25 @@ a bug except for in the following situations: ## Status -The large features remaining are +`grass` has reached a stage where one can be quite confident in its output. For the average user there should not be perceptible differences from `dart-sass`. + +Every commit of `grass` is tested against bootstrap v5.0.2, and every release is tested against the last 2,500 commits of bootstrap's `main` branch. + +That said, there are a number of known missing features and bugs. The notable features remaining are ``` indented syntax -css imports -@forward +@forward and more complex uses of @use +complex uses of @at-root +@media query merging +media queries with @import +/ as a separator in color functions, e.g. rgba(255, 255, 255 / 0) +Infinity and -Infinity ``` -This is in addition to dozens of smaller features, edge cases, and miscompilations. +All known missing features and bugs are tracked in [#19](https://github.com/connorskees/grass/issues/19). -Starting from `grass v0.9.4`, it is possible to compile Twitter Bootstrap 4 as well as bulma-scss. - -The output is not exact byte-for-byte, and the remaining differences in output are tracked [here](https://github.com/connorskees/grass/issues/4). +`grass` is not a drop-in replacement for `libsass` and does not intend to be. If you are upgrading to `grass` from `libsass`, you may have to make modifications to your stylesheets, though these changes should not differ from those you would have to make if upgrading to `dart-sass`. ## Web Assembly @@ -82,64 +88,8 @@ for [curses](https://github.com/ruby/curses). These numbers come from a default run of the Sass specification as shown above. ``` -2020-11-16 -PASSING: 3415 -FAILING: 1678 -TOTAL: 5093 -``` - -``` -2020-08-15 -PASSING: 3384 -FAILING: 1703 -TOTAL: 5093 -``` - -``` -2020-07-24 -PASSING: 2935 -FAILING: 2158 -TOTAL: 5093 -``` - -``` -2020-06-07 -PASSING: 2442 -FAILING: 2651 -TOTAL: 5093 -``` - -``` -2020-05-01 -PASSING: 2193 -FAILING: 2900 -TOTAL: 5093 -``` - -``` -2020-04-01 -PASSING: 1711 -FAILING: 3382 -TOTAL: 5093 -``` - -``` -2020-03-22 -PASSING: 1442 -FAILING: 3651 -TOTAL: 5093 -``` - -``` -2020-02-03 -PASSING: 242 -FAILING: 4851 -TOTAL: 5093 -``` - -``` -2020-01-20 -PASSING: 143 -FAILING: 4950 -TOTAL: 5093 +2021-07-24 +PASSING: 4018 +FAILING: 2238 +TOTAL: 6256 ``` diff --git a/src/output.rs b/src/output.rs index 835b2aa..973e177 100644 --- a/src/output.rs +++ b/src/output.rs @@ -69,8 +69,8 @@ impl Toplevel { inside_rule, is_group_end, .. - } => *inside_rule && *is_group_end, - Toplevel::Supports { + } + | Toplevel::Supports { inside_rule, is_group_end, ..