[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[Codegen 94] move extendsForProp into parsers-commons - #37052

Closed
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94
Closed

[Codegen 94] move extendsForProp into parsers-commons#37052
siddarthkay wants to merge 1 commit into
react:mainfrom
siddarthkay:codegen-94

Conversation

@siddarthkay

@siddarthkaysiddarthkay commented Apr 23, 2023

Copy link
Copy Markdown
Contributor

Summary:

[Codegen 94] This PR attempts to extracts the logic of extendsForProp function from the following locations :

  • parsers/flow/components/extends.js
  • parsers/typescript/components/props.js
    since they are the same and move the function to parsers/parsers-commons.js as requested on ☂️ Improving Codegen #34872

Changelog:

[Internal] [Changed] - Move extendsForProp to parser-commons and update usages.

Test Plan:

Run yarn jest react-native-codegen and ensure CI is green

@facebook-github-bot

Copy link
Copy Markdown
Contributor

Hi @siddarthkay!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

@siddarthkay
siddarthkay marked this pull request as draft April 23, 2023 02:58
@siddarthkaysiddarthkay mentioned this pull request Apr 23, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Meta Open Source project. Thanks!

@facebook-github-botfacebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 23, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085eCompareApril 23, 2023 16:13
@analysis-bot

analysis-bot commented Apr 23, 2023

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a8,624,897+0
androidhermesarmeabi-v7a7,937,532+0
androidhermesx869,111,778+0
androidhermesx86_648,966,631+0
androidjscarm64-v8a9,188,944+0
androidjscarmeabi-v7a8,379,041+0
androidjscx869,247,173+0
androidjscx86_649,505,674+0

Base commit: c65ab4d
Branch: main

@siddarthkay
siddarthkay marked this pull request as ready for review April 24, 2023 04:55
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

@cipolleschi : This PR is ready for review.

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hi @siddarthkay, thank you so much for taking the time to work on this!

I left some comments to improve the current implementation, following a pattern we have established in other Codegen tasks.

Let me know if it is clear and/or if you need help! :D

Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/parsers-commons.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/typescript/components/props.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
Comment threadpackages/react-native-codegen/src/parsers/flow/components/extends.js Outdated
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455aCompareApril 24, 2023 14:34
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've addressed your feedback and I also took the liberty of removing type PropAST = Object; from 5 files and moving it to packages/react-native-codegen/src/parsers/utils.js hope this is okay?

Let me know :)

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@cipolleschicipolleschi left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good! :D Thanks for the changes!

@Pranav-yadavPranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6dCompareApril 25, 2023 01:40
@siddarthkay
siddarthkayforce-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1CompareApril 25, 2023 05:29
@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @cipolleschi : I've rebased my branch and resolved all conflicts,
Would you mind taking a look at this PR again and let me what are the next steps here?
I'm eager and excited to get my 1st PR merged into react-native 👍🏻

@rshest

Copy link
Copy Markdown
Contributor

Hey @siddarthkay, sorry for back and forth, but this change severely conflicts with #36891, which has been now merged to master (it merges together getExtendedProps and getProps).

Could you please rebase this PR to master and try and resolve the merge conflicts?

Thanks!!!

@rshestrshest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please see my comment above, this requires a rebase to master and merge/resolve conflicts.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @rshest : I think I already resolved those conflicts few hours ago, I have just now rebased to latest main branch
and tests seem to pass.
Could you please check again?

@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest has imported this pull request. If you are a Meta employee, you can view this diff on Phabricator.

@siddarthkay

siddarthkay commented Apr 25, 2023

Copy link
Copy Markdown
ContributorAuthor

I see test_android_template-NewArch-Debug-Hermes failed on CI with :

error An unexpected error occurred: "http://localhost:4873/yallist/-/yallist-3.1.1.tgz: Request failed \"500 Internal Server Error\""
error Command failed with exit code 1: yarn add /root/react-native/packages/react-native
Error: Command failed with exit code 1: yarn add /root/react-native/packages/react-native
at makeError (/root/react-native/node_modules/execa/lib/error.js:60:11)
at handlePromise (/root/react-native/node_modules/execa/index.js:118:26)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async createFromTemplate (/root/react-native/node_modules/@react-native-community/cli/build/
commands/init/init.js:96:5)
at async Object.initialize [as func] (/root/react-native/node_modules/@react-native-community/
cli/build/commands/init/init.js:179:3)
at async Command.handleAction (/root/react-native/node_modules/@react-native-community/
cli/build/index.js:109:9)
node:child_process:935
throw err;
^
Error: Command failed: node cli.js init AndroidTemplateProject --directory /tmp/AndroidTemplateProject --template /root/react-native/packages/react-native --verbose --skip-install
at checkExecSyncError (node:child_process:861:11)
at execSync (node:child_process:932:15)
at install (/root/react-native/scripts/template/initialize.js:72:3)
at Object.<anonymous> (/root/react-native/scripts/template/initialize.js:95:1)
at Module._compile (node:internal/modules/cjs/loader:1196:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1250:10)
at Module.load (node:internal/modules/cjs/loader:1074:32)
at Function.Module._load (node:internal/modules/cjs/loader:909:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
status: 1,
signal: null,
output: [ null, null, null ],
pid: 521,
stdout: null,
stderr: null
}

Should I rerun this job on CircleCI : https://app.circleci.com/pipelines/github/facebook/react-native/22620/workflows/be7cfad0-d96d-4c5c-b552-5006294413ff/jobs/580151 ?
OR
Amend and force push last commit to run all jobs?

@Pranav-yadav

Copy link
Copy Markdown
Contributor

@siddarthkay as the error says:
'Request failed "500 Internal Server Error"'
It's may be a transient error, due to network or something else, so no need to worry about it. 👍

PS. Reviewer(s) will re-rerun it if required.

@siddarthkay

Copy link
Copy Markdown
ContributorAuthor

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This now does exactly the opposite of what it used/supposed to do :)

It should instead be:

if (!argument) {

Otherwise this would break codegen completely, at least on our internal tests.

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think we need a follow-up on that, CC @cipolleschi

@siddarthkay - note that I fixed this internally myself this time, to save one extra back and forth, but normally that would be your responsibility :)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

Thanks @rshest ! This is probably the outcome of resolving multiple rebase conflicts. Thanks for catching and fixing it ❤️

@Pranav-yadavPranav-yadavApr 26, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am surprised, though, that CI on Github didn't catch this (the only failed test seems inside the app template and is unrelated).

I think, those files don't have tests, but, other tests should have been failed; or may be the current test-suite doesn't test this specific case 🤔

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot

Copy link
Copy Markdown
Contributor

@rshest merged this pull request in c937162.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.MergedThis PR has been merged.Tech: CodegenRelated to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants

@siddarthkay@facebook-github-bot@analysis-bot@rshest@Pranav-yadav@cipolleschi