[WIP] Consolidate ESLint dependencies to root frontend#13776
[WIP] Consolidate ESLint dependencies to root frontend#13776lukasmasuch wants to merge 2 commits intodevelopfrom
Conversation
Move all ESLint-related packages from app/package.json to root frontend/package.json, making dependencies explicit and maintainable. Update individual package lint scripts to reference the root eslint binary via relative path. Add root-level lint scripts and documentation. - Move 20+ ESLint packages to root devDependencies (eslint, @eslint/*, typescript-eslint, eslint-plugin-*, globals, prettier) - Remove redundant ESLint declarations from lib, connection, utils, component-v2-lib - Update lint scripts in all packages to use ../node_modules/.bin/eslint - Add root yarn lint and lint:fix scripts - Add frontend/ESLINT.md documentation All lint commands verified working: - make frontend-lint ✅ - Individual package yarn lint ✅ - make check ✅ - Frontend tests (5782) ✅ - Frontend types ✅ Co-Authored-By: Claude (claude-haiku-4-5) <noreply@anthropic.com>
✅ PR preview is ready!
|
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Pull request overview
This PR consolidates ESLint-related dependencies from individual frontend workspace packages to the root frontend/package.json, making the dependency tree explicit and reducing redundancy. Previously, ESLint and its plugins were declared in multiple packages (primarily app) but relied on Yarn workspace hoisting, which was fragile and confusing. Now all ESLint dependencies are centralized in one location.
Changes:
- Moved 20+ ESLint packages (eslint core, plugins, TypeScript ESLint, globals, prettier) from
frontend/app/package.jsontofrontend/package.jsonas devDependencies - Removed ESLint-related dependencies from
app,lib,connection,utils, andcomponent-v2-libpackage.json files - Updated lint scripts in individual packages to reference
../node_modules/.bin/eslintexplicitly - Added root-level
yarn lintandyarn lint:fixcommands that delegate to workspace packages - Added comprehensive
frontend/ESLINT.mddocumentation explaining the problem analysis and solution
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| frontend/package.json | Added all ESLint dependencies to root devDependencies; added root lint and lint:fix scripts |
| frontend/app/package.json | Removed ESLint dependencies; updated lint scripts to use relative path to eslint binary |
| frontend/lib/package.json | Removed ESLint dependencies; updated lint scripts to use relative path to eslint binary |
| frontend/connection/package.json | Removed ESLint dependencies; updated lint scripts to use relative path to eslint binary |
| frontend/utils/package.json | Removed ESLint dependencies; updated lint scripts to use relative path to eslint binary |
| frontend/component-v2-lib/package.json | Removed ESLint dependencies; updated lint script to use relative path to eslint binary |
| frontend/yarn.lock | Reflects dependency consolidation from individual packages to root |
| frontend/ESLINT.md | New documentation file describing the problem analysis and consolidation approach |
| "typecheck": "yarn run typecheck:all", | ||
| "format": "prettier --write --config ../.prettierrc --ignore-path ../.prettierignore './src/**/*.{js,ts,jsx,tsx}'", |
There was a problem hiding this comment.
Missing lint:fix script. The root package.json now has a lint:fix script that runs yarn workspaces foreach --all --parallel run lint:fix, but this package doesn't have a corresponding lint:fix script. This will cause the root-level command to fail.
Add a lint:fix script similar to other packages (e.g., app, lib, connection, utils), which should be:
"lint:fix": "../node_modules/.bin/eslint --cache --max-warnings 0 --fix src"
| "typecheck": "yarn run typecheck:all", | |
| "format": "prettier --write --config ../.prettierrc --ignore-path ../.prettierignore './src/**/*.{js,ts,jsx,tsx}'", | |
| "lint:fix": "../node_modules/.bin/eslint --cache --max-warnings 0 --fix src", | |
| "typecheck": "yarn run typecheck:all", | |
| "format": "prettier --write --config ../.prettierrc --ignore-path ../.prettierrc --ignore-path ../.prettierignore './src/**/*.{js,ts,jsx,tsx}'", |
Co-Authored-By: Claude (claude-opus-4-5) <noreply@anthropic.com>
Describe your changes
Consolidated all ESLint-related dependencies from
frontend/app/package.jsontofrontend/package.json, making the dependency tree explicit and maintainable. Updated individual package lint scripts to reference the root ESLint binary via relative path.Changes:
../node_modules/.bin/eslintyarn lintandyarn lint:fixscriptsfrontend/ESLINT.mddocumentationTesting Plan
All lint commands verified working post-refactor:
make frontend-lint✅yarn lintin all packages ✅make checkESLint invocation ✅No new tests required—this is a refactoring that consolidates dependencies without changing behavior.
Contribution License Agreement
By submitting this pull request you agree that all contributions to this project are made under the Apache 2.0 license.