-
-
Notifications
You must be signed in to change notification settings - Fork 521
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore: change gradle task for copying to new archs into JS scripts #2224
chore: change gradle task for copying to new archs into JS scripts #2224
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just initial remarks - I'll have more once the PR is opened & ready for review. The approach is good.
Co-authored-by: Kacper Kafara <kacper.kafara@swmansion.com>
Co-authored-by: Kacper Kafara <kacper.kafara@swmansion.com>
…nges to specififc path/branch
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added 2 comments
@@ -135,3 +135,13 @@ dependencies { | |||
} | |||
|
|||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | |||
apply plugin: 'com.github.node-gradle.node' | |||
|
|||
task syncArchs(type: NodeTask) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't get it why it's still here. Don't we do everything on the JS side now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's in the app so it shouldn't interfere with the lib. I understood that @kkafar wanted to have it run automatically while developing. It needs to be added per example/test app, so I can just not add it in other packages.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah & I want this in screens.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think I have anything else to add here 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good now, thanks 👍🏻
@@ -135,3 +135,13 @@ dependencies { | |||
} | |||
|
|||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) | |||
apply plugin: 'com.github.node-gradle.node' | |||
|
|||
task syncArchs(type: NodeTask) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah & I want this in screens.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just a one suggestion from me. Great change!
uses: actions/checkout@v2 | ||
- name: Use Node.js 18 | ||
uses: actions/setup-node@v2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's use v4
script versions.
uses: actions/checkout@v2 | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v2 | |
uses: actions/checkout@v4 | |
- name: Use Node.js 18 | |
uses: actions/setup-node@v4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
:(
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great job with this one!
## Description Fixes to #2224, that came out in other repos. ## Changes - Bump version of GitHub actions - Fix warning when trying to copy non existing codegen interface ## Test code and steps to reproduce Duplicate `android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java` with name change for example with ` copy` at the end. Before it would fail because file wouldn't be found. Now there will be warning in logs.
…oftware-mansion#2224) ## Description This task is rewrite to JS of software-mansion#2168 with some improvements. General point of creating those tasks is: > When changing native props on Fabric, codegen generates corresponding interfaces and delegates. To make sure both implementations are consistent, we implement those interfaces on Paper too. Currently, after generating interfaces using codegen, developer needs to copy corresponding files for paper manually. This task adds Gradle task, that automates this. ## Changes Current assumption: Two scripts: `check-archs-consistency` and `sync-archs`. The first one generates codegen interfaces and compares them with what we have for paper, the second generates and copies for paper to sync the archs. - sync is run pre build on example app - sync is run when staged on changes to `src/paper` - check is run on CI when `src/paper` or `android/src/paper/java/com/facebook/react/viewmanagers` changes What it improves: - JS tasks are much faster, as codegen is JS script anyway, we skip gradle and java setup all together (CI task down from 7min to 30s), - we do not put code to library, so it shouldn't be possible to mess up something for end users, - instead of syncing archs when running codegen we do that on paper example build and when staged, so: when developer didn't touch the code it will have changes after commit, when developer switched to working on paper interfaces should be always up to date when building the app. ## Test code and steps to reproduce Open `src/fabric/ScreenStackHeaderConfigNativeComponent.ts` and remove any proper form interface. Now: - when building paper, interface should be updated - when committing, interface should be updated - if committed and pushed, Test consistency between Paper & Fabric should fail :) Brining back the prop and repeating up should cause the interface back and CI green. Posting changes in other places should cause CI task to run. You can also run those commands yourself using `yarn check-archs-consistency` and `yarn sync-archs` --------- Co-authored-by: Kacper Kafara <kacper.kafara@swmansion.com>
## Description Fixes to software-mansion#2224, that came out in other repos. ## Changes - Bump version of GitHub actions - Fix warning when trying to copy non existing codegen interface ## Test code and steps to reproduce Duplicate `android/src/paper/java/com/facebook/react/viewmanagers/RNSSearchBarManagerDelegate.java` with name change for example with ` copy` at the end. Before it would fail because file wouldn't be found. Now there will be warning in logs.
Description
This task is rewrite to JS of #2168 with some improvements. General point of creating those tasks is:
Changes
Current assumption:
Two scripts:
check-archs-consistency
andsync-archs
. The first one generates codegen interfaces and compares them with what we have for paper, the second generates and copies for paper to sync the archs.src/paper
src/paper
orandroid/src/paper/java/com/facebook/react/viewmanagers
changesWhat it improves:
Test code and steps to reproduce
Open
src/fabric/ScreenStackHeaderConfigNativeComponent.ts
and remove any proper form interface. Now:Brining back the prop and repeating up should cause the interface back and CI green.
Posting changes in other places should cause CI task to run.
You can also run those commands yourself using
yarn check-archs-consistency
andyarn sync-archs