Skip to content

Conversation

@poteto
Copy link
Member

@poteto poteto commented Oct 6, 2025

Adds back HermesParser to eslint-plugin-react-hooks. There are still external users of Flow 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 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.

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.
@meta-cla meta-cla bot added the CLA Signed label Oct 6, 2025
@github-actions github-actions bot added the React Core Team Opened by a member of the React Core Team label Oct 6, 2025
@poteto poteto changed the title Revert #34719 Revert [eprh] Remove hermes-parser Oct 6, 2025
@react-sizebot
Copy link

Comparing: c786258...8de3085

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 8de3085

Copy link
Member

@josephsavona josephsavona left a comment

Choose a reason for hiding this comment

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

Thanks for reverting, our Flow users are pretty quiet but it's great to see folks using React with Flow (and hopefully taking advantage of component/hook syntax and render types).

@mwiencek
Copy link
Contributor

mwiencek commented Oct 6, 2025

Thanks for considering your outside Flow users! There are dozens of us! 😅

our Flow users are pretty quiet but it's great to see folks using React with Flow (and hopefully taking advantage of component/hook syntax and render types).

We started using React+Flow in musicbrainz-server in 2015, when TypeScript wasn't a monopoly yet. It felt logical since React itself used Flow (and the focus on soundness was appealing). Today we have 100K+ lines of Flow, and no real desire to port those to TS. Flow still works great for us, outside of lacking up-to-date libdefs. We are taking huge advantage of the new component and match syntax features, and would hate to code without them now.

@poteto poteto merged commit b65e6fc into main Oct 6, 2025
247 checks passed
@poteto poteto deleted the pr34747 branch October 6, 2025 16:43
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)
@wo-o29
Copy link

wo-o29 commented Oct 6, 2025

I have uploaded a PR to fix the issue where the flow link in the PR template is incorrectly linked, preventing access to the official flow website. Could you please check it?

#34326

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.

6 participants