Skip to content

ER: Fix needed for conflicts scss-lint.yml and .stylelint.json #5048

@t-will-gillis

Description

@t-will-gillis

Emergent Requirement - Problem

Additional Details

  • This error has also occurred on PRs for other SCSS files since github/super-linter was updated to v5.0.0 last week, thus the error is likely related to the updated version.
  • The error logs refer to "CssSyntaxError" and "...you should use the 'customSyntax' option when linting something other than CSS"
  • Below, the "Proposed Solutions (draft)" details the code for implementing 'customSyntax' in the .stylelint.json
Log screenshot for Lint SCSS action See lines 76-79: Screenshot 2023-07-21 200735

Issue you discovered this emergent requirement in

Date discovered

7/19/23

Did you have to do something temporarily

  • YES
  • NO

Who was involved

@t-will-gillis @ronaldpaek @angelenelm

What happens if this is not addressed

An error will be raised every time lint-scss.yml runs on an scss file. Furthermore, when the linter raises errors inappropriately it is not functioning as a check on the scss code.

Resources

Recommended Action Items

  • Make a new issue
  • Discuss with team
  • Let a Team Lead know

Potential solutions [draft]

  • Recommended starting point- Caution: the following is not a complete solution yet.:

     "extends": ["stylelint-config-recommended-scss"],
     "customSyntax": "postcss-scss",
    
    • Possible that this line should be:
     "extends": "stylelint-config-sass-guidelines",
    

    or

    "extends" : "stylelint-config-standard-scss",  
    
    • Remove the line "no-extra-semicolons": true. This prop is deprecated.
    • Remove the comma from the line immediately above.
  • Doing the above and running the linter on _privacy-policy.scss will result in successfully implementing scss syntax in the linter, but will also cause an error on line 30 saying that "map-get" should be replaced with "map.get". The Sass Migrator can be used to fix the issue with "map" and will satisfy lint.scss.yml as can be seen in this log.

Log screenshot for Lint SCSS after the above edits (with "map-get") Screenshot 2023-07-21 205809
  • UPDATE 8/22/23: Conclusions after testing the above recommendations:
  • The potential edits shown above for .stylelintrc.json do successfully address the "CssSyntaxError" and the note that "...you should use the 'customSyntax'
  • However, these edits lead stylelint to raise other errors (such as with map-get).
  • The new errors themselves can be addressed using the Sass Migrator: sass-migrator --migrate-deps module main.scss. As shown includes options for tracing the modules/ dependencies throughout the entire codebase. The Migrator will trace and refactor all scss files on the website, using more recent syntax such as:
map-get  ----> map.get 
@includes ----> @use
@media #{xxx} ----> @media #{layout. xxx}
etc.
  • It appears that over 50 files (!) are refactored by Migrator
  • At this point, when Docker is run from here, it appears that none of the css/scss styles are used, that is additional refactoring is still required:
Post Sass Migrator Screenshot 2023-08-22 112322
  • CONCLUSION: I think that all of the above could be done and this could be fixed, but we may want to discuss whether this is worth the time and energy to 'fix' a problem (i.e. with the linter telling us incorrectly that there are errors ) that is not currently effecting the website.

  • Updating the Sass/scss syntax might be a worthwhile endeavor but it appears that this will be a major project.

  • Recent log run after Sass Migrator

Additional comments below

-See comments below

Metadata

Metadata

Assignees

No one assigned

    Labels

    Added to dev/pm agendaBugSomething isn't workingComplexity: LargeDraftIssue is still in the process of being createdEREmergent RequestFeature: Refactor CSSPage is working fine - CSS needs changes to become consistent with other pagesrole: back end/devOpsTasks for back-end developerssize: 0.25ptCan be done in 0.5 to 1.5 hourssize: 3ptCan be done in 13-18 hours

    Type

    No type

    Projects

    Status

    Emergent Requests

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions