@wordpress/eslint-plugin dependencies on other eslint plugins should be peer dependencies #39810
Labels
Good First Issue
An issue that's suitable for someone looking to contribute for the first time
Needs Dev
Ready for, and needs developer efforts
[Package] ESLint plugin
/packages/eslint-plugin
[Status] In Progress
Tracking issues with work in progress
[Type] Code Quality
Issues or PRs that relate to code quality
Projects
What problem does this address?
Having these other plugins as dependencies of
@wordpress/eslint-plugin
only works due to npm/yarn/pnpm "hoisting" dependencies. If this hoisting does not happen (e.g. with yarn's PnP or pnpm configured to disable the default compatibility hoisting that's intended to support broken dependencies like this), eslint does not find the depended plugins.If a package such as @rushstack/eslint-patch is used to improve eslint's plugin loading, we can easily run into the opposite problem: if plugins used by
@wordpress/eslint-plugin
are also used directly, we can easily wind up with a version conflict (for example, if the local config uses eslint-plugin-prettier 4.0.0 while@wordpress/eslint-plugin
is still depending on^3.3.0
).What is your proposed solution?
Change these dependencies into peer dependencies with appropriate ranges (preferably
>=
rather than^
), as recommended by Eslint for sharable configs.The text was updated successfully, but these errors were encountered: