Skip to content

Conversation

@siddarthkay
Copy link
Contributor

@siddarthkay siddarthkay commented Apr 23, 2023

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
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
@facebook-github-bot
Copy link
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-bot facebook-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 siddarthkay force-pushed the codegen-94 branch 6 times, most recently from a29ef09 to e41085e Compare April 23, 2023 16:13
@analysis-bot
Copy link

analysis-bot commented Apr 23, 2023

Platform Engine Arch Size (bytes) Diff
android hermes arm64-v8a 8,624,897 +0
android hermes armeabi-v7a 7,937,532 +0
android hermes x86 9,111,778 +0
android hermes x86_64 8,966,631 +0
android jsc arm64-v8a 9,188,944 +0
android jsc armeabi-v7a 8,379,041 +0
android jsc x86 9,247,173 +0
android jsc x86_64 9,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
Contributor Author

@cipolleschi : This PR is ready for review.

@facebook-github-bot
Copy link
Contributor

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

Copy link
Contributor

@cipolleschi cipolleschi left a comment

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

@siddarthkay siddarthkay force-pushed the codegen-94 branch 5 times, most recently from 9d48729 to 0b4455a Compare April 24, 2023 14:34
@siddarthkay siddarthkay requested a review from cipolleschi April 24, 2023 14:51
@siddarthkay
Copy link
Contributor Author

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
Contributor

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

Copy link
Contributor

@cipolleschi cipolleschi left a comment

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-yadav Pranav-yadav added the Tech: Codegen Related to react-native-codegen label Apr 24, 2023
@siddarthkay siddarthkay force-pushed the codegen-94 branch 3 times, most recently from 1af6089 to 301ac6d Compare April 25, 2023 01:40
@siddarthkay siddarthkay force-pushed the codegen-94 branch 2 times, most recently from ca8f170 to 40f63b1 Compare April 25, 2023 05:29
@siddarthkay
Copy link
Contributor Author

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
Contributor

rshest commented Apr 25, 2023

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!!!

Copy link
Contributor

@rshest rshest left a comment

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
Contributor Author

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
Contributor

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

@siddarthkay
Copy link
Contributor Author

siddarthkay commented Apr 25, 2023

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
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
Contributor Author

Hi @Pranav-yadav Thanks for explaining!

): ExtendsForProp {
if (!prop.argument) {
const argument = parser.argumentForProp(prop);
if (argument) {
Copy link
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
Contributor Author

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 ❤️

Copy link
Contributor

@Pranav-yadav Pranav-yadav Apr 26, 2023

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-bot facebook-github-bot added the Merged This PR has been merged. label Apr 26, 2023
@facebook-github-bot
Copy link
Contributor

@rshest merged this pull request in c937162.

jeongshin pushed a commit to jeongshin/react-native that referenced this pull request May 7, 2023
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 facebook#34872

## Changelog:

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

Pull Request resolved: facebook#37052

Test Plan: Run `yarn jest react-native-codegen` and ensure CI is green

Reviewed By: cipolleschi

Differential Revision: D45225880

Pulled By: rshest

fbshipit-source-id: 45199089746d58d9e9494b28040b34c2a0eb31fe
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
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 facebook#34872

## Changelog:

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

Pull Request resolved: facebook#37052

Test Plan: Run `yarn jest react-native-codegen` and ensure CI is green

Reviewed By: cipolleschi

Differential Revision: D45225880

Pulled By: rshest

fbshipit-source-id: 45199089746d58d9e9494b28040b34c2a0eb31fe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. Merged This PR has been merged. Tech: Codegen Related to react-native-codegen

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants