Skip to content

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

@jaffrepaul

Description

@jaffrepaul

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions