Skip to content
Snippets Groups Projects
  1. Jul 25, 2022
    • Matt Wang's avatar
      Update Stylelint to v14, extend SCSS plugins, remove primer-* configs, resolve issues (#821) · c2ec3d89
      Matt Wang authored
      This is a catch-all PR that modernizes and updates our Stylelint config, and resolves all open issues. This is a pretty big change - so I want to update all of our related dependencies in lockstep.
      
      In particular, this PR
      
      - [x] updates stylelint to `v14`
      - [x] adds in the standard stylelint config for SCSS (`stylelint-config-standard-scss`)
      - [x] swaps out `stylelint-config-prettier` for `stylelint-config-prettier-scss`
      - [x] ~~properly update `@primer`-related plugins:~~ completely remove `primer` from our configuration
      - [x] autofix, manually resolve, or disable all newly-introduced lint errors; **I've avoided manually resolving errors that would be a behavioural change**
      - [x] re-runs `npm run format`
      
      See the "next steps" section on some extra thoughts on disabling errors.
      
      (implicitly, I'm also using node 16/the new package-lock format).
      
      ### disabling rules and next steps
      
      I've introduced several new disabled rules. Let me quickly explain what's going on; there are two categories of rules I've disabled:
      
      1. rules that were temporary disables; they were frequent enough that I couldn't manually resolve them, but should be simple. **I plan on opening issues to re-enable each of these rules**, just after this PR
          - `declaration-block-no-redundant-longhand-properties`: this is just tedious and error-prone
          - `no-descending-specificity`: this one is tricky since it could have impacts on the cascade (though that seems unlikely)
          - `scss/no-global-function-names`: I think we need to [import map and then use `map.get`](https://stackoverflow.com/questions/64210390/sass-map-get-doesnt-work-map-get-does-what-gives), but I'll leave this as out of scope for now
      2. rules that are long-term disables; due to the SASS-based nature of our theme, I think we'll keep these in limbo
          - `alpha-value-notation` causes problems with SASS using the `modern` syntax - literals like `50%` are not properly interpolated, and they cause formatting issues on the site
          - `color-function-notation` also causes problems with SASS, but in this case the `modern` syntax breaks SASS compilation; we're not alone (see this [SO post](https://stackoverflow.com/questions/71805735/error-function-rgb-is-missing-argument-green-in-sass)). 
      
      In addition, we have many inline `stylelint-disable` comments. I'd open a separate issue to audit them, especially since I think some disables are unnecessary.
      
      ### on Primer 
      
      **note: there hasn't been much other discussion, so I'm going to remove primer's stylelint config.**
      
      If I do add `@primer/stylelint-config`, I get *a ton* of errors about now using `@primer`'s in-built SCSS variables. I imagine that we probably won't want to use these presets (though I could be wrong). In that case, I think we could either:
      
      1. disable all of those rules
      4. not use `@primer/stylelint-config`, since we're not actually using primer, and shift back to the standard SCSS config provided by Stylelint
      
      ~~Any thoughts here? I also don't have the original context as to why we do use the primer rules, perhaps @pmarsceill can chime in?~~
      c2ec3d89
  2. Jun 18, 2021
  3. Sep 14, 2020
  4. Jul 20, 2020
  5. Jun 30, 2020
  6. Jun 28, 2020
  7. Jun 27, 2020
  8. Jun 01, 2020
  9. May 01, 2020
  10. Apr 24, 2020
  11. Dec 18, 2019
  12. Dec 03, 2019
  13. Aug 15, 2019
  14. Aug 14, 2019
  15. May 19, 2019
  16. Nov 18, 2018
  17. Nov 15, 2018
  18. Mar 27, 2017
  19. Mar 24, 2017
  20. Mar 09, 2017
Loading