Commit Graph

405 Commits

Author SHA1 Message Date
Nicola Corti 8400590abe Template: Specify abiFilters if enableSeparateBuildPerCPUArchitecture is not set.
Summary:
As users can toggle `enableSeparateBuildPerCPUArchitecture` to create a split APK, once that is off, the `-PreactNativeArchitecture` is not correctly considered when building the local module.

This will make sure that, if users have `enableSeparateBuildPerCPUArchitecture` set to `false`, their
app is building the local `app_modules` only for the requested architectures.

Practically, users invoking with `--active-arch-only` might experience a build failure if they have a fully clean environment (would be forced to do a full build before using `--active-arch-only`). This addresses this scenario.

Changelog:
[Android] [Fixed] - Template: Specify abiFilters if enableSeparateBuildPerCPUArchitecture is not set.

Reviewed By: ShikaSD

Differential Revision: D35250700

fbshipit-source-id: 4e555888636cf182495fab2b4a562d93a70b9e66
2022-04-13 14:30:01 +02:00
Anandraj 5a8033df98 Fix for building new architecture sources on Windows
On Windows there are limits on number of character in file paths and in command lines
Ref: https://android.googlesource.com/platform/ndk/+/master/docs/BuildSystemMaintainers.md#Path-Length-Limits
NDK allows circumventing command line limits using response(RSP) files as inputs using NDK_APP_SHORT_COMMANDS flag.

Windows can support long file paths if configured through registry or by prefixing all file paths with a special character sequence
The latter requires changes in NDK. And there are tools in NDK (AR) which is not able to handle long paths (>256) even after setting the registry key.
The new architecutre source tree is too deep, and the object file naming conventions in NDK makes the matters worse, by producing incredibly long file paths.
Other solutions such as symlinking source code etc. didn't work as expected, and makes the build scripts complicated and hard to manage.
This change temporarily works around the issue by placing the temporary build outputs as short a path as possible within the project path.

Changelog:
[Android] [Fixed] - Fix for building new architecture sources on Windows
2022-04-12 12:46:05 +01:00
Distiller 51f5ea15aa [0.68.0] Bump version numbers 2022-03-30 14:40:30 +00:00
Distiller a4a6e23dec [0.68.0-rc.4] Bump version numbers 2022-03-25 14:43:18 +00:00
Distiller b3f19d7f1f [0.68.0-rc.3] Bump version numbers 2022-03-17 12:54:31 +00:00
Danilo Bürger ccd1708096 Re-apply: Consider relative to pwd installation root when looking for files in rn module via cocoapods (#33427)
Summary:
This re-applies Consider relative to pwd installation root when looking for files in rn module via cocoapods by danilobuerger

The `:reactNativePath` provided by `use_native_modules!` is the rn module path relative to the installation root (usually `./ios`). However, when executing cocoapods from a dir thats not the installation root, packages that use the relative `:reactNativePath` variable in their path must also consider the relative to pwd installation root.

This fixes usage of cocoapods with the `--project-directory` flag like

```bash
bundle exec pod install --project-directory=ios
```
## Changelog

[iOS] [Fixed] - Fix usage of cocoapods with --project-directory flag and new arch

Pull Request resolved: https://github.com/facebook/react-native/pull/33427

Test Plan:
1) Enable the new arch
2) Execute from the projects root dir

```bash
bundle exec pod install --project-directory=ios
```

3) It will fail with

```
[!] Invalid `Podfile` file: [codegen] Couldn't not find react-native-codegen..
```

4) Apply the patch
5) Execute from the projects root dir

```bash
bundle exec pod install --project-directory=ios
```

6) It will succeed

Reviewed By: cortinico

Differential Revision: D34890926

Pulled By: dmitryrykun

fbshipit-source-id: f7adc6196874822d5ff38f275414f529d385f2ea
2022-03-16 18:40:11 +00:00
Nicola Corti 762db49ded Make sure configureNdkBuild* tasks are depending on preBuild
Summary:
Due to a bug with AGP, the configureNdkBuild* tasks are not depending on
preBuild tasks. We need to manually fix this otherwise the build will fail the
first time the NDK is invoked.

More on this here: https://issuetracker.google.com/issues/207403732

Changelog:
[Android] [Fixed] - Make sure configureNdkBuild* tasks are depending on
preBuild in the Android template.

Reviewed By: passy

Differential Revision: D34578860

fbshipit-source-id: 5d4caa7d2b7a976b1c9caa6dce8e186c1486cafa
2022-03-16 18:34:11 +00:00
Distiller 65e4d98a71 [0.68.0-rc.2] Bump version numbers 2022-02-24 17:17:14 +00:00
Lorenzo Sciandra 66b82aec55 chore(deps): bump CLI version to 7.0.3 to address web debugging issue (#33156)
Summary:
Doing this patch level bump to ensure that all packages consuming `react-native` will get `7.0.3` and not lower 7.x versions.
This is because this new patch contains this fix:  https://github.com/react-native-community/cli/pull/1560
(thanks NickGerleman & thymikee for your work!)

We'll have to cherry-pick this into the 0.68 branch.

While at it, I've also done a cheeky `npx yarn-deduplicate` to clean up the `yarn.lock` a bit.

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Changed] - Bump RN CLI to v7.0.3 to address web debugging issue

Pull Request resolved: https://github.com/facebook/react-native/pull/33156

Test Plan:
CI + some local testing via `test-manual-e2e`:
<img width="1779" alt="Screenshot 2022-02-21 at 11 40 54" src="https://user-images.githubusercontent.com/16104054/154948695-8c40bb56-87eb-4326-a740-49930994c08b.png">

Reviewed By: cortinico

Differential Revision: D34385503

Pulled By: motiz88

fbshipit-source-id: f0d8c4e0e92f83c0d819eeaa0fbec27820145968
2022-02-24 14:37:14 +00:00
Andrei Shikov 2cd3173991 Remove optional codegen config inside template (#33108)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/33108

The codegen config is optional and can be removed from the default package.json configuration in the template to simplify 0.68 upgrade for people who are not opted-in to the new arch.

Changelog: [Internal] - Remove optional codegenConfig field from template

Reviewed By: cortinico

Differential Revision: D34216988

fbshipit-source-id: 5c448472eed99bc112aef204c4025454171a83c5
2022-02-24 14:36:05 +00:00
Nicola Corti bca4cf023a Set a resolution strategy for com.facebook.react:react-native when on New Architecture. (#33134)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/33134

When a user is enabling New Architecture, we should make sure they don't accidentally mix
imports of React Native from source vs prebuilts.

With this resolution strategy, we'll make sure all the import of `com.facebook.react:react-native:+`
will be resolved to the correct dependency.

Changelog:
[Android] [Fixed] - Set a resolution strategy for com.facebook.react:react-native when on New Architecture

Reviewed By: ShikaSD

Differential Revision: D34303267

fbshipit-source-id: 492fec59175c5887571e1b09ca8e233584b45dd1
2022-02-24 14:35:36 +00:00
Nicola Corti 43d67cd1ec Remove react-native-gradle-plugin as a dependency from template's package.json
Summary:
We should now be able to remove the explicit `react-native-gradle-plugin` dependency
from the `template/package.json` file.

Changelog:
[Android] [Changed] - Remove `react-native-gradle-plugin` as a dependency from template's package.json

Reviewed By: motiz88

Differential Revision: D34050589

fbshipit-source-id: c8d4e4fba481af6b56723906b71411132d60aded
2022-02-24 14:12:28 +00:00
Distiller 319e4df458 [0.68.0-rc.1] Bump version numbers 2022-02-03 17:23:36 +00:00
Nicola Corti 71548ffd69 Do not bundle libhermes.so or libjsc.so inside the React Native Android AAR (#33038)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/33038

While rolling out RN 0.68.x we noticed that `libhermes.so` and `libjsc.so` were included
inside the final .aar we publish to NPM. This forced users (on both old or new arch) to
specify a `pickFirst` directive inside their packaging option (which is unpractical and
risky as the two .so might not be compatible each other if they're coming from
different Hermes/JSC versions).

Changelog:
[Android] [Fixed] - Do not bundle libhermes.so or libjsc.so inside the React Native Android AAR

Reviewed By: ShikaSD

Differential Revision: D33979107

fbshipit-source-id: 0b71d59f210b8bc9903cd0f30ed6e2120aab99e0
2022-02-03 17:12:54 +00:00
Andrei Shikov a2a7032477 Increase max heap size for template gradle build
Summary:
Updates maximum heap size for the gradle build to account for building RN from source when new architecture is enabled.

Changelog: [Changed][Android] - Use 2g as a default heap size for gradle builds

Reviewed By: cortinico

Differential Revision: D33947090

fbshipit-source-id: 2f551e688f2d92c3092e053086f6933779cd6f63
2022-02-03 17:12:06 +00:00
Distiller 0fd6ade862 [0.68.0-rc.0] Bump version numbers 2022-01-28 19:26:26 +00:00
Moti Zilberman ea74c57977 Bump direct Metro dependencies to 0.67.0
Summary:
While React Native depends on the `metro` package indirectly (via the CLI package), it depends on some secondary Metro packages directly. This diff updates those direct dependencies to use [Metro 0.67.0](https://github.com/facebook/metro/releases/tag/v0.67.0).

Changelog:
[General] Update direct Metro dependencies to 0.67.0

Reviewed By: GijsWeterings

Differential Revision: D33828217

fbshipit-source-id: e4e9ba4cf43a8588f8db43885f67d4dc606198f5
2022-01-28 08:22:17 -08:00
Evan Yeung baea87811f Deploy v0.170.0 to xplat
Summary: Changelog: [Internal]

Reviewed By: panagosg7

Differential Revision: D33756092

fbshipit-source-id: 9a15a7114864c8a41c16e6e0a7729aedd76ae861
2022-01-25 17:23:30 -08:00
Dmitry Rykun f595a4e681 Duplicate Xcodeproj UUIDs in iOS app template Podfile fixed
Summary:
Disabled deterministic UUIDs in the Podfile.
Changelog: [iOS][Fixed] - Fixed duplicated UUIDs problem during pod install phase.

Reviewed By: sota000

Differential Revision: D33741572

fbshipit-source-id: 65cdd8a0ae34200e36e5a68849f5d3537c39dda2
2022-01-25 05:07:25 -08:00
Nicola Corti 50057158ca Bump Flipper to 0.125.0 (#32923)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32923

As our Flipper version is quite old, let's bump it to one of the latest stable: 0.125.0
This required to update also the following:
- Flipper-Folly to 2.6.10 - This was needed as I aligned the versions to https://github.com/facebook/flipper/blob/v0.125.0/react-native/ReactNativeFlipperExample/ios/Podfile
- OpenSSL-Universal to 1.1.1100 - This was required with the `pod update` command

I've picked 0.125.0 as 0.127.x and following are crashing on Android
and will potentially require a bump of the NDK to r23:
See: https://github.com/facebook/flipper/issues/3245

Changelog:
[General] [Changed] - Bump Flipper to 0.125.0

allow-large-files

Reviewed By: mdvacca

Differential Revision: D33583090

fbshipit-source-id: 2a2020c3213273087ec4a152076f846e35e275c5
2022-01-21 06:54:21 -08:00
Max Thirouin 2f67f5d68b - Add vendor/bundle into .gitignore template (#32930)
Summary:
Ref https://github.com/facebook/react-native/pull/32303#issuecomment-984650053

Recently, Gemfile & .ruby-version have been introduced but local vendor artifacts have not been correctly added into gitignore, see https://github.com/facebook/react-native/pull/32303

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->

[General] [Added] - Add `vendor/bundle` into .gitignore template

Pull Request resolved: https://github.com/facebook/react-native/pull/32930

Test Plan: N / A

Reviewed By: cortinico

Differential Revision: D33688116

Pulled By: yungsters

fbshipit-source-id: 787b2b90da1e9f32f0a9e754741affbda443b3e8
2022-01-20 12:01:19 -08:00
Nicola Corti 72d949e254 Bump gradle-plugin to 0.0.4
Summary:
I'm bumping the Gradle Plugin to the latest stable. That's needed as the newest
plugin now specifies a Maven `group` and can leverage implicit dependency substitution.

Changelog:
[Internal] [Changed] - Bump gradle-plugin to 0.0.4

Reviewed By: ShikaSD

Differential Revision: D33530286

fbshipit-source-id: 904f0a6585b468322f611ed82c57cee7025305d7
2022-01-12 09:38:14 -08:00
Nicola Corti 0fccbd53af Leverage Gradle implicit dependency substitution for Gradle Plugin
Summary:
Previously we asked users to specify a dependency substitution
rule to properly use the React Native Gradle Plugin.

Here I'm updating the Gradle Plugins setup to allow to use implicit
dependency substitution. This requires to specify a Maven Group and Artifact
Name (through the project name).

This is backward compatible as users will still be allowed to specify a
dependency substitution rule if they wish.

Changelog:
[Android] [Changed] - Leverage Gradle implicit dependency substitution for Gradle Plugin

Reviewed By: ShikaSD

Differential Revision: D33404948

fbshipit-source-id: 3323f8e0738fd579ce8ae344cbdc0e4356e7dbd8
2022-01-11 07:23:54 -08:00
Nicola Corti cd4c6659d3 Bump Gradle, AGP and Download plugins
Summary:
Let's keep our Gradle infra deps up to date.
I'm bumping Gradle to 7.3.3 which fixes several Log4j CVEs,
AGP to 7.0.4 and the Download Task plugin to 4.1.2

Changelog:
[Android] [Changed] - Bump Gradle to 7.3.3 and AGP to 7.0.4

Reviewed By: mdvacca

Differential Revision: D33430789

fbshipit-source-id: b8f260beb4a9cc962ea3743610bfb4ead004d6cb
2022-01-06 10:37:28 -08:00
Andres Suarez 8bd3edec88 Update copyright headers from Facebook to Meta
Reviewed By: aaronabramov

Differential Revision: D33367752

fbshipit-source-id: 4ce94d184485e5ee0a62cf67ad2d3ba16e285c8f
2021-12-30 15:11:21 -08:00
Nicola Corti 8d652fba4c Setup a newArchEnabled property to Opt-in the New Architecture in the template (#32790)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32790

As the name says, I've added a `newArchEnabled` property that can be used to toggle the
New Architecture in the new app template. Users can use this to try the New Architecture in their
project by either:
* Set `newArchEnabled` to true inside the `gradle.properties` file
* Invoke gradle with `-PnewArchEnabled=true`
* Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`

The Project property will also control if:
* ReactNative dependency should be built from source or not.
* The NDK should be enabled or not.

Please note that this requires RN 0.68.x to run properly (it won't work with 0.67 RCs) or a Nightly version of React Native.

Changelog:
[Android] [Added] - Setup a `newArchEnabled` property to Opt-in the New Architecture in the template

Reviewed By: ShikaSD

Differential Revision: D33065373

fbshipit-source-id: 32085f5b071d6243936bafd91425b5b43e5b5101
2021-12-21 11:20:19 -08:00
Nicola Corti b352aa3691 Do not opt-out fbsource/xplat/js/react-native-github/template from CLANGFORMAT
Summary:
As we're adding C++ code, I'm enabling CLANGFORMAT inside the React
Native template folder.

Changelog: [Internal]

Reviewed By: zertosh

Differential Revision: D33238197

fbshipit-source-id: e60c849bc776e8ec130c3baba01490d431d39a67
2021-12-20 10:40:06 -08:00
Marshall Roch d1e359a15a Deploy 0.168.0 to xplat
Summary: Changelog: [Internal]

Reviewed By: panagosg7

Differential Revision: D33194236

fbshipit-source-id: a887b35ed1d1903d5564cc588c4d851c3e1b59b6
2021-12-17 14:58:51 -08:00
Phillip Pan aef843bfe6 update jsBundleURLForBundleRoot in template project
Summary: Changelog: [iOS][Changed] - updated `jsBundleURLForBundleRoot:fallbackResource` to `jsBundleURLForBundleRoot:`

Reviewed By: sota000

Differential Revision: D33192280

fbshipit-source-id: 77ed2f2b767811d9f13a33cac77598b425df95c3
2021-12-17 11:46:21 -08:00
Sota Ogo e330eee9c8 Add Other C++ flags when RCT_NEW_ARCH_ENABLE=1 (#32777)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32777

Changelog: [iOS][Added] Added the new architecture support to the new app template. To apply this change to your project, you will need to update your Podfile.  You can try it by using "RCT_NEW_ARCH_ENABLE=1 pod instal" command which updates necessary C++ flags and enable the new codegen discovery required for the new architecture. As context, We've modified the iOS template to have code required to enable the new architecture (aka Turbo modules and fabric / renderer) which requires updating AppDelegate. We also added the support in RNTester as well. We will be sharing more documentation about the new architecture.

Reviewed By: dmitryrykun

Differential Revision: D33154825

fbshipit-source-id: a46b98308e9d29780b6a5245e8faa8be1e257802
2021-12-16 23:41:42 -08:00
Sota Ogo 6a046fb9f0 Fix build issue for the new app template (#32772)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32772

Changelog: [internal] Fix a build issue for the new app template.

Reviewed By: philIip

Differential Revision: D33154125

fbshipit-source-id: ae696aeae6aac31678fe43a8963aab05c67c05d7
2021-12-16 00:54:24 -08:00
Evan Yeung 7dfb08a785 Deploy 0.167.1 to xplat
Summary: Changelog: [Internal]

Reviewed By: bradzacher

Differential Revision: D33110257

fbshipit-source-id: 29dc5d94194c5db0712efd727f5a372d0356b7c6
2021-12-15 18:58:44 -08:00
Sota Ogo 1cd8f05ee8 Refactor app template setup util functions
Summary:
Changelog: [internal] Refactor RCTAppSetupUtils to c functions.

Since RCTAppSetupUtils doesn't retain any states, we don't need it to be a class.

Reviewed By: philIip

Differential Revision: D33084352

fbshipit-source-id: 1372a2737eafffa46ee6e5164a970dd12699c71c
2021-12-15 18:14:36 -08:00
Sota Ogo c0c5439959 Rename the new architecture flag to RCT_NEW_ARCH_ENABLED
Summary: Changelog: [internal] Changed teh new architecture flag in the new app template to RCT_NEW_ARCH_ENABLED

Reviewed By: philIip

Differential Revision: D33083694

fbshipit-source-id: f2cc6c564c724b4ebed7b465a533464b6717ac27
2021-12-15 18:14:36 -08:00
Sota Ogo 2e9a376c84 Add fabric option to the default app template.
Summary:
Changelog: [internal] Added fabric option to the default app template.

Use RCT_TM_FABRIC_ENABLED C++ flag to enable fabric.

Reviewed By: sammy-SC

Differential Revision: D33052956

fbshipit-source-id: 28313829c80abcf02baa521bdb0b70213c94a97f
2021-12-15 18:14:35 -08:00
Sota Ogo 8ec0e6919c Add turbo module support in the default app template (#32752)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32752

Changelog: [internal] Add an optional support for Turbomodule. Define RCT_TM_FABRIC_ENABLED to enable the new architecture.

Reviewed By: philIip

Differential Revision: D33052777

fbshipit-source-id: 6d32790586bb51f9c9244344522c95245c912114
2021-12-15 18:14:35 -08:00
Sota Ogo 82b8f407c9 Revert the change to add babel-plugin-codegen
Summary: Changelog: [internal] removed babel-plugin-codegen from the dependency. The dependency will exist in the app template.

Reviewed By: lunaleaps

Differential Revision: D33138950

fbshipit-source-id: f71fa4ca55d13715ccd1ade1424bc3cddbb10d1a
2021-12-15 16:53:01 -08:00
Sota Ogo 2098c89502 Add babel-plugin-codegen to babel.config.js for fabric (#32756)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32756

Changelog: [internal] Add babel-plugin-codegen to babel.config.js for the new architecture support.

Reviewed By: motiz88

Differential Revision: D33053216

fbshipit-source-id: 97a1fd9c64972ac4831461b1b62d3a83aa3207cb
2021-12-14 19:28:41 -08:00
Sota Ogo 73a04d1452 Refactor the iOS app template to move setups to a helper class
Summary:
Changelog: [internal] Move initital setups in AppDelegate to util classes.

This will make it easy to apply the new architecture changes in the future.

Reviewed By: cortinico

Differential Revision: D33051517

fbshipit-source-id: 16e326b7816fae83df65450c545e7dce1a93b9d0
2021-12-13 23:13:32 -08:00
Sota Ogo 4fb49cd555 Rename AppDelegate.m to AppDelegate.mm in the app template
Summary:
Changelog: [Internal] changing the extention from AppDelegate.m to AppDelegate.mm in the app template to support the new architecture.

Most changes were generated when opening the xcworkspace.

Reviewed By: cortinico

Differential Revision: D33051442

fbshipit-source-id: f472a9df26db11a02fc9f7d0544f0207e7c3e7ca
2021-12-13 11:49:00 -08:00
Andrei Shikov 00ac034353 Bump OSS Android build to SDK 31 (#32606)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/32606

Updates OSS builds for internals and template to target SDK 31, corresponding to Android 12.

Changelog:
[Updated][Android] - Bump Android compile and target SDK to 31

Reviewed By: cortinico

Differential Revision: D32107409

fbshipit-source-id: 57f219d33e884200ca4f49e1afe1bfd65b0d6315
2021-11-24 12:27:26 -08:00
Dulmandakh 272cfe5d13 draft: bump AGP to 7 (#32589)
Summary:
Bump Android Gradle Plugin to 7.

## Changelog

[Android] [Changed] - Bump Android Gradle Plugin to 7.

This will make Java 11 a requirement for users that are either:
* Cloning react-native to contribute
* Using react-native while building from source.
* Creating new project from the template.

Pull Request resolved: https://github.com/facebook/react-native/pull/32589

Test Plan: CI is green

Reviewed By: ShikaSD

Differential Revision: D32427945

Pulled By: cortinico

fbshipit-source-id: c1ea464d87c3e397616c55154b3d8b1c3ea6c592
2021-11-24 10:58:54 -08:00
Marshall Roch 8ace78c082 Deploy 0.165.0 to xplat
Summary: Changelog: [Internal]

Reviewed By: bradzacher

Differential Revision: D32522560

fbshipit-source-id: 34b005f3248281a72acffda00696bc05abd10c20
2021-11-17 22:43:51 -08:00
Dulmandakh c180627ac7 bump gradle to 7.3 (#32588)
Summary:
Bump Gradle to 7.3, also configure gradle cache key to include gradle version so that we don't keep cache for other versions and have smaller cache, faster CI.

## Changelog

[Android] [Changed] - Bump Gradle to 7.3

Pull Request resolved: https://github.com/facebook/react-native/pull/32588

Test Plan: CI is green

Reviewed By: ShikaSD

Differential Revision: D32427806

Pulled By: cortinico

fbshipit-source-id: 776406ef3aa7962cf3a4abc178e3c8a4762a01e0
2021-11-15 06:47:39 -08:00
Pieter Vanderwerff 181464903c Deploy 0.164.0 to xplat
Summary: Changelog: [Internal]

Reviewed By: bradzacher

Differential Revision: D32321328

fbshipit-source-id: 48017e06bdda567fee9ff571247425d07a22c923
2021-11-11 08:39:15 -08:00
Tim Yung cf763cdf81 RN: Upgrade ESLint Packages (#32560)
Summary:
Upgrades ESLint to v7.28.0. This is the latest version before v8.0.0, which would be a more involved upgrade.

Upgrades all ESLint-related dependencies to their latest version, except for [eslint-plugin-flowtype](https://github.com/gajus/eslint-plugin-flowtype/). This is because eslint-plugin-flowtype@8.0.0 dropped support for ESLint v7.

Configures ESLint for Metro to extend `plugin:prettier/recommended`.

## Changelog

[General][Changed] - Upgraded packages to the latest versions for ESLint v7.

Pull Request resolved: https://github.com/facebook/react-native/pull/32560

Test Plan:
Run this on an open source checkout of `facebook/react-native`:

```
# See no new errors or warnings.
$ yarn run lint
```

Run this internally:

```
$ js1 test xplat/js/tools/__tests__/dependency-constraints-test.js
```

Verify linting works:

```
js1 lint xplat/js/RKJSModules/Libraries/Core/
```

Reviewed By: lunaleaps

Differential Revision: D32258399

Pulled By: yungsters

fbshipit-source-id: d11b3fc3e33770157a90f3dee352cf80b39c442c
2021-11-09 13:16:42 -08:00
Nicola Corti 0f39a1076d Make the reactNativeArchitectures property more discoverable
Summary:
I've unified the function that is responsible of getting the `reactNativeArchitectures` property
to a single one (ideally we could move it inside the Gradle Plugin in the future).
I've also added a property in the `gradle.properties` file. This makes easier for users to customize the
architecture to build without having to specify a CLI flag or edit multiple gradle files.

Changelog:
[Android] [Added] - Make the `reactNativeArchitectures` property more discoverable

Reviewed By: ShikaSD

Differential Revision: D32244997

fbshipit-source-id: 33180544400f9abe63e9b539ff16fefa17a024ba
2021-11-08 07:21:08 -08:00
somena1 fc962c9b6c Don't reconstruct app component on split-screen (#32536)
Summary:
When switching between split screen or resizing the screen window on Android causes a restart by reconstructing the app components as described on this issue https://github.com/facebook/react-native/issues/25040

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://github.com/facebook/react-native/wiki/Changelog
-->
[Android] [Fixed] - Don't reconstruct app components https://github.com/facebook/react-native/issues/25040

Pull Request resolved: https://github.com/facebook/react-native/pull/32536

Test Plan:
### How to reproduce
- create a new project
-  build app and install on Android
- minimize app and start split screen
Expected:
- App enters split screen
Result:
- App restart

Same issue can be seen when resizing the split screen window

Reviewed By: cortinico

Differential Revision: D32175433

Pulled By: yungsters

fbshipit-source-id: 93dccaa134074eea260cca61eba2150444fa5688
2021-11-05 10:36:39 -07:00
Neil Dhar 43c38cdc8e Allow specifying an architecture in RNTester and release builds
Summary:
Setting `reactNativeDebugArchitectures` currently does not seem to work for RNTester, since it sets `abiFilters` which conflicts with the `splits` option we're already setting.

Gradle then complains:
```
neildhar@neildhar-mbp ~/f/x/j/react-native-github (default) >
./gradlew  -PreactNativeDebugArchitectures=x86_64 :packages:rn-tester:android:app:installJscDebug

> Configure project :ReactAndroid
Unable to detect AGP versions for included builds. All projects in the build should use the same AGP version. Class name for the included build object: org.gradle.composite.internal.DefaultIncludedBuild$IncludedBuildImpl_Decorated.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':packages:rn-tester:android:app'.
> com.android.builder.errors.EvalIssueException: Conflicting configuration : 'x86_64' in ndk abiFilters cannot be present when splits abi filters are set : x86_64,x86,armeabi-v7a,arm64-v8a
```

Consolidate everything with the `splits` option.

In addition, it's convenient to also be able to control the native architecture for release builds.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D31834075

fbshipit-source-id: c6375d2a1e242981d0017f6e0a9d428b074a3fbd
2021-11-03 15:23:46 -07:00
Tim Yung 4e587a1b7d JS: Upgrade to Prettier v2.4.1 [1/n]
Summary:
Changelog:
[General][Changed] - Upgraded to `prettier@^2.4.1`.

Reviewed By: zertosh

Differential Revision: D31854010

fbshipit-source-id: 6d7a2e758a3ddf7c758ceffb14d98eb93b0ce4b0
2021-11-02 22:14:16 -07:00