#19134 is an example of an issue where a change was merged into ESLint's main branch that caused downstream breakages in third-party plugins. Two popular examples: unicorn (sindresorhus/eslint-plugin-unicorn#2496) and typescript-eslint (typescript-eslint/typescript-eslint#10338). The specific breaking PR was #17656 (by me, sorry folks 🙂).
Proposal: how about we add some kind of ecosystem test to CI that runs some basic linting with these popular plugins? That way #17656's breakage would have been caught before hitting users.
To start, maybe targeting popular plugins with a lot of rules would be helpful for finding edge cases:
If this is too heavyweight to put into individual PRs, it could alternately put only on the main branch. That way breakages would be discovered before a release.
For reference, we have some tests in typescript-eslint for community plugins that alert us when there's a breakage: e.g. typescript-eslint/typescript-eslint#10322 -> typescript-eslint/typescript-eslint#10328.
Co-authored-by: @kirkwaiblinger
#19134 is an example of an issue where a change was merged into ESLint's
mainbranch that caused downstream breakages in third-party plugins. Two popular examples: unicorn (sindresorhus/eslint-plugin-unicorn#2496) and typescript-eslint (typescript-eslint/typescript-eslint#10338). The specific breaking PR was #17656 (by me, sorry folks 🙂).Proposal: how about we add some kind of ecosystem test to CI that runs some basic linting with these popular plugins? That way #17656's breakage would have been caught before hitting users.
To start, maybe targeting popular plugins with a lot of rules would be helpful for finding edge cases:
eslint-plugin-unicorn: for miscellaneous rulestypescript-eslint: for the TypeScript sideeslint-plugin-vue: for the framework sideIf this is too heavyweight to put into individual PRs, it could alternately put only on the
mainbranch. That way breakages would be discovered before a release.For reference, we have some tests in typescript-eslint for community plugins that alert us when there's a breakage: e.g. typescript-eslint/typescript-eslint#10322 -> typescript-eslint/typescript-eslint#10328.
Co-authored-by: @kirkwaiblinger