Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RN] Remove __EXPERIMENTAL__ from enableOwnerStacks, enableUseDeferredValueInitialArg #30322

Merged
merged 2 commits into from
Jul 12, 2024

Conversation

poteto
Copy link
Member

@poteto poteto commented Jul 12, 2024

Stack from ghstack (oldest at bottom):

In www, the experimental versions get a .modern.js or .classic.js prefix
and get copied into the same folder. In RN, they don't seem to have
.modern.js and .classic.js versions so they end up getting the same
name.

@sebmarkbage's theory is that what happens is that they then override
the file that was already there. So depending on if experimental or
stable build finishes first you get a different version at the end.

It doesn't make sense to use __EXPERIMENTAL__ for flags in native-fb
since there's no modern/classic split there. So that flag should just be
hardcoded to true or false and then it doesn't matter which one finishes
first.

We don't support experimental builds in OSS RN neither so the same thing
could happen with
enableOwnerStacks.

You can see that the build errors in the previous PR but passes after
these flag changes.

Test plan

  1. Download gh build from https://github.com/facebook/react/actions/runs/9910037870/artifacts/1695683186
  2. Download circle build from https://app.circleci.com/pipelines/github/facebook/react/56533/workflows/ff3b91bc-0af8-460a-a234-694531a50a44/jobs/950161/artifacts
  3. Uncompress, remove size subdirectories due to ordering differences, compare circle and gh directories: https://gist.github.com/poteto/e46b37076262a71a86b7fa2d71d267fe. Note that the only difference is in the git hash (because of ghstack) and in the variable names for useMemoCache in react-debug-tools. Not 100% sure why these changed, but it's just variable names so it looks benign

[ghstack-poisoned]
Copy link

vercel bot commented Jul 12, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-compiler-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 12, 2024 3:23pm

poteto added a commit that referenced this pull request Jul 12, 2024
In www, the experimental versions get a .modern.js or .classic.js prefix
and get copied into the same folder. In RN, they don't seem to have
.modern.js and .classic.js versions so they end up getting the same
name.

sebmarkbage's theory is that what happens is that they then override
the file that was already there. So depending on if experimental or
stable build finishes first you get a different version at the end.

It doesn't make sense to use `__EXPERIMENTAL__` for flags in native-fb
since there's no modern/classic split there. So that flag should just be
hardcoded to true or false and then it doesn't matter which one finishes
first.

We don't support experimental builds in OSS RN neither so the same thing
could happen with
[`enableOwnerStacks`](https://github.com/facebook/react/blob/5dcf3ca8d45a276a8b4cee0cedd234967661ca35/packages/shared/forks/ReactFeatureFlags.native-oss.js#L60).

You can see that the build errors in the previous PR but passes after
these flag changes.

ghstack-source-id: da04295a8f6a7c080d8ed3ebbb4ca5527eabe0e6
Pull Request resolved: #30322
@facebook-github-bot facebook-github-bot added the React Core Team Opened by a member of the React Core Team label Jul 12, 2024
@poteto poteto requested a review from yungsters July 12, 2024 15:13
@@ -69,7 +69,7 @@ export const enableTaint = true;
export const enableTransitionTracing = false;
export const enableTrustedTypesIntegration = false;
export const enableUpdaterTracking = false;
export const enableUseDeferredValueInitialArg = __EXPERIMENTAL__;
export const enableUseDeferredValueInitialArg = false;
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure why this got set to experimental in #29903 but seems like it would be pretty safe to switch to true seeing as that is the value for native-fb and native-oss now. cc @yungsters

Copy link
Member Author

Choose a reason for hiding this comment

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

thanks, updated!

[ghstack-poisoned]
poteto added a commit that referenced this pull request Jul 12, 2024
In www, the experimental versions get a .modern.js or .classic.js prefix
and get copied into the same folder. In RN, they don't seem to have
.modern.js and .classic.js versions so they end up getting the same
name.

sebmarkbage's theory is that what happens is that they then override
the file that was already there. So depending on if experimental or
stable build finishes first you get a different version at the end.

It doesn't make sense to use `__EXPERIMENTAL__` for flags in native-fb
since there's no modern/classic split there. So that flag should just be
hardcoded to true or false and then it doesn't matter which one finishes
first.

We don't support experimental builds in OSS RN neither so the same thing
could happen with
[`enableOwnerStacks`](https://github.com/facebook/react/blob/5dcf3ca8d45a276a8b4cee0cedd234967661ca35/packages/shared/forks/ReactFeatureFlags.native-oss.js#L60).

You can see that the build errors in the previous PR but passes after
these flag changes.

ghstack-source-id: d10f37bcea0e485fdb4f136370c179999badd560
Pull Request resolved: #30322
@poteto poteto changed the title [RN] Set enableOwnerStacks and enableUseDeferredValueInitialArg to false [RN] Remove __EXPERIMENTAL__ from enableOwnerStacks, enableUseDeferredValueInitialArg Jul 12, 2024
@poteto poteto merged commit 5912b02 into gh/poteto/33/base Jul 12, 2024
185 checks passed
@poteto poteto deleted the gh/poteto/33/head branch July 12, 2024 16:11
github-actions bot pushed a commit that referenced this pull request Jul 12, 2024
In www, the experimental versions get a .modern.js or .classic.js prefix
and get copied into the same folder. In RN, they don't seem to have
.modern.js and .classic.js versions so they end up getting the same
name.

sebmarkbage's theory is that what happens is that they then override
the file that was already there. So depending on if experimental or
stable build finishes first you get a different version at the end.

It doesn't make sense to use `__EXPERIMENTAL__` for flags in native-fb
since there's no modern/classic split there. So that flag should just be
hardcoded to true or false and then it doesn't matter which one finishes
first.

We don't support experimental builds in OSS RN neither so the same thing
could happen with
[`enableOwnerStacks`](https://github.com/facebook/react/blob/5dcf3ca8d45a276a8b4cee0cedd234967661ca35/packages/shared/forks/ReactFeatureFlags.native-oss.js#L60).

You can see that the build errors in the previous PR but passes after
these flag changes.

ghstack-source-id: d10f37bcea0e485fdb4f136370c179999badd560
Pull Request resolved: #30322

DiffTrain build for commit ff3f1fa.
felixshiftellecon added a commit to felixshiftellecon/react that referenced this pull request Jul 24, 2024
In www, the experimental versions get a .modern.js or .classic.js prefix
and get copied into the same folder. In RN, they don't seem to have
.modern.js and .classic.js versions so they end up getting the same
name.

sebmarkbage's theory is that what happens is that they then override
the file that was already there. So depending on if experimental or
stable build finishes first you get a different version at the end.

It doesn't make sense to use `__EXPERIMENTAL__` for flags in native-fb
since there's no modern/classic split there. So that flag should just be
hardcoded to true or false and then it doesn't matter which one finishes
first.

We don't support experimental builds in OSS RN neither so the same thing
could happen with
[`enableOwnerStacks`](https://github.com/facebook/react/blob/5dcf3ca8d45a276a8b4cee0cedd234967661ca35/packages/shared/forks/ReactFeatureFlags.native-oss.js#L60).

You can see that the build errors in the previous PR but passes after
these flag changes.

ghstack-source-id: d10f37bcea0e485fdb4f136370c179999badd560
Pull Request resolved: facebook#30322
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.

3 participants