Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade stylelint-polaris to stylelint v16 #12337

Merged
merged 29 commits into from
Jul 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
73c386f
Upgrade `stylelint` to v16.6.1
aaronccasanova Jul 3, 2024
3a9917f
Drop support for `stylelint` v14 and v15
aaronccasanova Jul 3, 2024
6b8ea1f
Apply changes from `stylelint` v16 migration guide
aaronccasanova Jul 3, 2024
e74b256
Upgrade dependencies
aaronccasanova Jul 3, 2024
00af173
Upgrade `@shopify/stylelint-plugin` and add temporary resolution for …
aaronccasanova Jul 3, 2024
1c63b6a
Apply pnpm-lock.yaml updates
aaronccasanova Jul 3, 2024
096d53f
Add changeset entry
aaronccasanova Jul 3, 2024
f02b859
Upgrade `@shopify/eslint-plugin` and minimum `eslint` version
aaronccasanova Jul 3, 2024
51db8e4
Apply pnpm-lock.yaml updates
aaronccasanova Jul 3, 2024
d516924
Apply `stylelint` patch to await `checkAgainstRule` function calls
aaronccasanova Jul 4, 2024
60c870f
Prettier.format is now async
jesstelford Jul 4, 2024
7ff3993
Update lock file
jesstelford Jul 4, 2024
9adf2f1
prettier ignore some files that shouldn't be formatted
jesstelford Jul 4, 2024
813d555
Fix stylelint failures for at-rule-empty-line-before
jesstelford Jul 5, 2024
c4c5a7e
Fix stylelint failures for selector-max-class by increasing limit fro…
jesstelford Jul 5, 2024
d036663
Fix stylelint failures for selector-max-combinators by increasing lim…
jesstelford Jul 5, 2024
9edd5a7
Fix stylelint failures for selector-max-specificity by increasing lim…
jesstelford Jul 5, 2024
1da4d17
Disable stylelint rule aration-block-no-redundant-longhand-properties
jesstelford Jul 5, 2024
76561ef
Fix bugs uncovered by the stylelint declaration-property-value-no-unk…
jesstelford Jul 5, 2024
bf8c0ba
Fix stylelint failures for rule-empty-line-before
jesstelford Jul 5, 2024
f439d74
Fix stylelint failures for selector-max-compound-selectors by increas…
jesstelford Jul 5, 2024
46a3bb1
Fix needless generic stylelint-disable rules
jesstelford Jul 5, 2024
b66bfe6
Fix stylelint failure for value-no-vendor-prefix
jesstelford Jul 5, 2024
462c756
Format styles with prettier
jesstelford Jul 5, 2024
64efd5c
fix: jest lint errors
kyledurand Jul 5, 2024
dc355ec
Add --experimental-vm-modules flag to polaris-migrator test script
aaronccasanova Jul 5, 2024
06a241d
Update polaris-migrator check util to await prettier.format calls
aaronccasanova Jul 5, 2024
1299dc1
Temporarily remove `styles-insert-stylelint-disable` migration
aaronccasanova Jul 5, 2024
c003716
Add changeset
aaronccasanova Jul 5, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/little-impalas-knock.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@shopify/stylelint-polaris': major
---

Dropped support for `stylelint` v14 and v15
5 changes: 5 additions & 0 deletions .changeset/tricky-mayflies-push.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@shopify/polaris-migrator': major
---

Removed `styles-insert-stylelint-disable` migration
3 changes: 3 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ module.exports = {
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/consistent-type-exports': 'error',
'@typescript-eslint/naming-convention': 'off',
'@typescript-eslint/consistent-indexed-object-style': 'off',
'jsx-a11y/label-has-for': [
2,
{
Expand All @@ -86,6 +87,8 @@ module.exports = {
'jsx-a11y/click-events-have-key-events': 'off',
'jsx-a11y/no-noninteractive-element-interactions': 'off',
'jsx-a11y/no-noninteractive-element-to-interactive-role': 'off',
'jest/no-conditional-in-test': 'off',
'jest/no-standalone-expect': 'off',
'no-restricted-imports': [
'error',
{
Expand Down
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
.next
pnpm-lock.yaml
**/CHANGELOG.md
/polaris-migrator/src/migrations/**/tests/*.scss
/polaris-migrator/templates/**/*.hbs
dist
node_modules
/polaris-react/build
Expand Down
7 changes: 7 additions & 0 deletions .stylelintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,13 @@ module.exports = {
'value-keyword-case': ['lower', {camelCaseSvgKeywords: true}],
'at-rule-no-unknown': null,
'scss/at-rule-no-unknown': true,
'selector-max-class': 5,
'selector-max-combinators': 5,
'selector-max-compound-selectors': 5,
'selector-max-specificity': '0,5,0',
Comment on lines +12 to +15
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm concerned about these changes but I understand the need to ship this PR and how difficult it would be to refactor the css to make these tests pass. @jesstelford did you try just block disabling the rules here? Would that be possible?

// Disabling this rule as it's not forward-compatible with new CSS rules
// that get added. See: https://github.com/stylelint/stylelint/issues/7630
'declaration-block-no-redundant-longhand-properties': null,
},
overrides: [
{
Expand Down
17 changes: 11 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,32 +40,37 @@
"@rollup/plugin-replace": "^5.0.2",
"@rollup/plugin-virtual": "^3.0.1",
"@rollup/pluginutils": "^5.0.2",
"@shopify/eslint-plugin": "^42.0.1",
"@shopify/stylelint-plugin": "^11.0.0",
"@shopify/eslint-plugin": "^45.0.0",
"@shopify/stylelint-plugin": "^14.0.0",
"@shopify/typescript-configs": "^5.1.0",
"@size-limit/preset-small-lib": "^5.0.3",
"@types/jest": "^29.5.12",
"@types/node": "^20.10.0",
"babel-loader": "^9.1.2",
"eslint": "^8.3.0",
"eslint": "^8.56.0",
"eslint-plugin-storybook": "^0.8.0",
"execa": "^5.0.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"jest-preset-stylelint": "^5.0.3",
"jest-preset-stylelint": "^7.0.1",
"jest-watch-typeahead": "^2.2.2",
"js-yaml": "^4.1.0",
"npm-run-all": "^4.1.5",
"postinstall-postinstall": "^2.1.0",
"prettier": "^2.5.0",
"prettier": "^3.3.2",
"rollup": "^3.12.0",
"rollup-plugin-node-externals": "^5.1.0",
"size-limit": "^5.0.3",
"stylelint": "^14.15.0",
"stylelint": "^16.6.1",
"ts-node": "^10.7.0",
"turbo": "^1.11.1",
"typescript": "^4.9.3"
},
"pnpm": {
"patchedDependencies": {
"stylelint@16.6.1": "patches/stylelint@16.6.1.patch"
}
},
"size-limit": [
{
"name": "polaris-react-cjs",
Expand Down
26 changes: 26 additions & 0 deletions patches/stylelint@16.6.1.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
diff --git a/lib/utils/checkAgainstRule.cjs b/lib/utils/checkAgainstRule.cjs
index 862f0c77f2ec60a26ac670230c531be88cead26f..e2c40a2009941ccd9e6c4a8f49f654c8e6ae1ef3 100644
--- a/lib/utils/checkAgainstRule.cjs
+++ b/lib/utils/checkAgainstRule.cjs
@@ -45,7 +45,7 @@ async function checkAgainstRule(options, callback) {
const [primary, secondary] = settings;
const ruleFunc = rule(primary, secondary || {}, context);

- ruleFunc(
+ await ruleFunc(
root,

// NOTE: This temporary PostCSS result doesn't have a property for Stylelint use.
diff --git a/lib/utils/checkAgainstRule.mjs b/lib/utils/checkAgainstRule.mjs
index c82c6c82734ba7a41f59a57aa7a89f149378599f..168270665e953635e3cb223fe5ebdbbbaf69ff54 100644
--- a/lib/utils/checkAgainstRule.mjs
+++ b/lib/utils/checkAgainstRule.mjs
@@ -42,7 +42,7 @@ export default async function checkAgainstRule(options, callback) {
const [primary, secondary] = settings;
const ruleFunc = rule(primary, secondary || {}, context);

- ruleFunc(
+ await ruleFunc(
root,

// NOTE: This temporary PostCSS result doesn't have a property for Stylelint use.
Loading
Loading