2015-02-20 04:10:52 +00:00
|
|
|
[ignore]
|
2016-11-13 14:21:07 +00:00
|
|
|
; We fork some components by platform
|
2016-08-23 11:13:27 +00:00
|
|
|
.*/*[.]android.js
|
2015-02-20 04:10:52 +00:00
|
|
|
|
2016-11-19 02:25:02 +00:00
|
|
|
; Ignore templates for 'react-native init'
|
2018-12-07 12:47:03 +00:00
|
|
|
<PROJECT_ROOT>/template/.*
|
2016-04-01 15:53:28 +00:00
|
|
|
|
Adds Danger support
Summary:
Testing Danger support in CI. Continuation of #14964, which Circle stopped building.
Update your node modules first: `npm install`
`npm run danger pr https://github.com/facebook/react-native/pull/14951`
Verify output. This PR should trigger a WIP warning, as well as a package.json warning:
```
> react-native@1000.0.0 danger /Users/hramos/git/react-native
> node ./node_modules/.bin/danger "pr" "https://github.com/facebook/react-native/pull/14951"
{
fails: [],
warnings: [
{
message: ":construction_worker: Work In Progress - <i>Do not merge yet.</i>"
},
{
message: ":lock: Changes were made to package.json - <i>This will require a manual import. Once approved, a Facebook employee should import the PR, then run `yarn add` for any new packages.</i>"
}
],
messages: [],
markdowns: ["This PR requires attention from the facebook/react-native team."]
}
```
`npm run danger pr https://github.com/facebook/react-native/pull/14946`
Verify output. This PR should trigger a warning against the lack of a test plan (note that the PR does have a test plan, but it does not title it as such):
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan</i>"
}
],
messages: [],
markdowns: []
}
```
`npm run danger pr https://github.com/facebook/react-native/pull/13186`
Should warn against a missing test plan:
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan.</i>"
}
],
messages: [],
markdowns: [":page_facing_up: Thanks for your contribution to the docs!"]
}
```
If the author is able to issue bot commands, we reasonably assume that this is coming from an established core contributor. Their PRs will be flagged for expedited review:
`npm run danger pr https://github.com/facebook/react-native/pull/14895`
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan.</i>"
}
],
messages: [],
markdowns: ["This PR has been submitted by a core contributor. Notifying facebook/react-native."]
}
```
Closes https://github.com/facebook/react-native/pull/15061
Differential Revision: D5436605
Pulled By: hramos
fbshipit-source-id: 4ba9e812387d8a69893dab537af9b6cd108753cf
2017-07-18 18:08:35 +00:00
|
|
|
; Ignore the Dangerfile
|
2018-02-06 21:31:23 +00:00
|
|
|
<PROJECT_ROOT>/bots/dangerfile.js
|
Adds Danger support
Summary:
Testing Danger support in CI. Continuation of #14964, which Circle stopped building.
Update your node modules first: `npm install`
`npm run danger pr https://github.com/facebook/react-native/pull/14951`
Verify output. This PR should trigger a WIP warning, as well as a package.json warning:
```
> react-native@1000.0.0 danger /Users/hramos/git/react-native
> node ./node_modules/.bin/danger "pr" "https://github.com/facebook/react-native/pull/14951"
{
fails: [],
warnings: [
{
message: ":construction_worker: Work In Progress - <i>Do not merge yet.</i>"
},
{
message: ":lock: Changes were made to package.json - <i>This will require a manual import. Once approved, a Facebook employee should import the PR, then run `yarn add` for any new packages.</i>"
}
],
messages: [],
markdowns: ["This PR requires attention from the facebook/react-native team."]
}
```
`npm run danger pr https://github.com/facebook/react-native/pull/14946`
Verify output. This PR should trigger a warning against the lack of a test plan (note that the PR does have a test plan, but it does not title it as such):
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan</i>"
}
],
messages: [],
markdowns: []
}
```
`npm run danger pr https://github.com/facebook/react-native/pull/13186`
Should warn against a missing test plan:
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan.</i>"
}
],
messages: [],
markdowns: [":page_facing_up: Thanks for your contribution to the docs!"]
}
```
If the author is able to issue bot commands, we reasonably assume that this is coming from an established core contributor. Their PRs will be flagged for expedited review:
`npm run danger pr https://github.com/facebook/react-native/pull/14895`
```
{
fails: [],
warnings: [
{
message: ":clipboard: Test Plan - <i>This PR appears to be missing a Test Plan.</i>"
}
],
messages: [],
markdowns: ["This PR has been submitted by a core contributor. Notifying facebook/react-native."]
}
```
Closes https://github.com/facebook/react-native/pull/15061
Differential Revision: D5436605
Pulled By: hramos
fbshipit-source-id: 4ba9e812387d8a69893dab537af9b6cd108753cf
2017-07-18 18:08:35 +00:00
|
|
|
|
2016-11-13 14:21:07 +00:00
|
|
|
; Ignore "BUCK" generated dirs
|
2016-07-06 19:49:08 +00:00
|
|
|
<PROJECT_ROOT>/\.buckd/
|
|
|
|
|
2016-11-13 14:21:07 +00:00
|
|
|
; Ignore unexpected extra "@providesModule"
|
2016-11-04 12:40:26 +00:00
|
|
|
.*/node_modules/.*/node_modules/fbjs/.*
|
2016-07-06 19:49:08 +00:00
|
|
|
|
2016-11-13 14:21:07 +00:00
|
|
|
; Ignore duplicate module providers
|
|
|
|
; For RN Apps installed via npm, "Libraries" folder is inside
|
|
|
|
; "node_modules/react-native" but in the source repo it is in the root
|
2016-07-07 10:04:38 +00:00
|
|
|
.*/Libraries/react-native/React.js
|
2016-07-06 19:49:08 +00:00
|
|
|
|
2017-07-17 10:02:14 +00:00
|
|
|
; Ignore polyfills
|
|
|
|
.*/Libraries/polyfills/.*
|
|
|
|
|
2018-06-09 17:57:39 +00:00
|
|
|
; These should not be required directly
|
2018-12-03 07:49:12 +00:00
|
|
|
; require from fbjs/lib instead: require('fbjs/lib/warning')
|
2018-06-09 17:57:39 +00:00
|
|
|
.*/node_modules/warning/.*
|
|
|
|
|
2019-01-21 17:08:36 +00:00
|
|
|
[untyped]
|
|
|
|
.*/node_modules/@react-native-community/cli/.*/.*
|
|
|
|
|
2015-02-20 04:10:52 +00:00
|
|
|
[include]
|
|
|
|
|
|
|
|
[libs]
|
|
|
|
Libraries/react-native/react-native-interface.js
|
2016-03-08 20:38:52 +00:00
|
|
|
flow/
|
2015-02-20 04:10:52 +00:00
|
|
|
|
|
|
|
[options]
|
2017-01-19 15:31:08 +00:00
|
|
|
emoji=true
|
|
|
|
|
2018-08-02 23:02:51 +00:00
|
|
|
esproposal.optional_chaining=enable
|
2018-08-03 23:35:25 +00:00
|
|
|
esproposal.nullish_coalescing=enable
|
2018-08-02 23:02:51 +00:00
|
|
|
|
2015-02-20 04:10:52 +00:00
|
|
|
module.system=haste
|
2018-04-25 14:00:46 +00:00
|
|
|
module.system.haste.use_name_reducers=true
|
|
|
|
# keep the following in sync with server/haste/hasteImpl.js
|
|
|
|
# get basename
|
|
|
|
module.system.haste.name_reducers='^.*/\([a-zA-Z0-9$_.-]+\.js\(\.flow\)?\)$' -> '\1'
|
|
|
|
# strip .js or .js.flow suffix
|
|
|
|
module.system.haste.name_reducers='^\(.*\)\.js\(\.flow\)?$' -> '\1'
|
|
|
|
# strip .ios suffix
|
|
|
|
module.system.haste.name_reducers='^\(.*\)\.ios$' -> '\1'
|
|
|
|
module.system.haste.name_reducers='^\(.*\)\.android$' -> '\1'
|
|
|
|
module.system.haste.name_reducers='^\(.*\)\.native$' -> '\1'
|
|
|
|
module.system.haste.paths.blacklist=.*/__tests__/.*
|
|
|
|
module.system.haste.paths.blacklist=.*/__mocks__/.*
|
|
|
|
module.system.haste.paths.whitelist=<PROJECT_ROOT>/Libraries/.*
|
|
|
|
module.system.haste.paths.whitelist=<PROJECT_ROOT>/RNTester/.*
|
|
|
|
module.system.haste.paths.whitelist=<PROJECT_ROOT>/IntegrationTests/.*
|
2018-10-18 22:18:11 +00:00
|
|
|
module.system.haste.paths.blacklist=<PROJECT_ROOT>/Libraries/react-native/react-native-implementation.js
|
2018-04-25 14:00:46 +00:00
|
|
|
module.system.haste.paths.blacklist=<PROJECT_ROOT>/Libraries/Animated/src/polyfills/.*
|
2015-04-25 05:43:01 +00:00
|
|
|
|
2015-07-30 03:19:40 +00:00
|
|
|
munge_underscores=true
|
|
|
|
|
2016-04-19 10:51:45 +00:00
|
|
|
module.name_mapper='^[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> 'RelativeImageStub'
|
2015-08-27 01:30:46 +00:00
|
|
|
|
2015-06-11 22:35:26 +00:00
|
|
|
suppress_type=$FlowIssue
|
|
|
|
suppress_type=$FlowFixMe
|
2017-08-18 01:36:54 +00:00
|
|
|
suppress_type=$FlowFixMeProps
|
|
|
|
suppress_type=$FlowFixMeState
|
2015-06-11 22:35:26 +00:00
|
|
|
|
2018-10-12 22:07:35 +00:00
|
|
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe\\($\\|[^(]\\|(\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)
|
|
|
|
suppress_comment=\\(.\\|\n\\)*\\$FlowIssue\\((\\(<VERSION>\\)? *\\(site=[a-z,_]*react_native\\(_ios\\)?_\\(oss\\|fb\\)[a-z,_]*\\)?)\\)?:? #[0-9]+
|
2015-06-22 16:43:30 +00:00
|
|
|
suppress_comment=\\(.\\|\n\\)*\\$FlowFixedInNextDeploy
|
2017-02-17 02:59:55 +00:00
|
|
|
suppress_comment=\\(.\\|\n\\)*\\$FlowExpectedError
|
2015-06-11 22:35:26 +00:00
|
|
|
|
2018-06-20 06:54:16 +00:00
|
|
|
[lints]
|
|
|
|
all=warn
|
Check Flow and run basic packager tests using open source RN config
Summary:
Most of the changes associated with this commit will not be visible on GitHub, as they concern files in the internal Facebook monorepo. The bulk of this change is the addition of a new test that runs on the internal test infrastructure. The actual script used by the test has various references to the internal test infra, but a copy is produced below with some changes that should allow it to run on open source should anyone be interested in testing this outside of Facebook.
The test has the main goal of catching common sources of FB-to-GitHub breakages, such as the OSS Flow config falling out of date (we use a different flow config than what is synced out in .flowconfig, and hence internally we rename this file to .github.flowconfig). It also checks that the packager can run on a brand new project, among other things.
```
set -e
THIS_DIR=$(pwd)
REACT_NATIVE_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX)
REACT_NATIVE_APP_TEMP_DIR=$(mktemp -d /tmp/react-native-XXXXXXXX)
OFFLINE_MIRROR=$(yarn config get yarn-offline-mirror)
function describe {
printf "\\n\\n>>>>> %s\\n\\n\\n" "$1"
}
function cleanup {
set +e
rm -rf "$REACT_NATIVE_TEMP_DIR"
rm -rf "$REACT_NATIVE_APP_TEMP_DIR"
rm "$OFFLINE_MIRROR/react-native-v1000.0.0.tgz"
set -e
}
trap cleanup EXIT
describe "Creating temporary react-native-github clone"
cp -R "react-native" "$REACT_NATIVE_TEMP_DIR"
pushd "$REACT_NATIVE_TEMP_DIR/react-native" >/dev/null
echo yarn-offline-mirror="$OFFLINE_MIRROR" > .npmrc
describe "Installing react-native node_modules from offline cache"
yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1
describe "Running a Flow check"
mv .github.flowconfig .flowconfig
./node_modules/.bin/flow check
describe "Running a basic packager test"
touch .watchmanconfig
node local-cli/cli.js bundle --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
describe "Creating package for e2e test"
yarn pack
REACT_NATIVE_PACKAGE="$(pwd)/react-native-v1000.0.0.tgz"
REACT_VERSION=$(node -p -e "require('./package.json').peerDependencies['react']")
REACT_NATIVE_HASH=$(shasum "$REACT_NATIVE_PACKAGE" | awk '{print $1;}')
REACT_NATIVE_DEPS=$(node -p -e "const deps=require('./package.json').dependencies; ' ' + Object.keys(deps).map(dep => dep + ' \"' + deps[dep] +'\"').join('\n ')")
popd >/dev/null
describe "Installing temporary RN app"
mkdir "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest"
pushd "$REACT_NATIVE_APP_TEMP_DIR/PackagerTest" >/dev/null
cp "$REACT_NATIVE_PACKAGE" ./
cp "$REACT_NATIVE_PACKAGE" "$OFFLINE_MIRROR"
cp "$REACT_NATIVE_TEMP_DIR/react-native/.npmrc" ./
cp "$REACT_NATIVE_TEMP_DIR/react-native/yarn.lock" ./
cat <<LOCKFILE >> yarn.lock
react-native@1000.0.0:
version "1000.0.0"
resolved react-native-v1000.0.0.tgz#$REACT_NATIVE_HASH
dependencies:
$REACT_NATIVE_DEPS
LOCKFILE
cat > package.json <<- EndOfFile
{
"name": "packager-test",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start"
},
"dependencies": {
"react": "$REACT_VERSION",
"react-native": "1000.0.0"
}
}
EndOfFile
yarn install --mutex network --offline --frozen-lockfile --ignore-engines --ignore-scripts 2>&1
sed -e s/"HelloWorld"/PackagerTest/g "react-native/local-cli/templates/HelloWorld/app.json" > app.json
cp "react-native/local-cli/templates/HelloWorld/_buckconfig" .buckconfig
cp "react-native/local-cli/templates/HelloWorld/_flowconfig" .flowconfig
cp "react-native/local-cli/templates/HelloWorld/_watchmanconfig" .watchmanconfig
cp "react-native/local-cli/templates/HelloWorld/App.js" App.js
cp "react-native/local-cli/templates/HelloWorld/index.js" index.js
describe "Running a Flow check on a new RN app"
flow check
describe "Verifying packager can produce JS bundle for a new RN app on both platforms"
node ./node_modules/react-native/local-cli/cli.js bundle --platform ios --dev true --entry-file index.js --bundle-output ios-bundle.js
test -e ios-bundle.js
rm ios-bundle.js
node ./node_modules/react-native/local-cli/cli.js bundle --platform android --dev true --entry-file index.js --bundle-output android-bundle.js
test -e android-bundle.js
rm android-bundle.js
popd >/dev/null
```
Reviewed By: arcanis
Differential Revision: D9129463
fbshipit-source-id: a91eeaa150ae6623ee67bd758bc8a98bb31e57b8
2018-08-09 23:15:19 +00:00
|
|
|
unnecessary-optional-chain=off
|
2018-06-20 06:54:16 +00:00
|
|
|
|
|
|
|
# There is an ESLint rule for this
|
|
|
|
unclear-type=off
|
|
|
|
|
|
|
|
sketchy-null=off
|
|
|
|
sketchy-null-number=warn
|
|
|
|
sketchy-null-mixed=warn
|
|
|
|
|
|
|
|
# This is noisy for now. We *do* still want to warn on importing types
|
|
|
|
# from untyped files, which is covered by untyped-type-import
|
|
|
|
untyped-import=off
|
2019-01-15 21:07:54 +00:00
|
|
|
deprecated-utility=error
|
2018-06-20 06:54:16 +00:00
|
|
|
|
|
|
|
[strict]
|
|
|
|
deprecated-type
|
|
|
|
nonstrict-import
|
|
|
|
sketchy-null
|
|
|
|
unclear-type
|
|
|
|
unsafe-getters-setters
|
|
|
|
untyped-import
|
|
|
|
untyped-type-import
|
|
|
|
|
2015-04-25 05:43:01 +00:00
|
|
|
[version]
|
2019-01-18 22:44:03 +00:00
|
|
|
^0.91.0
|