Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

feat: automatically copy codegen artifacts to paper #2933

Merged

Conversation

maciekstosio
Copy link
Contributor

Description

Sibling of similar task from screens.
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

Add new task to build Gradle and necessary properties:

  • codegen artifacts dir and paper dir
  • flag in both fabric apps that indicates that copying should be performed (we do want this task to be performed only when developing the library)

Test code and steps to reproduce

Remove enabled from src/specs/RNGestureHandlerButtonNativeComponent.ts and run ./gradlew generateCodegenArtifactsFromSchema in ./FabricExample/android. That should automatically copy regenerated files to paper directory.

android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/gradle.properties Outdated Show resolved Hide resolved
android/gradle.properties Outdated Show resolved Hide resolved
maciekstosio and others added 8 commits June 5, 2024 08:32
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Copy link
Member

@tboba tboba left a comment

Choose a reason for hiding this comment

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

Just some linguistic stuff from me 😄

android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Show resolved Hide resolved
android/build.gradle Outdated Show resolved Hide resolved
android/gradle.properties Show resolved Hide resolved
android/gradle.properties Outdated Show resolved Hide resolved
@maciekstosio maciekstosio requested a review from tboba June 10, 2024 07:48
j-piasecki
j-piasecki previously approved these changes Jun 10, 2024
Copy link
Member

@j-piasecki j-piasecki left a comment

Choose a reason for hiding this comment

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

LGTM, just replace " with ' and we're golden

package.json Outdated
@@ -14,7 +14,8 @@
"format:ios": "find apple/ -iname *.h -o -iname *.m -o -iname *.cpp -o -iname *.mm | xargs clang-format -i",
"lint:js": "eslint --ext '.js,.ts,.tsx' src/ example/src FabricExample/src MacOSExample/src && yarn prettier --check './{src,example,FabricExample,MacOSExample}/**/*.{js,jsx,ts,tsx}'",
"lint:js-root": "eslint --ext '.js,.ts,.tsx' src/ && yarn prettier --check './src/**/*.{js,jsx,ts,tsx}'",
"lint:android": "./android/gradlew -p android spotlessCheck -q"
"lint:android": "./android/gradlew -p android spotlessCheck -q",
"checkIntegrity": "(cd ./android && ./gradlew checkIntegrityBetweenArchitectures)"
Copy link
Member

Choose a reason for hiding this comment

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

checkIntegrity is very generic, can we use something more specific to checking codegen artifacts?

android/build.gradle Outdated Show resolved Hide resolved
android/build.gradle Show resolved Hide resolved
@j-piasecki j-piasecki dismissed their stale review June 10, 2024 10:39

Not finished yet :)

Co-authored-by: Jakub Piasecki <jakub.piasecki@swmansion.com>
Copy link
Member

@j-piasecki j-piasecki left a comment

Choose a reason for hiding this comment

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

🚀

@maciekstosio maciekstosio merged commit 50dfe9a into main Jun 10, 2024
7 checks passed
@maciekstosio maciekstosio deleted the @maciekstosio/Automate-copying-codegen-artifacts-to-paper-arch branch June 10, 2024 12:24
github-merge-queue bot referenced this pull request in valora-inc/wallet Jun 26, 2024
…5575)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
|
[react-native-gesture-handler](https://github.com/software-mansion/react-native-gesture-handler)
| [`^2.16.2` ->
`^2.17.1`](https://renovatebot.com/diffs/npm/react-native-gesture-handler/2.16.2/2.17.1)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/react-native-gesture-handler/2.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-native-gesture-handler/2.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-native-gesture-handler/2.16.2/2.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-native-gesture-handler/2.16.2/2.17.1?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>software-mansion/react-native-gesture-handler
(react-native-gesture-handler)</summary>

###
[`v2.17.1`](https://github.com/software-mansion/react-native-gesture-handler/releases/tag/2.17.1)

[Compare
Source](https://github.com/software-mansion/react-native-gesture-handler/compare/2.17.0...2.17.1)

#### 🐛 Bug fixes

- Don't register `checkIntegrityBetweenArchitectures` task when
installed as a dependency by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[#&#8203;2953](https://github.com/software-mansion/react-native-gesture-handler/issues/2953)

**Full Changelog**:
software-mansion/react-native-gesture-handler@2.17.0...2.17.1

###
[`v2.17.0`](https://github.com/software-mansion/react-native-gesture-handler/releases/tag/2.17.0)

[Compare
Source](https://github.com/software-mansion/react-native-gesture-handler/compare/2.16.2...2.17.0)

#### ❗ Important changes

- Add `ref` property to `Buttons` by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2903](https://github.com/software-mansion/react-native-gesture-handler/pull/2903)
- Unify touch events callbacks on `web` with respect to `Android` by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2923](https://github.com/software-mansion/react-native-gesture-handler/pull/2923)
- Add `touchType` to `TouchEvent` by
[@&#8203;latekvo](https://github.com/latekvo) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2941](https://github.com/software-mansion/react-native-gesture-handler/pull/2941)

#### 👍 Improvements

- Refactor `GestureDetector` by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2901](https://github.com/software-mansion/react-native-gesture-handler/pull/2901)
- Remove lodash by [@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2916](https://github.com/software-mansion/react-native-gesture-handler/pull/2916)
- `PointerTracker` refactor. by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2931](https://github.com/software-mansion/react-native-gesture-handler/pull/2931)
- Change `offsetX` and `offsetY` calculations in `PointerEventManager`
by [@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2938](https://github.com/software-mansion/react-native-gesture-handler/pull/2938)

#### 🐛 Bug fixes

- Make `RootViewGestureHandler` handler cancel awaiting gestures by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2900](https://github.com/software-mansion/react-native-gesture-handler/pull/2900)
- Get right bridge by
[@&#8203;piaskowyk](https://github.com/piaskowyk) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2886](https://github.com/software-mansion/react-native-gesture-handler/pull/2886)
- Fix buttons getting stuck after scrolling on them by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2693](https://github.com/software-mansion/react-native-gesture-handler/pull/2693)
- Fix Detector creating and attaching all gestures twice on first mount
by [@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2914](https://github.com/software-mansion/react-native-gesture-handler/pull/2914)
- Fix GestureDetector not working when its children change by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2921](https://github.com/software-mansion/react-native-gesture-handler/pull/2921)
- Fix GestureDetector not working correctly with suspense and recycling
by [@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2925](https://github.com/software-mansion/react-native-gesture-handler/pull/2925)
- Fix nested buttons on the new architecture by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2926](https://github.com/software-mansion/react-native-gesture-handler/pull/2926)
- Unify scaled coordinates between `web` and `native` side. by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2943](https://github.com/software-mansion/react-native-gesture-handler/pull/2943)
- \[Web] Send relative coords in event. by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2944](https://github.com/software-mansion/react-native-gesture-handler/pull/2944)

#### 🔢 Miscellaneous

- Add information about `GestureHandlerRootView` area and change
component name in quick start section in docs. by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2899](https://github.com/software-mansion/react-native-gesture-handler/pull/2899)
- Add Hire us section to docs by
[@&#8203;patrycjakalinska](https://github.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2904](https://github.com/software-mansion/react-native-gesture-handler/pull/2904)
- Bump ejs from 3.1.7 to 3.1.10 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2888](https://github.com/software-mansion/react-native-gesture-handler/pull/2888)
- Bump tar from 6.2.0 to 6.2.1 in /e2e/web-tests by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2859](https://github.com/software-mansion/react-native-gesture-handler/pull/2859)
- docs: add
[@&#8203;swmansion/t-rex-ui](https://github.com/swmansion/t-rex-ui) by
[@&#8203;kacperkapusciak](https://github.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2895](https://github.com/software-mansion/react-native-gesture-handler/pull/2895)
- Change navbar and footer to a reusable component by
[@&#8203;patrycjakalinska](https://github.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2902](https://github.com/software-mansion/react-native-gesture-handler/pull/2902)
- Add dark mode to button in `Hire us` section by
[@&#8203;patrycjakalinska](https://github.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2908](https://github.com/software-mansion/react-native-gesture-handler/pull/2908)
- Setup example app to use Expo by
[@&#8203;bohdanprog](https://github.com/bohdanprog) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2905](https://github.com/software-mansion/react-native-gesture-handler/pull/2905)
- Revert "docs: add
[@&#8203;swmansion/t-rex-ui](https://github.com/swmansion/t-rex-ui)"
by [@&#8203;kacperkapusciak](https://github.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2909](https://github.com/software-mansion/react-native-gesture-handler/pull/2909)
- Bump [@&#8203;sideway/formula](https://github.com/sideway/formula)
from 3.0.0 to 3.0.1 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2910](https://github.com/software-mansion/react-native-gesture-handler/pull/2910)
- docs: add
[@&#8203;swmansion/t-rex-ui](https://github.com/swmansion/t-rex-ui) by
[@&#8203;patrycjakalinska](https://github.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2911](https://github.com/software-mansion/react-native-gesture-handler/pull/2911)
- Fix symlink loop during pods installation by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2917](https://github.com/software-mansion/react-native-gesture-handler/pull/2917)
- Bump rexml from 3.2.6 to 3.2.8 in /FabricExample by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2915](https://github.com/software-mansion/react-native-gesture-handler/pull/2915)
- Add animated header to the example app by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2913](https://github.com/software-mansion/react-native-gesture-handler/pull/2913)
- Add option to auto-open last example in the example app by
[@&#8203;j-piasecki](https://github.com/j-piasecki) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2918](https://github.com/software-mansion/react-native-gesture-handler/pull/2918)
- Replace current theme components with `@swmansion/t-rex-ui` by
[@&#8203;patrycjakalinska](https://github.com/patrycjakalinska) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2906](https://github.com/software-mansion/react-native-gesture-handler/pull/2906)
- Bump rexml from 3.2.6 to 3.2.8 in /MacOSExample by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2924](https://github.com/software-mansion/react-native-gesture-handler/pull/2924)
- Bump rexml from 3.2.6 to 3.2.8 in /example by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2930](https://github.com/software-mansion/react-native-gesture-handler/pull/2930)
- feat: automatically copy codegen artifacts to paper by
[@&#8203;maciekstosio](https://github.com/maciekstosio) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2933](https://github.com/software-mansion/react-native-gesture-handler/pull/2933)
- Add swipeable example rewritten to new API by
[@&#8203;latekvo](https://github.com/latekvo) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2934](https://github.com/software-mansion/react-native-gesture-handler/pull/2934)
- Fix new swipeable using useMemo with incomplete dependency list by
[@&#8203;latekvo](https://github.com/latekvo) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2937](https://github.com/software-mansion/react-native-gesture-handler/pull/2937)
- docs: update Hire us links to directly lead to contact form by
[@&#8203;kacperkapusciak](https://github.com/kacperkapusciak) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2935](https://github.com/software-mansion/react-native-gesture-handler/pull/2935)
- chore(types): add missing pointerType to GestureTouchEvent by
[@&#8203;mgcrea](https://github.com/mgcrea) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2928](https://github.com/software-mansion/react-native-gesture-handler/pull/2928)
- Bump braces from 3.0.2 to 3.0.3 in /example by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2945](https://github.com/software-mansion/react-native-gesture-handler/pull/2945)
- Bump braces from 3.0.2 to 3.0.3 in /e2e/web-tests by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2946](https://github.com/software-mansion/react-native-gesture-handler/pull/2946)
- Bump ws from 6.2.2 to 6.2.3 by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2947](https://github.com/software-mansion/react-native-gesture-handler/pull/2947)
- Bump ws from 6.2.2 to 6.2.3 in /e2e/web-tests by
[@&#8203;dependabot](https://github.com/dependabot) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2948](https://github.com/software-mansion/react-native-gesture-handler/pull/2948)
- Add `relativeCoords` average to `PointerTracker` by
[@&#8203;m-bert](https://github.com/m-bert) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2939](https://github.com/software-mansion/react-native-gesture-handler/pull/2939)
- Add missing import in docs by
[@&#8203;piaskowyk](https://github.com/piaskowyk) in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2950](https://github.com/software-mansion/react-native-gesture-handler/pull/2950)

#### New Contributors

- [@&#8203;bohdanprog](https://github.com/bohdanprog) made their first
contribution in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2905](https://github.com/software-mansion/react-native-gesture-handler/pull/2905)
- [@&#8203;maciekstosio](https://github.com/maciekstosio) made their
first contribution in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2933](https://github.com/software-mansion/react-native-gesture-handler/pull/2933)
- [@&#8203;mgcrea](https://github.com/mgcrea) made their first
contribution in
[https://github.com/software-mansion/react-native-gesture-handler/pull/2928](https://github.com/software-mansion/react-native-gesture-handler/pull/2928)

**Full Changelog**:
software-mansion/react-native-gesture-handler@2.16.2...2.17.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 5pm,every weekend" in timezone
America/Los_Angeles, Automerge - "after 5pm,every weekend" in timezone
America/Los_Angeles.

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/valora-inc/wallet).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjQxMy4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJucG0iLCJyZW5vdmF0ZSJdfQ==-->

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: valora-bot <valorabot@valoraapp.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants