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

Eliminate the need for an internal & public ESLint package #24251

Open
jaffrepaul opened this issue Oct 13, 2022 · 4 comments
Open

Eliminate the need for an internal & public ESLint package #24251

jaffrepaul opened this issue Oct 13, 2022 · 4 comments
Labels
npm: @cypress/eslint-plugin-dev @cypress/eslint-plugin-dev package issues process: dependencies Related to internal dependencies type: enhancement Requested enhancement of existing feature

Comments

@jaffrepaul
Copy link
Contributor

jaffrepaul commented Oct 13, 2022

What would you like?

  1. Move Cypess ESLint Dev rules into the Cypress root and eliminate the need to maintain an internal & public package.
  2. Add scripts to repo root and lint rules to individual packages
  3. Update dependencies and stale issues

Why is this needed?

There are a few things that can be addressed:

  1. There is an internal ESLint plugin with rules shared across different entities. However it's published on npm (3,783 weekly DLs 🤔) in addition to the public version (2,378,591 weekly DLs).
  2. The internal version is a dependency and its rules are extended in the public version with additional custom rules.
  3. Some lint rules seem to be run at the root level across the Cypress repo, where adding scripts at the root to run lint rules in each lib could be more optimal.
  4. We could move the rules from the internal dev plugin into the rules at the repo root, remove the dev package and move the public version into the monorepo's npm packages to not be maintaining two and minimize confusion about which to use.

Also...

  1. Users have begun forking the public version to update & make improvements because the current package has gone stale.
  2. ESLint and supporting tooling is very outdated in the dev version, making authoring new rules with modern .js incompatible in the public version.
  3. There are dependencies in the public version that aren't being used and could use general cleanup and maintenance by way of Dependebot or Renovate so the outdated dependency issue is automated away.

Other

No response

@jaffrepaul jaffrepaul added type: enhancement Requested enhancement of existing feature process: dependencies Related to internal dependencies npm: @cypress/eslint-plugin-dev @cypress/eslint-plugin-dev package issues labels Oct 13, 2022
@jaffrepaul jaffrepaul changed the title Eliminate the need for a internal & public ESLint package Eliminate the need for an internal & public ESLint package Oct 14, 2022
@flotwig
Copy link
Contributor

flotwig commented Dec 29, 2022

@jordanpowell88 @jaffrepaul Can this also entail removing lib/scripts from eslint-plugin-dev entirely? As of #25308, I don't see where any of these scripts are used in any repo in the cypress-io org. Also, they appear to be broken, I cannot get them to run, even though the tests are passing.

@jaffrepaul
Copy link
Contributor Author

Makes sense to me!

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
npm: @cypress/eslint-plugin-dev @cypress/eslint-plugin-dev package issues process: dependencies Related to internal dependencies type: enhancement Requested enhancement of existing feature
Projects
None yet
Development

No branches or pull requests

4 participants