ilios / ilios

Curriculum Management System for the Health Professions
http://www.iliosproject.org
MIT License
80 stars 41 forks source link

frontend: new deprecations with SASS v1.77.7 #5577

Closed stopfstedt closed 2 weeks ago

stopfstedt commented 1 month ago

i'm seeing these in the output on application startup with this dependency update

Deprecation Warning: Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an upcoming
version. To keep the existing behavior, move the declaration above the nested
rule. To opt into the new behavior, wrap the declaration in `& {}`.

More info: https://sass-lang.com/d/mixed-decls

   ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/fonts.scss
24 │     line-height: calc(4px + 2ex);
   │     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declaration
   ╵
   ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/media.scss
20 │ ┌   @media screen and (min-width: 1200px) {
21 │ │     @content;
22 │ │   }
   │ └─── nested rule
   ╵
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/fonts.scss 24:3  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/styles.scss 1:9  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/app.scss 1:9                  root stylesheet

Deprecation Warning: Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an upcoming
version. To keep the existing behavior, move the declaration above the nested
rule. To opt into the new behavior, wrap the declaration in `& {}`.

More info: https://sass-lang.com/d/mixed-decls

   ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/fonts.scss
26 │     font-size: 16px;
   │     ^^^^^^^^^^^^^^^ declaration
   ╵
   ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/media.scss
20 │ ┌   @media screen and (min-width: 1200px) {
21 │ │     @content;
22 │ │   }
   │ └─── nested rule
   ╵
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/fonts.scss 26:3  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/styles.scss 1:9  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/app.scss 1:9                  root stylesheet

Deprecation Warning: Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an upcoming
version. To keep the existing behavior, move the declaration above the nested
rule. To opt into the new behavior, wrap the declaration in `& {}`.

More info: https://sass-lang.com/d/mixed-decls

    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss
4   │     font-size: var(--fs-#{$step});
    │     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declaration
    ╵
    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/ilios-table.scss
102 │ ┌   th {
103 │ │     border-bottom: 1px solid color.adjust(c.$culturedGrey, $lightness: -15%);
104 │ │     background-color: $backgroundColor;
105 │ │   }
    │ └─── nested rule
    ╵
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss 4:3                    font-size()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/collapsed-container.scss 32:3         collapsed-container-table()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components/collapsed-competencies.scss 15:7  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components.scss 8:9                          @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/styles.scss 2:9                              @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/app.scss 1:9                                              root stylesheet

Deprecation Warning: Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an upcoming
version. To keep the existing behavior, move the declaration above the nested
rule. To opt into the new behavior, wrap the declaration in `& {}`.

More info: https://sass-lang.com/d/mixed-decls

    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss
5   │     line-height: calc(4px + 2ex);
    │     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declaration
    ╵
    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/ilios-table.scss
102 │ ┌   th {
103 │ │     border-bottom: 1px solid color.adjust(c.$culturedGrey, $lightness: -15%);
104 │ │     background-color: $backgroundColor;
105 │ │   }
    │ └─── nested rule
    ╵
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss 5:3                    font-size()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/collapsed-container.scss 32:3         collapsed-container-table()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components/collapsed-competencies.scss 15:7  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components.scss 8:9                          @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/styles.scss 2:9                              @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/app.scss 1:9                                              root stylesheet

Deprecation Warning: Sass's behavior for declarations that appear after nested
rules will be changing to match the behavior specified by CSS in an upcoming
version. To keep the existing behavior, move the declaration above the nested
rule. To opt into the new behavior, wrap the declaration in `& {}`.

More info: https://sass-lang.com/d/mixed-decls

    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss
4   │     font-size: var(--fs-#{$step});
    │     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ declaration
    ╵
    ┌──> /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/ilios-table.scss
102 │ ┌   th {
103 │ │     border-bottom: 1px solid color.adjust(c.$culturedGrey, $lightness: -15%);
104 │ │     background-color: $backgroundColor;
105 │ │   }
    │ └─── nested rule
    ╵
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/font-size.scss 4:3                  font-size()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/mixins/collapsed-container.scss 32:3       collapsed-container-table()
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components/collapsed-taxonomies.scss 15:7  @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/components.scss 9:9                        @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/ilios-common/styles.scss 2:9                            @import
    /tmp/broccoli-229219pNjC8iXpLfIe/out-363-funnel_funnel_styles/app/styles/app.scss 1:9                                            root stylesheet

Warning: 715 repetitive deprecation warnings omitted.
Run in verbose mode to see all warnings.
jrjohnson commented 1 month ago

These are truly ugly to fix. We have a lot of them and mostly we'd just be wrapping the code in a garbage extra block. In many cases I'm not sure they're resolvable as we use multiple mixins and each breaks the other. After messing about with different options I think our best bet is to just wait for the sass release where this is changed. Looking at our code we've written it in many places expecting this to already be true. I'm not sure if that means things are going to break or be fine after the change, but I think we're better off waiting.

jrjohnson commented 2 weeks ago

Fixed in frontend.