Commit Graph
14330 Commits
Author SHA1 Message Date
Hector Ramos cb471c7b3e Revert "[0.57.0-rc.4] Bump version numbers"
This reverts commit 9dcc39586c.
2018-09-06 16:12:06 -07:00
Hector Ramos 9dcc39586c [0.57.0-rc.4] Bump version numbers 2018-09-06 15:28:55 -07:00
Hector Ramos 5ffa4b319b Revert "[0.57.0-rc.4] Bump version numbers"
This reverts commit 9974d4f1e7.
2018-09-06 15:28:49 -07:00
Hector Ramos 0943c6437a Sync Circle CI config from master 2018-09-06 15:27:10 -07:00
Mike Grabowski 9974d4f1e7 [0.57.0-rc.4] Bump version numbers 2018-09-03 11:07:32 +02:00
Mike Grabowski 4382413e5b Fix flow 2018-09-03 11:06:53 +02:00
Mike Grabowski f28a6bbc44 Revert "[0.57.0-rc.4] Bump version numbers"
This reverts commit 6d4970f886.
2018-09-03 11:06:17 +02:00
Mike Grabowski 6d4970f886 [0.57.0-rc.4] Bump version numbers 2018-09-02 19:13:46 +02:00
Héctor RamosandMike Grabowski af554aabe7 Update CircleCI confih 2018-09-02 16:11:35 +02:00
Oleg LokhvitskyandMike Grabowski ef7e99c1bb ScrollView snapToOffsets
Summary:
* Added snapToOffsets prop to ScrollView. Allows snapping at arbitrary points.

* Fixed pagingEnabled not being overridden by snapToInterval on iOS.

* Fixed Android *requiring* pagingEnabled to be defined alongside snapToInterval.
* Added support for decelerationRate on Android.

* Fixed snapping implementation. It was not calculating end position correctly at all (velocity is not a linear offset).
  * Resolves https://github.com/facebook/react-native/issues/20155
* Added support for new content being added during scroll (mirrors existing functionality in vertical ScrollView).

* Added support for snapToInterval.
  * Resolves https://github.com/facebook/react-native/issues/19552

Reviewed By: yungsters

Differential Revision: D9405703

fbshipit-source-id: b3c367b8079e6810794b0165dfdbcff4abff2eda
2018-08-31 15:28:00 +02:00
Kevin GozaliandLorenzo Sciandra a3b2f5d05f iOS downgrade error to warning when invoking native module with invalid bridge
Summary: A bunch of flows including JS reload and e2e tests seem to hit the race condition, causing redbox. For now, make it a warning to unblock.

Differential Revision: D9327418

fbshipit-source-id: a72b378d88f7566268fd9415fbd34225c8b931e7
2018-08-31 10:14:56 +01:00
empyricalandLorenzo Sciandra 6bcd51a3e9 Add support for out-of-tree platform plugins (#20825)
Summary:
This pull request adds the ability for a platform developer to provide a `"haste"` key under the `"rnpm"` key in their `package.json` which allows the packager to pick up that platform's javascript files. The intent is to remove the need to have custom platforms hardcoded in. This is inspired by the `"jest": { "haste": {} }` key used by jest.

For example, React Native Dom would have an entry like:

```json
{
  "rnpm": {
    "haste": {
      "providesModuleNodeModules": [
        "react-native-dom"
      ],
      "platforms": [
        "dom"
      ]
    }
  }
}
```

Support for more keys (path blacklists perhaps?) could be added in the future.

This succeeds #20662, as per a discussion I had with matthargett.

I've got an open discussion over here as well: https://github.com/react-native-community/discussions-and-proposals/issues/21
Pull Request resolved: https://github.com/facebook/react-native/pull/20825

Differential Revision: D9596429

Pulled By: hramos

fbshipit-source-id: a02f0da0bea8870bdc45d55e23da8ccbc36249f2
2018-08-31 10:13:20 +01:00
Rafael OlezaandLorenzo Sciandra 1bfa422edb Bump metro@0.45.0
Summary: shipitwithfiremissile

Reviewed By: mjesun

Differential Revision: D9558666

fbshipit-source-id: 1e4102de3986832ae86f56e5d245e0a0b6c4fa17
2018-08-31 10:13:00 +01:00
Rafael OlezaandLorenzo Sciandra 7156c86628 End metro server gracefully when there are some edge errors
Summary: This diff fixes a couple of edge cases that caused Metro to keep the process running when there were some specific errors (specially around the `dependencies` command and the transformer path).

Reviewed By: jrwats

Differential Revision: D9551834

fbshipit-source-id: 959cefcec9e2687dff89c94a871ae74c50d2dd77
2018-08-31 10:12:55 +01:00
Rafael OlezaandLorenzo Sciandra 9f83fccc3c Upgrade to babel@7.0.0
Summary: Now that babel7 is stable, we can upgrade Metro and fbsource to use it, yay!!!!!

Reviewed By: mjesun

Differential Revision: D9518571

fbshipit-source-id: c85569cb3058235f4f9310949897f7955ecf7324
2018-08-31 10:12:44 +01:00
Rafael OlezaandLorenzo Sciandra a7d6a3b531 Make the --transformer CLI argument override the babelTransformerPath
Summary: D9070810 introduced a breaking change, making the `--transformer` CLI argument able to override the generic transformer instead of `babelTransformer`. Since we still have some scripts that assume `--transformer` is being used for overriding the babelTransformer path, we cannot do this breaking change yet, so this diff reverts the CLI handling to the old behaviour.

Reviewed By: jrwats

Differential Revision: D9550157

fbshipit-source-id: 8b4e26fcb5bca6e4b2f63b1e1a014bce23a31452
2018-08-31 10:12:36 +01:00
Rafael OlezaandLorenzo Sciandra 96939ad9f5 Bump metro@0.44.0
Summary: shipit-splash

Reviewed By: mjesun

Differential Revision: D9504325

fbshipit-source-id: 191f27ee33c1363f180b0c6c710f65096e139df1
2018-08-31 10:12:27 +01:00
Rafael OlezaandLorenzo Sciandra 2fb77a9c10 Expose the actual transformer in the config
Summary:
This diff exposes the new more generic way to configure transformers in `Metro` via the config parameter `transformerPath`.

The new generic transformers can be used to transform any kind of file, since they don't call any JS-specific method and their API is generic. They only need to implement a single `transform` method:

```
async function transform(
  absolutePath: string,
  relativePath: string,
  fileContents: Buffer,
  options: TransformOptions, // very soon these will be configurable
): Promise<{
  output: Array<mixed>,
  dependencies: Array<{
    name: string,
    data: mixed, // very soon
  }>,
}> {
  // ...
}
```

Metro already had a `transformModulePath` config param, which was used to configure how babel was called in order to generate the AST. In order to avoid confusion, but keep the current open source transformer worker, I've renamed this param to `babelTransformerPath`. We can add a layer of compatibility and detect old config params in order to show a deprecation warning.

Reviewed By: pvdz

Differential Revision: D9070810

fbshipit-source-id: aebde879736026c09537f5d236eae24c06640abf
2018-08-31 10:12:01 +01:00
Hector Ramos a8aa8b673c [0.57.0-rc.3] Bump version numbers v0.57.0-rc.3 2018-08-24 14:51:24 -07:00
Hector Ramos 50e95897d8 refactor publish workflow 2018-08-24 14:46:15 -07:00
Hector Ramos a45a383683 Revert "Expose the actual transformer in the config"
This reverts commit bdc0f3031a.
2018-08-24 13:38:51 -07:00
Rafael OlezaandHector Ramos bdc0f3031a Expose the actual transformer in the config
Summary:
This diff exposes the new more generic way to configure transformers in `Metro` via the config parameter `transformerPath`.

The new generic transformers can be used to transform any kind of file, since they don't call any JS-specific method and their API is generic. They only need to implement a single `transform` method:

```
async function transform(
  absolutePath: string,
  relativePath: string,
  fileContents: Buffer,
  options: TransformOptions, // very soon these will be configurable
): Promise<{
  output: Array<mixed>,
  dependencies: Array<{
    name: string,
    data: mixed, // very soon
  }>,
}> {
  // ...
}
```

Metro already had a `transformModulePath` config param, which was used to configure how babel was called in order to generate the AST. In order to avoid confusion, but keep the current open source transformer worker, I've renamed this param to `babelTransformerPath`. We can add a layer of compatibility and detect old config params in order to show a deprecation warning.

Reviewed By: pvdz

Differential Revision: D9070810

fbshipit-source-id: aebde879736026c09537f5d236eae24c06640abf
2018-08-24 12:33:14 -07:00
Rafael OlezaandHector Ramos e38b928650 Standarize options passed to the transformer
Summary:
This is the first step to make transformers fully customizable (and not be tied to JS, or RN). In order to do that, I'm changing the signature of the transformers, which currently is:

```
function transformCode(
  filename: string,
  localPath: LocalPath,
  transformerPath: string,
  options: WorkerOptions,
  assetExts: $ReadOnlyArray<string>,
  assetRegistryPath: string,
  minifierPath: string,
  asyncRequireModulePath: string,
  dynamicDepsInPackages: DynamicRequiresBehavior,
)
```

to be:

```
async function transformCode(
  filename: string,
  localPath: LocalPath,
  options: WorkerOptions,
)
```

(so basically, all the RN-custom properties are moved to `WorkerOptions`, which in the future will be a generic to allow anybody pass any random option to their transformers).

In order to make all this work, I've had to get rid of the logic that calculates the base cache key hash based on a subset of worker options (the ones that Metro knows that are not going to change between runs).

This could potentially cause a perf regression (since we're now making the hash calculation a bit more costly), and in fact I could measure a ~400ms regression on the worse case scenario (which happens when restarting Metro and re-transforming a Wilde from a warm local cache).

I've benchmarked this regression and could find that it's caused by the array of `assetExtensions` (which is potentially large). I have a followup diff to improve this, which is able to remove the regression completely.

Reviewed By: pvdz

Differential Revision: D8695766

fbshipit-source-id: eccd18a4cbc91854f34d5c9ba7f95088f19483a1
2018-08-24 12:33:09 -07:00
Vladimir ZdravkovicandHector Ramos 7ae186cd85 Updated the glog library version from 0.3.4 to 0.3.5 (#20811)
Summary:
While the original reason for this change was because of an issue #20780, with further investigation I concluded that the issue is till present for this combo of versions:
glog - 0.3.5
google-cast-sdk - 4.3.1

Downgrading google-cast-sdk to 4.3.0 fixed the build issue.

Release Notes:
--------------
Updated glog version from 0.3.4 to 0.3.5 for iOS

[IOS] [ENHANCEMENT] [GLOG]
Pull Request resolved: https://github.com/facebook/react-native/pull/20811

Differential Revision: D9485221

Pulled By: hramos

fbshipit-source-id: 65caf0839588384a5229a6165506dc6ef62e5fc5
2018-08-24 12:32:55 -07:00
gengjiawenandHector Ramos 60b11b05a3 refine android config (#20731)
Summary:
By this change we can unify version early, like we can make kotlin version share in buildscript and app dependency the same time ([butterknife](https://github.com/JakeWharton/butterknife/blob/master/build.gradle) use the same).
pass all current ci and one of my project https://github.com/gengjiawen/ReactNative64bitDemo.
none
 [GENERAL] [ANDROID] [TEMPLATE] - refine android config
Pull Request resolved: https://github.com/facebook/react-native/pull/20731

Differential Revision: D9482954

Pulled By: hramos

fbshipit-source-id: d864adbdbc624bc311ccc5f44a15d0334d2d8a59
2018-08-24 12:31:51 -07:00
Héctor Ramos 2f6e172fec Gate failing steps behind a username check (#20818)
Summary:
There are some steps known to be failing on master. This pollutes checks for unrelated PRs.

This PR will make it so that PRs submitted by anyone other than myself will no-op on these steps.

Future work: Have an array of whitelisted contributors, and make it much easier to turn individual tests on and off.
Pull Request resolved: https://github.com/facebook/react-native/pull/20818

Differential Revision: D9484946

Pulled By: hramos

fbshipit-source-id: d6c187b341f13552b33d0f1d569b65f6c66ae48f
2018-08-24 07:24:02 -07:00
Héctor Ramos be60766572 Bump iOS min in Readme (#20805)
Summary:
iOS 8 was dropped as of 0.56.
Pull Request resolved: https://github.com/facebook/react-native/pull/20805

Differential Revision: D9481968

Pulled By: hramos

fbshipit-source-id: 23e74ac3145ba92e2c119be365f2435e290c3f61
2018-08-24 07:20:14 -07:00
Héctor Ramos a7d44dd350 Use one time password when publishing to npm (#20701)
Summary:
This pull request addresses the failing publish-npm.js script from earlier this week. For background, last month we reset all npm access tokens for any package related to Facebook, and we now require all accounts with publish permissions to have two factor enabled.

The publish-npm.js script relied on one such token that is configured in Circle CI as a envvar. The token has been updated in Circle CI, but we now need a way of passing the one time password to npm.

With this PR, we can now grab the otp from Circle CI's envvars. Considering otps are ephemeral, this requires the NPM_CONFIG_OTP envvar to be set by someone with publishing permissions anytime a new release will be pushed to npm. The token is short lived, but it would still be good to clear the envvar after the package is published. Circle CI envvars are not passed on to PR/forked builds.

This PR is effectively a breaking change for the release process, as the publish step will not succeed if the OTP is not valid.

OTPs are short-lived, and the publish_npm_package job will definitely outlive the token. Unfortunately this will require some timing to get right, but the alternative is to ssh into the Circle CI machine and re-run the `npm publish --otp` command, which again would still require someone with publish access to provide the otp.
Pull Request resolved: https://github.com/facebook/react-native/pull/20701

Differential Revision: D9478488

Pulled By: hramos

fbshipit-source-id: 6af631a9cb425271b98c03d158aec390ebc95304
2018-08-24 07:19:54 -07:00
gengjiawenandLorenzo Sciandra 6eac2d4e2f bump android gradle to 3.1.4 (#20767)
Summary:
Bump android gradle plugin to 3.1.4. We have been stay to 2.x too long. With 3.x we can have instant run and great performance and new features brought by google.

Also thanks to CFKevinRef great pr to make this possible.
pass all current ci. I have also tested RNTester release version works without crash.
https://github.com/facebook/react-native/pull/17967.
 [GENERAL] [ANDROID] [FEATURE] - bump android gradle to 3.1.4
Pull Request resolved: https://github.com/facebook/react-native/pull/20767

Differential Revision: D9437576

Pulled By: hramos

fbshipit-source-id: 6084056a1390582a75a879918f2538b0480f6299
2018-08-23 14:55:18 +01:00
DulmandakhandLorenzo Sciandra 5992f8d587 Bump compileSdkVersion to 27 and buildToolsVersion to 27.0.3 (#20777)
Summary:
I found that android support library 27.x (https://github.com/facebook/react-native/commit/874cca1ac258ec224bade999722d7a34c307def0) requires compileSdkVersion to be 27. Also found that many FB projects use SDK 27.
Pull Request resolved: https://github.com/facebook/react-native/pull/20777

Differential Revision: D9478431

Pulled By: hramos

fbshipit-source-id: ca100f6b5b39e7d112926124423f9510a0efc291
2018-08-23 14:55:12 +01:00
DulmandakhandLorenzo Sciandra 4b68b64e47 Remove TextLayoutBuilder from ReactAndroid dependency (#20600)
Summary:
This PR removes TextLayoutBuilder, which is not used anywhere.
Pull Request resolved: https://github.com/facebook/react-native/pull/20600

Reviewed By: achen1

Differential Revision: D9367345

Pulled By: hramos

fbshipit-source-id: 407a6a80f5c69650fcc7167b28214f7315beed2f
2018-08-23 14:55:03 +01:00
DulmandakhandLorenzo Sciandra 02e7ce0219 use latest infer-annotations from maven (#20599)
Summary:
This PR removes infer-annotation from the repo and uses latest version of it from maven.
Pull Request resolved: https://github.com/facebook/react-native/pull/20599

Differential Revision: D9437594

Pulled By: hramos

fbshipit-source-id: 93c33041dd8a61b220c352fb187a23bb2dd1b4db
2018-08-23 14:54:54 +01:00
DulmandakhandLorenzo Sciandra d9868f7ed8 Bump Android Support Library to 27.1.1 (#20586)
Summary:
This PR bumps Android Support Library version to 27.1.1.

FYI, originally was a part of https://github.com/facebook/react-native/pull/20026.
Pull Request resolved: https://github.com/facebook/react-native/pull/20586

Differential Revision: D9414901

Pulled By: hramos

fbshipit-source-id: 580338e62a924c214accc5d944f17c81ad9e3f9f
2018-08-23 14:54:47 +01:00
Sergei DryganetsandLorenzo Sciandra 7a246e4872 Android. OkHttp crash fixed on upload re-try. (#20802)
Summary:
This change fixes this issue:
https://github.com/facebook/react-native/issues/10423
Pull Request resolved: https://github.com/facebook/react-native/pull/20802

Differential Revision: D9478422

Pulled By: hramos

fbshipit-source-id: ce3a098a71c8f50a62b011a2a277004ab7a7b655
2018-08-23 10:05:19 +01:00
Elias ToivanenandHector Ramos 9a4c21f92b Bugfix: Check NodeJS version successfully even for old runtimes (Fixes #20769) (#20779)
Summary:
Fixes #20769

Release notes
--------------
[CLI] [BUGFIX] [local-cli/server/checkNodeVersion.js] - Disable auto-formatting in `local-cli/server/checkNodeVersion.js` since it introduces ES6 and ES7 syntax (trailing comma in argument list) which in turn makes ES5 engines crash with a `SyntaxError`.
Pull Request resolved: https://github.com/facebook/react-native/pull/20779

Differential Revision: D9468346

Pulled By: hramos

fbshipit-source-id: 24761a377a5fd104e11ed6b6e86da15e96a0e38b
2018-08-22 22:55:59 -07:00
Rafael OlezaandHector Ramos 893c0274d6 Fix default projectRoot + watchFolders computation
Summary:
@public

This diff fixes the `projectRoot` calculation on React Native when the app does not have a config file. This should fix the issues reported in https://github.com/facebook/react-native/issues/20712

Reviewed By: hramos

Differential Revision: D9444982

fbshipit-source-id: 4cb41fa5224d2addf92976cc119e49dea6a6346b
2018-08-22 22:55:06 -07:00
Hector Ramos f7fc381eda [0.57.0-rc.2] Bump version numbers v0.57.0-rc.2 2018-08-22 14:55:35 -07:00
Hector Ramos a92bb3b06e [0.57.0-rc.1] Bump version numbers v0.57.0-rc.1 2018-08-22 13:20:20 -07:00
Hector Ramos 2739bf45cc Revert "[0.57.0-rc.1] Bump version numbers"
This reverts commit 8cd5be67ff.
2018-08-22 13:19:59 -07:00
Héctor Ramos aa6af734a3 Run failing tests in CI, without turning CI red (#20775)
Summary:
We have several disabled tests in Circle, and they are not running at all.
This prevents us from seeing when a disabled test might actually be fixed, as enabling the test requires uncommenting the correct line in Circle CI's config.

In this PR, we use the existing swallow_error script to run known-failing steps, without failing the job. This will let us see the step's output in CI, without polluting PRs that have not introduced new failures to CI.
Pull Request resolved: https://github.com/facebook/react-native/pull/20775

Differential Revision: D9442412

Pulled By: hramos

fbshipit-source-id: 83c930811a559fdcf6d7b926b4073343e862d2b3
2018-08-22 13:18:55 -07:00
Héctor RamosandHector Ramos d286ff923a WIP: Add Node 10 job to workflow
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/19299

Differential Revision: D9413583

Pulled By: hramos

fbshipit-source-id: 61ac48e46feaba5f1ec80362b5e1c7f2787ee167
2018-08-22 13:18:50 -07:00
Héctor Ramos 56e5884f86 Disable Podspec tests
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/20755

Differential Revision: D9408317

Pulled By: hramos

fbshipit-source-id: 7799cf8ee4c99662299ef9cf1a26913cdf0d8b39
2018-08-22 13:18:45 -07:00
Hector Ramos 8cd5be67ff [0.57.0-rc.1] Bump version numbers 2018-08-22 12:54:21 -07:00
jamschandHector Ramos d0c6ccb739 Add missing "--terminal" argument to run-android (#20584)
Summary:
Commit 79e498b7fb claims that "--terminal" has been added as an argument to the "run-android" script which it hasn't. Instead it adds a new environment variable "process.env.REACT_TERMINAL" which seems to be undocumented and nowhere else in the repository.

This commit now allows Linux and OSX users to specify their custom terminal :

    react-native run-android --terminal=x-terminal-emulator

Additionally the metro bundler child process "detached" option has been set to false if no terminal has been specified on Linux which fixes an issue where the packager would be running in the background and would have to manually be closed by finding the process.

Fixes #18122
Pull Request resolved: https://github.com/facebook/react-native/pull/20584

Differential Revision: D9234990

Pulled By: hramos

fbshipit-source-id: 60e4cc57b2790c419d5a4f9027add04313ddf6f8
2018-08-22 12:37:42 -07:00
Nick GraefandHector Ramos e4f4c31236 ignore babelrc in git-upgrade (#20790)
Summary:
Per [this comment on the issue](https://github.com/facebook/react-native/issues/20710#issuecomment-414631827):

> Babel by default tries to find .babelrc files to configure itself, and once it finds the one from the RN app (which links to the RN preset that only works on Babel 7) it fails.
> The easiest patch to fix this issue is to add babelrc: false to the babel-register method, so Babel does not read any additional .babelrc file.

Fixes #20710
Pull Request resolved: https://github.com/facebook/react-native/pull/20790

Differential Revision: D9458502

Pulled By: hramos

fbshipit-source-id: 3a0ed7261322fdd9e0c0840f8a3944974f38b233
2018-08-22 12:36:22 -07:00
Héctor RamosandLorenzo Sciandra b44449395c Fix old license that snuck into repo (#20702)
Summary:
Quick trivial PR to add back a necessary header. Fixes CI as well.
Pull Request resolved: https://github.com/facebook/react-native/pull/20702

Differential Revision: D9374430

Pulled By: hramos

fbshipit-source-id: dba0f1d4fc80e39242d8c3e6d1e0007492d2860d
2018-08-22 17:17:12 +01:00
Héctor RamosandLorenzo Sciandra 126e4c6559 Fix Flow errors (#20696)
Summary:
Revert change to flow strict-local in OSS.
Pull Request resolved: https://github.com/facebook/react-native/pull/20696

Differential Revision: D9367630

Pulled By: hramos

fbshipit-source-id: 17e4d1ab6d00b2e14033b223d878d5fcd1c098f4
2018-08-22 17:17:12 +01:00
Ramanpreet NaraandLorenzo Sciandra e0df3a1a8b Gate usage of WebKit 10.0 APIs
Reviewed By: mmmulani

Differential Revision: D9362001

fbshipit-source-id: 62cde6bcc1f190c168973b173ce55c029328bfbf
2018-08-22 17:17:12 +01:00
Ramanpreet NaraandLorenzo Sciandra 959aacff73 Dynamically load WebKit
Summary:
@public

We can't dynamically link `WebKit` because doing so will impact cold start of all our Apps.

This diff includes a few changes:
 1. Weakly link the `WebKit` framework in the `ReactInternal` library, so that the compiler doesn't die when it encounters a WebKit symbol.
 2. Undo dynamic linking of WebKit in Catalyst.
 3. Undo dynamic linking of WebKit in AdsManager
 4. Before the first `WKWebView` is instantiated, dynamically load the `WebKit` framework.

The end result of these changes is that WebKit will be loaded only when it's going to be used.

Reviewed By: mmmulani

Differential Revision: D6564328

fbshipit-source-id: a45a44e774d0c61c1fb578a6fa3d16bb08f68ac9
2018-08-22 17:17:12 +01:00
Ramanpreet NaraandLorenzo Sciandra 262d286f4b Warn when 'scalesPageToFit' prop is used
Summary:
@public

The `WKWebView` class doesn't expose a `scalesPageToFit` property, unlike `UIWebView`. Therefore, the `scalesPageToFit` RN prop is be a bit tricky to implement with `WKWebView`.

For the time being, this diff adds warnings to `<WebView/>` whenever `useWebKit={true}` and `scalesPageToFit` is set. I've also updated the documentation to reflect that we don't support `scalesPageToFit` prop with the new implementation of `<WebView/>`.

Reviewed By: shergin

Differential Revision: D6429271

fbshipit-source-id: adf858cb67ba221c70d6d6f1bd6cff505e90c365
2018-08-22 17:17:12 +01:00