Skip to content

chore(FR-2851): drop deprecated/dead babel deps and dead babel.config.js#7321

Merged
graphite-app[bot] merged 1 commit into
mainfrom
05-08-chore_fr-2851_replace_deprecated_babel_deps_and_drop_unused_babel-eslint
May 8, 2026
Merged

chore(FR-2851): drop deprecated/dead babel deps and dead babel.config.js#7321
graphite-app[bot] merged 1 commit into
mainfrom
05-08-chore_fr-2851_replace_deprecated_babel_deps_and_drop_unused_babel-eslint

Conversation

@yomybaby
Copy link
Copy Markdown
Member

@yomybaby yomybaby commented May 8, 2026

Resolves #7320(FR-2851)

Summary

Three direct dependencies print deprecated warnings on every pnpm install. This PR retires them, and while we're in the file, deletes the dead babel.config.js they were tied to plus the four root babel plugins it was the sole consumer of.

Direct dep changes

  • react/package.json: @babel/plugin-proposal-private-property-in-object@babel/plugin-transform-private-property-in-object (Babel 7.13+ rename, drop-in re-export).
  • Root package.json: removed
    • babel-eslint — dead. ESLint 9 flat configs (eslint.config.mjs, react/eslint.config.js, e2e/eslint.config.mjs, packages/backend.ai-ui/eslint.config.js) all use @typescript-eslint/parser + @eslint/js; grep -rn babel-eslint returns zero hits.
    • @babel/plugin-proposal-class-properties — only ever referenced from babel.config.js, which is dead (see below).
    • @babel/plugin-proposal-decorators — same.
    • @babel/plugin-syntax-dynamic-import — same.
    • @babel/parser, @babel/types — no consumer in src/, scripts/, electron-app/, packages/.
  • Root babel.config.js: deleted. After the CRA→Vite migration, no build path reads it: @vitejs/plugin-react defaults to configFile: false/babelrc: false and both react/vite.config.ts and packages/backend.ai-ui/vite.config.ts configure babel.plugins inline (babel-plugin-react-compiler + babel-plugin-relay). tsup (used by backend.ai-client) uses esbuild, not babel. There is no babel-loader, @babel/register, or babel-node consumer in the repo.

Why now

Every contributor sees these three warnings on pnpm install and has no way to silence them without editing a direct dependency. The babel.config.js next to them was orphaned and pinning four real packages for nothing.

Lockfile diff

The lockfile shrinks ~10K lines. The shrink is mostly from babel-eslint's 2019-era transitive chain dropping out, but it also drops a few entries that were already orphaned in main's lockfile from the CRA→Vite migration (react-scripts patch chain, @craco/craco, etc.). These had no live consumer; pnpm install simply re-resolves them out. No behavior change.

The legacy plugin-proposal-class-properties@7.18.6 and plugin-proposal-private-property-in-object@7.21.11 entries that remain in the lockfile are pulled in transitively by babel-preset-react-app@10.1.0 (still a react/ devDep). Removing that preset is out of scope for this PR but a reasonable follow-up — it would also let the renamed transform-* direct dep in react/package.json go away.

Verification

  • pnpm install no longer prints deprecated warnings for babel-eslint, @babel/plugin-proposal-class-properties, or @babel/plugin-proposal-private-property-in-object.
  • bash scripts/verify.sh — Relay / Lint / Format pass. The TypeScript failures shown (packages/backend.ai-client/src/client.ts implicit-any, DeleteForeverVFolderModalV2.tsx BulkPurgeVFoldersV2Input.options) are pre-existing on main (verified by re-running with my changes stashed), unrelated to babel deps.

Test plan

  • pnpm install shows no deprecation warnings for the three packages above.
  • pnpm run dev starts the dev server without runtime errors related to babel transforms.
  • CI passes the same set of checks that pass on main.

@github-actions github-actions Bot added the size:XL 500~ LoC label May 8, 2026
Copy link
Copy Markdown
Member Author

yomybaby commented May 8, 2026


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • flow:merge-queue - adds this PR to the back of the merge queue
  • flow:hotfix - for urgent changes, fast-track this PR to the front of the merge queue

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has required the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 8, 2026

Coverage Report for react-coverage (./react)

Status Category Percentage Covered / Total
🔵 Lines 6.5% 1783 / 27402
🔵 Statements 5.37% 1978 / 36784
🔵 Functions 5.19% 296 / 5699
🔵 Branches 3.77% 1293 / 34255
File CoverageNo changed files found.
Generated in workflow #487 for commit 3c023bb by the Vitest Coverage Report Action

@yomybaby yomybaby force-pushed the 05-08-chore_fr-2851_replace_deprecated_babel_deps_and_drop_unused_babel-eslint branch from ff069a2 to fdfe95b Compare May 8, 2026 13:31
@yomybaby yomybaby changed the title chore(FR-2851): replace deprecated babel deps and drop unused babel-eslint chore(FR-2851): drop deprecated/dead babel deps and dead babel.config.js May 8, 2026
@yomybaby yomybaby marked this pull request as ready for review May 8, 2026 13:32
Copilot AI review requested due to automatic review settings May 8, 2026 13:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR reduces workspace maintenance noise by removing deprecated/unused Babel dependencies and deleting an orphaned root Babel config that is no longer part of the build toolchain after the CRA→Vite migration.

Changes:

  • Replaces deprecated @babel/plugin-proposal-private-property-in-object with @babel/plugin-transform-private-property-in-object in react/.
  • Removes unused root devDependencies (babel-eslint, several Babel proposal/syntax plugins, and @babel/parser/@babel/types).
  • Deletes the unused root babel.config.js.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated no comments.

File Description
react/package.json Swaps the deprecated private-property plugin to the non-deprecated transform variant.
package.json Drops unused/deprecated Babel-related devDependencies (including babel-eslint).
babel.config.js Removes an unused Babel configuration file that no longer has an active consumer.

@yomybaby yomybaby mentioned this pull request May 8, 2026
4 tasks
@graphite-app
Copy link
Copy Markdown

graphite-app Bot commented May 8, 2026

Merge activity

….js (#7321)

Resolves #7320(FR-2851)

## Summary

Three direct dependencies print `deprecated` warnings on every `pnpm install`. This PR retires them, and while we're in the file, deletes the dead `babel.config.js` they were tied to plus the four root babel plugins it was the sole consumer of.

### Direct dep changes

- `react/package.json`: `@babel/plugin-proposal-private-property-in-object` → `@babel/plugin-transform-private-property-in-object` (Babel 7.13+ rename, drop-in re-export).
- Root `package.json`: removed
  - `babel-eslint` — dead. ESLint 9 flat configs (`eslint.config.mjs`, `react/eslint.config.js`, `e2e/eslint.config.mjs`, `packages/backend.ai-ui/eslint.config.js`) all use `@typescript-eslint/parser` + `@eslint/js`; `grep -rn babel-eslint` returns zero hits.
  - `@babel/plugin-proposal-class-properties` — only ever referenced from `babel.config.js`, which is dead (see below).
  - `@babel/plugin-proposal-decorators` — same.
  - `@babel/plugin-syntax-dynamic-import` — same.
  - `@babel/parser`, `@babel/types` — no consumer in `src/`, `scripts/`, `electron-app/`, `packages/`.
- Root `babel.config.js`: deleted. After the CRA→Vite migration, no build path reads it: `@vitejs/plugin-react` defaults to `configFile: false`/`babelrc: false` and both `react/vite.config.ts` and `packages/backend.ai-ui/vite.config.ts` configure `babel.plugins` inline (`babel-plugin-react-compiler` + `babel-plugin-relay`). `tsup` (used by `backend.ai-client`) uses esbuild, not babel. There is no `babel-loader`, `@babel/register`, or `babel-node` consumer in the repo.

### Why now

Every contributor sees these three warnings on `pnpm install` and has no way to silence them without editing a direct dependency. The `babel.config.js` next to them was orphaned and pinning four real packages for nothing.

## Lockfile diff

The lockfile shrinks ~10K lines. The shrink is mostly from `babel-eslint`'s 2019-era transitive chain dropping out, but it also drops a few entries that were already orphaned in `main`'s lockfile from the CRA→Vite migration (`react-scripts` patch chain, `@craco/craco`, etc.). These had no live consumer; `pnpm install` simply re-resolves them out. No behavior change.

The legacy `plugin-proposal-class-properties@7.18.6` and `plugin-proposal-private-property-in-object@7.21.11` entries that remain in the lockfile are pulled in transitively by `babel-preset-react-app@10.1.0` (still a `react/` devDep). Removing that preset is out of scope for this PR but a reasonable follow-up — it would also let the renamed `transform-*` direct dep in `react/package.json` go away.

## Verification

- `pnpm install` no longer prints `deprecated` warnings for `babel-eslint`, `@babel/plugin-proposal-class-properties`, or `@babel/plugin-proposal-private-property-in-object`.
- `bash scripts/verify.sh` — Relay / Lint / Format pass. The TypeScript failures shown (`packages/backend.ai-client/src/client.ts` implicit-any, `DeleteForeverVFolderModalV2.tsx` `BulkPurgeVFoldersV2Input.options`) are **pre-existing on main** (verified by re-running with my changes stashed), unrelated to babel deps.

## Test plan

- [ ] `pnpm install` shows no deprecation warnings for the three packages above.
- [ ] `pnpm run dev` starts the dev server without runtime errors related to babel transforms.
- [ ] CI passes the same set of checks that pass on `main`.
@graphite-app graphite-app Bot force-pushed the 05-08-chore_fr-2851_replace_deprecated_babel_deps_and_drop_unused_babel-eslint branch from fdfe95b to 3c023bb Compare May 8, 2026 14:41
@graphite-app graphite-app Bot merged commit 3c023bb into main May 8, 2026
12 checks passed
@graphite-app graphite-app Bot deleted the 05-08-chore_fr-2851_replace_deprecated_babel_deps_and_drop_unused_babel-eslint branch May 8, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XL 500~ LoC

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Replace deprecated babel deps and drop unused babel-eslint

2 participants