Skip to content

[compiler] Feature flag cleanup#35825

Merged
josephsavona merged 19 commits intofacebook:mainfrom
josephsavona:feature-flag-cleanup
Feb 20, 2026
Merged

[compiler] Feature flag cleanup#35825
josephsavona merged 19 commits intofacebook:mainfrom
josephsavona:feature-flag-cleanup

Conversation

@josephsavona
Copy link
Copy Markdown
Member

@josephsavona josephsavona commented Feb 20, 2026

Cleans up feature flags that do not have an active experiment and which we don't currently plan to ship, one commit per flag. Notable removals:

  • Automatic (inferred) effect dependencies / Fire: abandoned due to early feedback. Shipped useEffectEvent which addresses some of the use-cases.
  • Inline JSX transform (experimented, not a consistent win)
  • Context selectors (experimented, not a sufficient/consistent win given the benefit the compiler already provides)
  • Instruction Reordering (will try a different approach)

To decide which features to remove, I looked at Meta's internal repos as well as eslint-pugin-react-hooks to see which flags were never overridden anywhere. That gave a longer list of flags, from which I then removed some features that I know are used in OSS.

@meta-cla meta-cla Bot added the CLA Signed label Feb 20, 2026
@github-actions github-actions Bot added the React Core Team Opened by a member of the React Core Team label Feb 20, 2026
@josephsavona josephsavona merged commit b16b768 into facebook:main Feb 20, 2026
18 checks passed
github-actions Bot pushed a commit that referenced this pull request Feb 20, 2026
Cleans up feature flags that do not have an active experiment and which
we don't currently plan to ship, one commit per flag. Notable removals:
* Automatic (inferred) effect dependencies / Fire: abandoned due to
early feedback. Shipped useEffectEvent which addresses some of the
use-cases.
* Inline JSX transform (experimented, not a consistent win)
* Context selectors (experimented, not a sufficient/consistent win given
the benefit the compiler already provides)
* Instruction Reordering (will try a different approach)

To decide which features to remove, I looked at Meta's internal repos as
well as eslint-pugin-react-hooks to see which flags were never
overridden anywhere. That gave a longer list of flags, from which I then
removed some features that I know are used in OSS.

DiffTrain build for [b16b768](b16b768)
github-actions Bot pushed a commit that referenced this pull request Feb 20, 2026
Cleans up feature flags that do not have an active experiment and which
we don't currently plan to ship, one commit per flag. Notable removals:
* Automatic (inferred) effect dependencies / Fire: abandoned due to
early feedback. Shipped useEffectEvent which addresses some of the
use-cases.
* Inline JSX transform (experimented, not a consistent win)
* Context selectors (experimented, not a sufficient/consistent win given
the benefit the compiler already provides)
* Instruction Reordering (will try a different approach)

To decide which features to remove, I looked at Meta's internal repos as
well as eslint-pugin-react-hooks to see which flags were never
overridden anywhere. That gave a longer list of flags, from which I then
removed some features that I know are used in OSS.

DiffTrain build for [b16b768](b16b768)
github-actions Bot pushed a commit to code/lib-react that referenced this pull request Feb 22, 2026
Cleans up feature flags that do not have an active experiment and which
we don't currently plan to ship, one commit per flag. Notable removals:
* Automatic (inferred) effect dependencies / Fire: abandoned due to
early feedback. Shipped useEffectEvent which addresses some of the
use-cases.
* Inline JSX transform (experimented, not a consistent win)
* Context selectors (experimented, not a sufficient/consistent win given
the benefit the compiler already provides)
* Instruction Reordering (will try a different approach)

To decide which features to remove, I looked at Meta's internal repos as
well as eslint-pugin-react-hooks to see which flags were never
overridden anywhere. That gave a longer list of flags, from which I then
removed some features that I know are used in OSS.

DiffTrain build for [b16b768](facebook@b16b768)
github-actions Bot pushed a commit to code/lib-react that referenced this pull request Feb 22, 2026
Cleans up feature flags that do not have an active experiment and which
we don't currently plan to ship, one commit per flag. Notable removals:
* Automatic (inferred) effect dependencies / Fire: abandoned due to
early feedback. Shipped useEffectEvent which addresses some of the
use-cases.
* Inline JSX transform (experimented, not a consistent win)
* Context selectors (experimented, not a sufficient/consistent win given
the benefit the compiler already provides)
* Instruction Reordering (will try a different approach)

To decide which features to remove, I looked at Meta's internal repos as
well as eslint-pugin-react-hooks to see which flags were never
overridden anywhere. That gave a longer list of flags, from which I then
removed some features that I know are used in OSS.

DiffTrain build for [b16b768](facebook@b16b768)
mofeiZ added a commit that referenced this pull request Apr 17, 2026
…es rule

The `component-hook-factories rule` was removed in #35825 as part of a feature flag cleanup, but was listed in the README as part of the manual config example. This broke users who used a manual config (copied from the old README) in eslint-plugin-react-hooks 7.1.0. This adds back a deprecated no-op rule as a fix.
mofeiZ added a commit that referenced this pull request Apr 17, 2026
…6307)

The `component-hook-factories` rule was removed in #35825 as part of a
feature flag cleanup, but was listed in the README as part of the manual
config example. This broke users who used a manual config (copied from
the old README) in eslint-plugin-react-hooks 7.1.0. This adds back a
deprecated no-op rule as a fix.


#35825 removed other rules (`automatic-effect-dependencies` and `fire`),
but these were for experimental features that did not ship. These were
also not referenced in the README.
github-actions Bot pushed a commit that referenced this pull request Apr 17, 2026
…6307)

The `component-hook-factories` rule was removed in #35825 as part of a
feature flag cleanup, but was listed in the README as part of the manual
config example. This broke users who used a manual config (copied from
the old README) in eslint-plugin-react-hooks 7.1.0. This adds back a
deprecated no-op rule as a fix.

#35825 removed other rules (`automatic-effect-dependencies` and `fire`),
but these were for experimental features that did not ship. These were
also not referenced in the README.

DiffTrain build for [bc24980](bc24980)
github-actions Bot pushed a commit that referenced this pull request Apr 17, 2026
…6307)

The `component-hook-factories` rule was removed in #35825 as part of a
feature flag cleanup, but was listed in the README as part of the manual
config example. This broke users who used a manual config (copied from
the old README) in eslint-plugin-react-hooks 7.1.0. This adds back a
deprecated no-op rule as a fix.

#35825 removed other rules (`automatic-effect-dependencies` and `fire`),
but these were for experimental features that did not ship. These were
also not referenced in the README.

DiffTrain build for [bc24980](bc24980)
srubin added a commit to descriptinc/react that referenced this pull request Apr 17, 2026
Resolves conflicts with upstream's feature-flag cleanup (facebook#35825):
- Keep local enableUseTypeAnnotations, enableNonReactiveAnnotation, and
  new enableInferNonReactiveHandlers flags in Environment.ts — our
  NonReactive work still needs them.
- Accept upstream deletion of InferEffectDependencies.ts and the
  BuiltInAutodepsId / BuiltInEventHandlerId shapes (the autodeps/Fire
  feature was abandoned upstream).
- Keep BuiltInNonReactiveId registration in ObjectShape.ts and add a
  matching BuiltInReactiveId registration for the Reactive<T> opt-out.
- Drop dead isEventHandlerType helper from ValidateNoRefAccessInRender.
- Re-add lowerType import in InferTypes.ts since our StoreLocal branch
  needs it.

yarn snap: 1731 / 1731 passing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.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.

1 participant