Commit Graph
12 Commits
Author SHA1 Message Date
Blake Friedman e0799536ef Fix: OSS builds can accidentally using coreutils cp (#44097)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/44097

There are two places where we use a feature specific to the system version of 'cp', the:

  -X    Do not copy Extended Attributes (EAs) or resource forks.

This feature isn't available in GNU's cp, which is commonly installed on macOS using:

  brew install coreutils && brew link coreutils

We can avoid the problem alltogether by being specific about the path of the system cp.

Changelog: [General][Fixed] don't break script phase and codegen when coreutils installed on macOS

Reviewed By: cipolleschi

Differential Revision: D56143216

fbshipit-source-id: f1c1ef9ea2f01614d6d89c4e9eedf43113deb80c
2024-04-17 08:08:50 -07:00
Dmitry Rykun 7b10609276 Introduce the "platform" option to generate-codegen-artifacts.js (#42012)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/42012

Up until now `generate-codegen-artifacts.js` has been iOS only. But its logic is actually quite general, and this diff makes it platform agnostic.

Changelog: [General][Added] - Introduce the "platform" option to generate-codegen-artifacts.js

Reviewed By: RSNara

Differential Revision: D52257542

fbshipit-source-id: b7e698c779f7c6dae9b0de98a19ba452111fea5e
2023-12-21 08:29:20 -08:00
Dmitry Rykun 8a62d6135f Refactor generate-artifacts-executor.js: remove configFileDir CLI argument, use node resolution instead (#41557)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41557

The `configFileDir` CLI argument is used to help to find paths to the 3rd party dependencies of the app. Since we only care about dependencies listed in the root `package.json`, we can use `node` resolution instead of having to construct paths manually. In that case `configFileDir` becomes redundant.

Changelog: [iOS][Breaking] - Delete configFileDir CLI argument.

Reviewed By: cipolleschi

Differential Revision: D51303793

fbshipit-source-id: 46cb61197ddf51515af634c8fc6b85a8d218c51e
2023-11-23 06:07:28 -08:00
Ramanpreet Nara 4e92016a09 Remove hard-coded SampleTurboModule exclude (#41574)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41574

The codegen scripts hard-code to exclude NativeSampleTurboModule.

This diff modifies the codegen infra (i.e: combine-js-to-schema-cli.js) to accept an argument: --exclude <regex>.

Auxiliary changes:
- Refactor argument parsing to rely on node's util.parseArgs

Changelog: [Internal]

Reviewed By: javache, dmytrorykun

Differential Revision: D51471526

fbshipit-source-id: 98b88058f8c4b6fa4d776d96a1eb0f15144906a8
2023-11-22 13:52:51 -08:00
Dmitry Rykun 9071a3a0b0 Delete node calls from generate-artifacts-executor.js (#41534)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41534

This diff deletes calls to `node` from `generate-artifacts-executor.js`, and replaces them with normal `requires` of JS sources.
This is a squashed version of (D51116291 ... D51158799).
The following sequence of changes has been made:
1. Require and directly invoke `generate-specs-cli-executor` instead of using `node`.
2. Use `codegen-util` to get `RNCodegen` in `generate-provider-cli.js`.
3. Use `RNCodegen` directly instead of using `node`.
4. Move all implementation code from `combine-js-to-schema-cli.js` to `combine-js-to-schema.js`.
5. Decouple building the codegen from getting the codegen CLI.
6. Use `combine-js-to-schema` directly instead of using `node`.
7. Delete unit test that was testing node invocation.
8. Delete `nodeBinary` argument form `generate-codegen-artifacts.js` and its callsites.

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D51158845

fbshipit-source-id: 5e039801c8045a42349f7cb6ca28e2df24634589
2023-11-22 05:18:15 -08:00
Riccardo Cipolleschi a6076924bf Remove unused flag in Old Architecture codegen (#41579)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41579

This change remove a flag that is unused.

## Changelog
[Internal] - Remove unused Flag

Reviewed By: dmytrorykun

Differential Revision: D51493765

fbshipit-source-id: f8cbce991d80d4f51363cdd4f379e6b214b2b2df
2023-11-22 03:50:29 -08:00
Riccardo Cipolleschi 0056fc89ff Cleanup fabricEnabled callsites (#41556)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/41556

Followup after [#41500](https://github.com/facebook/react-native/pull/41500) to cleanup some callsites that does not need the flag anymore.

## Changelog
[Internal] - Callsite cleanup

Reviewed By: dmytrorykun

Differential Revision: D51465124

fbshipit-source-id: 61c0ac047f6eeb528f9a8aafd6d3f339c0399be9
2023-11-20 06:41:25 -08:00
Gijs Weterings d4ad19c969 Revert D49370200: Migrate codegen to shared build setup, remove package build pre-step from RNTester
Differential Revision:
D49370200

Original commit changeset: 992913155169

Original Phabricator Diff: D49370200

fbshipit-source-id: e8232c97c22065fb54ac940ee2351b2155eb51e0
2023-10-23 12:00:54 -07:00
Alex Hunt 4db31a3110 Migrate codegen to shared build setup, remove package build pre-step from RNTester (#39540)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/39540

This simplifies the use of Codegen when creating dev builds of `rn-tester` in the monorepo. It now runs from source for this internal scenario, and this package is now built using the shared monorepo build setup.

Changes:
- Migrate `packages/react-native-codegen` to the shared `yarn build` setup.
    - Update package to use `"exports"` field and wrap entry point modules with `babel-register` (NOTE: This is only required for each entry point internally used in the monorepo).
- Fixup small Flow syntax quirks that fail under `hermes-parser`.
- Remove `BuildCodegenCLITask` task from Android build.
- Remove Codegen `build.sh` call from iOS build, use `require.resolve` for `combine-js-to-schema-cli.js` entry point.

Externally significant FYIs:
- `react-native/codegen` is converted to use the `"exports"` field — it should export all `.js` files, as before.
- `codegenPath` is now ignored and marked as deprecated on `ReactExtensions.kt`.

NOTE: TypeScript auto-generation is not yet enabled on this package, since it uses CommonJS `module.exports` syntax (unsupported by `flow-api-translator`).

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D49370200

fbshipit-source-id: 992913155169912ea1a3cb24cb26efbd3f783058
2023-10-23 08:32:33 -07:00
Alex Hunt bfd5fe27b3 Fix react_native_pods_utils copy step under Eden (#38719)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38719

This removes a point of friction where the `moveOutputs` script step would fail to copy extended file attributes under [EdenFS](https://github.com/facebook/sapling/blob/29362eb4fd06b63a2184f5cce729c304c70b0582/eden/fs/docs/Overview.md).

Changelog: [Internal]

Reviewed By: cipolleschi, dmytrorykun

Differential Revision: D47951246

fbshipit-source-id: 0a22d623b5e8c60c68778d3458a9046aeafbe87f
2023-08-01 05:35:44 -07:00
Ruslan Shestopalyuk b9c64f3651 Bulk detect/correct (most of the) typos and misspells in RN core code
Summary:
## Changelog:
[Internal] -

While merging a Contributor PR in D43816768, I got curious whether such things as detecting/fixing typos could be automated.

There is a tool called [typos](https://github.com/crate-ci/typos), which, as it turns out, works very well on source code files.

The amount of false positives was minimal, most of the suggestions were valid ones.

And the total amount of typos found and fixed was **more than 300**, which is... quite a bit :)

### Methodology

* Run `typos` separately on `ReactCommon`, `Libraries`, `React`, `ReactAndroid` and `scripts` folders inside `packages/react-native`, e.g.:
```
$ typos -w --config ~/tmp/_typos.toml ~/fbsource/xplat/js/react-native-github/packages/react-native/ReactAndroid
```

Contents of the `_typos.toml` config file:
```
[default.extend-words]
collapsable = "collapsable"
NDK = "NDK"
inout = "inout"
```

(yeah, it really didn't like the "collapsable" word, for some reason ;))
* Inspect all the changes manually and revert false positives (as mentioned, their amount was minimal)

Note that most of the changes are inside things like comments and error messages, however there are a few among identifier name fixes (`typos` is actually quite smart at understanding naming conventions in code) - I kept the suggestions in cases that are local and not part of a public API. There are also misspelled file name changes in a couple of cases.

Reviewed By: NickGerleman

Differential Revision: D44172494

fbshipit-source-id: 86e27edbbb99e09135e3cdd5d7cea8ffeb8307f4
2023-03-20 02:05:38 -07:00
Ruslan Lesiutin 714b502b0c | RN Monorepo | Migrate to package (#36434)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/36434

Changelog: [Internal]

This is a squashed stack of 18 commits, starting from D43202126

allow-large-files

Reviewed By: cortinico

Differential Revision: D43977381

fbshipit-source-id: 0da552ddb85f2f61a0be0ef071915b35f3f8555c
2023-03-17 05:03:25 -07:00