Skip to content

Conversation

@poteto
Copy link
Member

@poteto poteto commented Oct 3, 2025

We will be focusing eslint-plugin-react-hooks as the primary OSS-only package for our lint plugin. eslint-plugin-react-compiler will remain as a Meta only package as some limitations of our internal infra require us to use packages that aren't widely adopted by the rest of the industry.

This PR removes hermes-parser, which was meant to support parsing Flow syntax.

We will be focusing eslint-plugin-react-hooks as the primary OSS-only package for our lint plugin. eslint-plugin-react-compiler will remain as a Meta only package as some limitations of our internal infra require us to use packages that aren't widely adopted by the rest of the industry.

This PR removes `hermes-parser`, which was meant to support parsing Flow syntax.
@meta-cla meta-cla bot added the CLA Signed label Oct 3, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Oct 3, 2025
@react-sizebot
Copy link

Comparing: 85c427d...4de48af

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.js = 6.68 kB 6.68 kB = 1.83 kB 1.83 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 536.14 kB 536.14 kB = 94.81 kB 94.81 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 663.96 kB 663.96 kB = 117.04 kB 117.04 kB
facebook-www/ReactDOM-prod.classic.js = 687.83 kB 687.83 kB = 121.08 kB 121.08 kB
facebook-www/ReactDOM-prod.modern.js = 678.26 kB 678.26 kB = 119.44 kB 119.43 kB

Significant size changes

Includes any change greater than 0.2%:

(No significant changes)

Generated by 🚫 dangerJS against 4de48af

@poteto poteto merged commit 71753ac into main Oct 3, 2025
247 checks passed
@poteto poteto deleted the pr34719 branch October 3, 2025 16:58
github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
We will be focusing eslint-plugin-react-hooks as the primary OSS-only
package for our lint plugin. eslint-plugin-react-compiler will remain as
a Meta only package as some limitations of our internal infra require us
to use packages that aren't widely adopted by the rest of the industry.

This PR removes `hermes-parser`, which was meant to support parsing Flow
syntax.

DiffTrain build for [71753ac](71753ac)
github-actions bot pushed a commit that referenced this pull request Oct 3, 2025
We will be focusing eslint-plugin-react-hooks as the primary OSS-only
package for our lint plugin. eslint-plugin-react-compiler will remain as
a Meta only package as some limitations of our internal infra require us
to use packages that aren't widely adopted by the rest of the industry.

This PR removes `hermes-parser`, which was meant to support parsing Flow
syntax.

DiffTrain build for [71753ac](71753ac)
@mwiencek
Copy link
Contributor

mwiencek commented Oct 4, 2025

Hi, just to be sure, does this change have any ramifications for projects using Flow?

poteto added a commit that referenced this pull request Oct 6, 2025
Adds back HermesParser to eslint-plugin-react-hooks. There are still [external users of Flow](#34719 (comment)) using the plugin, so we shouldn't break the plugin for them. However, we still have the problem of double parsing: once from eslint (which we discard) and then another via babel/hermes parser.

In the long run we should investigate a translation layer from estree to babel (or alternatively, update the compiler to take estree as input). For now I am reverting that PR.  This does mean that [Sandpack in react.dev](https://github.com/reactjs/react.dev/blob/11cb6b591571caf5fa2a192117b6a6445c3f2027/src/components/MDX/Sandpack/runESLint.tsx#L31) cannot update to the latest eprh as HermesParser does not appear to be able to be run in a browser. I discovered this while trying to update eprh on react.dev last week, but didn't investigate deeply. I'll need to double check that again to find out more.
@poteto
Copy link
Member Author

poteto commented Oct 6, 2025

@mwiencek yeah, the compiler rules won't work on Flow anymore after this PR. I hadn't realized there were still Flow users outside of Meta remaining, hence the PR. But I've opened #34747 to revert the change for now while we figure out a long term plan.

poteto added a commit that referenced this pull request Oct 6, 2025
Adds back HermesParser to eslint-plugin-react-hooks. There are still
[external users of
Flow](#34719 (comment))
using the plugin, so we shouldn't break the plugin for them. However, we
still have the problem of double parsing: once from eslint (which we
discard) and then another via babel/hermes parser.

In the long run we should investigate a translation layer from estree to
babel (or alternatively, update the compiler to take estree as input).
But for now, I am reverting the PR.

This does mean that [Sandpack in
react.dev](https://github.com/reactjs/react.dev/blob/11cb6b591571caf5fa2a192117b6a6445c3f2027/src/components/MDX/Sandpack/runESLint.tsx#L31)
cannot update to the latest eprh as HermesParser does not appear to be
able to be run in a browser. I discovered this while trying to update
eprh on react.dev last week, but didn't investigate deeply. I'll need to
double check that again to find out more.
github-actions bot pushed a commit that referenced this pull request Oct 6, 2025
Adds back HermesParser to eslint-plugin-react-hooks. There are still
[external users of
Flow](#34719 (comment))
using the plugin, so we shouldn't break the plugin for them. However, we
still have the problem of double parsing: once from eslint (which we
discard) and then another via babel/hermes parser.

In the long run we should investigate a translation layer from estree to
babel (or alternatively, update the compiler to take estree as input).
But for now, I am reverting the PR.

This does mean that [Sandpack in
react.dev](https://github.com/reactjs/react.dev/blob/11cb6b591571caf5fa2a192117b6a6445c3f2027/src/components/MDX/Sandpack/runESLint.tsx#L31)
cannot update to the latest eprh as HermesParser does not appear to be
able to be run in a browser. I discovered this while trying to update
eprh on react.dev last week, but didn't investigate deeply. I'll need to
double check that again to find out more.

DiffTrain build for [b65e6fc](b65e6fc)
github-actions bot pushed a commit that referenced this pull request Oct 6, 2025
Adds back HermesParser to eslint-plugin-react-hooks. There are still
[external users of
Flow](#34719 (comment))
using the plugin, so we shouldn't break the plugin for them. However, we
still have the problem of double parsing: once from eslint (which we
discard) and then another via babel/hermes parser.

In the long run we should investigate a translation layer from estree to
babel (or alternatively, update the compiler to take estree as input).
But for now, I am reverting the PR.

This does mean that [Sandpack in
react.dev](https://github.com/reactjs/react.dev/blob/11cb6b591571caf5fa2a192117b6a6445c3f2027/src/components/MDX/Sandpack/runESLint.tsx#L31)
cannot update to the latest eprh as HermesParser does not appear to be
able to be run in a browser. I discovered this while trying to update
eprh on react.dev last week, but didn't investigate deeply. I'll need to
double check that again to find out more.

DiffTrain build for [b65e6fc](b65e6fc)
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |

---

### Release Notes

<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>

### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)

[Compare Source](facebook/react@8618113...a2329c1)

**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.

- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](facebook/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](facebook/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](facebook/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](facebook/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](facebook/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](facebook/react#34717))

### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)

[Compare Source](facebook/react@fea92d8...8618113)

**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.

- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](facebook/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](facebook/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](facebook/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](facebook/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](facebook/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](facebook/react#34497)

### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)

[Compare Source](facebook/react@3607f48...fea92d8)

Accidentally released. See 6.1.0 for the actual changes.

</details>

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

See merge request swiss-armed-forces/cyber-command/cea/loom!241

Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: shrewd-laidback palace <shrewd-laidback-palace-736-c41-2c1-e464fc974@swiss-armed-forces-open-source.ch>
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 14, 2026
chore(deps): update eslint-plugin-react-hooks (major)

This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [eslint-plugin-react-hooks](https://react.dev/) ([source](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks)) | devDependencies | major | [`^5.2.0` → `^6.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-react-hooks/5.2.0/6.1.1) | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/facebook/react/badge)](https://securityscorecards.dev/viewer/?uri=github.com/facebook/react) |

---

### Release Notes

<details>
<summary>facebook/react (eslint-plugin-react-hooks)</summary>

### [`v6.1.1`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#611)

[Compare Source](facebook/react@8618113...a2329c1)

**Note:** 6.1.0 accidentally allowed use of `recommended` without flat config, causing errors when used with ESLint v9's `defineConfig()` helper. This has been fixed in 6.1.1.

- Fix `recommended` config for flat config compatibility. The `recommended` config has been converted to flat config format. Non-flat config users should use `recommended-legacy` instead. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34700](facebook/react#34700))
- Add `recommended-latest` and `recommended-latest-legacy` configs that include React Compiler rules. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34675](facebook/react#34675))
- Remove unused `NoUnusedOptOutDirectives` rule. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34703](facebook/react#34703))
- Remove `hermes-parser` and dependency. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34719](facebook/react#34719))
- Remove `@babel/plugin-proposal-private-methods` dependency. ([@&#8203;ArnaudBarre](https://github.com/ArnaudBarre) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34715](facebook/react#34715))
- Update for Zod v3/v4 compatibility. ([@&#8203;kolian](https://github.com/kolvian) and [@&#8203;josephsavona](https://github.com/josephsavona) in [#&#8203;34717](facebook/react#34717))

### [`v6.1.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#610)

[Compare Source](facebook/react@fea92d8...8618113)

**Note:** Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.

- **Breaking:** Require Node.js 18 or newer. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32458](facebook/react#32458))
- **Breaking:** Flat config is now the default `recommended` preset. Legacy config moved to `recommended-legacy`. ([@&#8203;michaelfaith](https://github.com/michaelfaith) in [#&#8203;32457](facebook/react#32457))
- **New Violations:** Disallow calling `use` within try/catch blocks. ([@&#8203;poteto](https://github.com/poteto) in [#&#8203;34040](facebook/react#34040))
- **New Violations:** Disallow calling `useEffectEvent` functions in arbitrary closures. ([@&#8203;jbrown215](https://github.com/jbrown215) in [#&#8203;33544](facebook/react#33544))
- Handle `React.useEffect` in addition to `useEffect` in rules-of-hooks. ([@&#8203;Ayc0](https://github.com/Ayc0) in [#&#8203;34076](facebook/react#34076))
- Added `react-hooks` settings config option that to accept `additionalEffectHooks` that are used across exhaustive-deps and rules-of-hooks rules. ([@&#8203;jbrown215](https://github.com/jbrown215)) in [#&#8203;34497](facebook/react#34497)

### [`v6.0.0`](https://github.com/facebook/react/blob/HEAD/packages/eslint-plugin-react-hooks/CHANGELOG.md#600)

[Compare Source](facebook/react@3607f48...fea92d8)

Accidentally released. See 6.1.0 for the actual changes.

</details>

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVub3ZhdGUiXX0=-->

See merge request swiss-armed-forces/cyber-command/cea/loom!241

Co-authored-by: Loom MR Pipeline Trigger <group_103951964_bot_9504bb8dead6d4e406ad817a607f24be@noreply.gitlab.com>
Co-authored-by: open-source Pipeline <group_90701827_bot_ed04ae348bc5f40af9966fb8b6867e99@noreply.gitlab.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed React Core Team Opened by a member of the React Core Team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants