Skip to content

Commit e294975

Browse files
authored
Merge pull request microsoft#1908 from amgleitman/0.72-merge-monorepo
Make react-native-macos a monorepo
2 parents f1160c0 + 1a556a8 commit e294975

File tree

3,933 files changed

+1307
-961
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

3,933 files changed

+1307
-961
lines changed

.ado/ado-test-setup.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ THIS_DIR=$PWD
5151
# osascript -e "tell application \"Terminal\" to do script \"cd ${THIS_DIR}; export SERVERS_NO_WAIT=1; ./IntegrationTests/launchWebSocketServer.command\""
5252

5353
COMMAND="$TMPDIR/launchPackager.command"
54-
echo "cd ${THIS_DIR}; export SERVERS_NO_WAIT=1; ./scripts/launchPackager.command" > "$COMMAND"
54+
echo "cd ${THIS_DIR}; export SERVERS_NO_WAIT=1; PROJECT_ROOT=packages/rn-tester ./packages/react-native/scripts/launchPackager.command" > "$COMMAND"
5555
chmod +x "$COMMAND"
5656
open "$COMMAND"
5757
waitForPackager
5858

5959
COMMAND="$TMPDIR/launchWebSocketServer.command"
60-
echo "cd ${THIS_DIR}; export SERVERS_NO_WAIT=1; ./IntegrationTests/launchWebSocketServer.command" > "$COMMAND"
60+
echo "cd ${THIS_DIR}; export SERVERS_NO_WAIT=1; ./packages/rn-tester/IntegrationTests/launchWebSocketServer.command" > "$COMMAND"
6161
chmod +x "$COMMAND"
6262
open "$COMMAND"
6363
waitForWebSocketServer

.ado/templates/verdaccio-publish.yml

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ steps:
44
- script: |
55
npm publish --registry http://localhost:4873
66
displayName: Publish react-native-macos to verdaccio
7+
workingDirectory: packages/react-native
78
89
- script: |
910
npx beachball publish --branch origin/$(System.PullRequest.TargetBranch) --no-push --registry http://localhost:4873 --yes --access public

.circleci/Dockerfiles/Dockerfile.android

+8-8
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,15 @@ LABEL maintainer="Héctor Ramos <[email protected]>"
3232
ARG BUCK_BUILD
3333
# set default environment variables
3434
ENV GRADLE_OPTS="-Dorg.gradle.daemon=false -Dfile.encoding=utf-8 -Dorg.gradle.jvmargs=\"-Xmx512m -XX:+HeapDumpOnOutOfMemoryError\""
35-
ENV KOTLIN_HOME="third-party/kotlin"
35+
ENV KOTLIN_HOME="packages/react-native/third-party/kotlin"
3636

3737
ADD .buckconfig /app/.buckconfig
3838
ADD .buckjavaargs /app/.buckjavaargs
3939
ADD BUCK /app/BUCK
40-
ADD Libraries /app/Libraries
41-
ADD ReactAndroid /app/ReactAndroid
42-
ADD ReactCommon /app/ReactCommon
43-
ADD React /app/React
40+
ADD packages/react-native/Libraries /app/packages/react-native/Libraries
41+
ADD packages/react-native/ReactAndroid /app/packages/react-native/ReactAndroid
42+
ADD packages/react-native/ReactCommon /app/packages/react-native/ReactCommon
43+
ADD packages/react-native/React /app/packages/react-native/React
4444
ADD keystores /app/keystores
4545
ADD packages/react-native-codegen /app/packages/react-native-codegen
4646
ADD tools /app/tools
@@ -57,8 +57,8 @@ WORKDIR /app
5757

5858
RUN scripts/buck/buck_fetch.sh
5959

60-
RUN buck build ReactAndroid/src/main/java/com/facebook/react
61-
RUN buck build ReactAndroid/src/main/java/com/facebook/react/shell
60+
RUN buck build packages/react-native/ReactAndroid/src/main/java/com/facebook/react
61+
RUN buck build packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell
6262

6363
ADD gradle /app/gradle
6464
ADD gradlew /app/gradlew
@@ -77,4 +77,4 @@ ADD . /app
7777

7878
RUN yarn
7979

80-
RUN ./gradlew :ReactAndroid:assembleDebug
80+
RUN ./gradlew :packages:react-native:ReactAndroid:assembleDebug

.circleci/Dockerfiles/scripts/run-ci-e2e-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ function e2e_suite() {
141141
fi
142142
fi
143143

144-
if ! npm pack
144+
if ! (cd packages/react-native && FILENAME=$(npm pack | tail -1) && mv "$FILENAME" ../../)
145145
then
146146
echo "Failed to pack react-native"
147147
return 1

.circleci/config.yml

+40-37
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ references:
5858
cache_keys:
5959
checkout_cache_key: &checkout_cache_key v1-checkout
6060
gems_cache_key: &gems_cache_key v1-gems-{{ checksum "Gemfile.lock" }}
61-
gradle_cache_key: &gradle_cache_key v1-gradle-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "ReactAndroid/gradle.properties" }}
61+
gradle_cache_key: &gradle_cache_key v1-gradle-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}-{{ checksum "packages/react-native/ReactAndroid/gradle.properties" }}
6262
hermes_workspace_cache_key: &hermes_workspace_cache_key v4-hermes-{{ .Environment.CIRCLE_JOB }}-{{ checksum "/tmp/hermes/hermesversion" }}
6363
hermes_workspace_debug_cache_key: &hermes_workspace_debug_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-debug-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
6464
hermes_workspace_release_cache_key: &hermes_workspace_release_cache_key v2-hermes-{{ .Environment.CIRCLE_JOB }}-release-{{ checksum "/tmp/hermes/hermesversion" }}-{{ checksum "/tmp/react-native-version" }}
@@ -73,8 +73,8 @@ references:
7373

7474
cache_paths:
7575
hermes_workspace_macos_cache_paths: &hermes_workspace_macos_cache_paths
76-
- ~/react-native/sdks/hermes/build_macosx
77-
- ~/react-native/sdks/hermes/destroot
76+
- ~/react-native/packages/react-native/sdks/hermes/build_macosx
77+
- ~/react-native/packages/react-native/sdks/hermes/destroot
7878
hermes_tarball_cache_paths: &hermes_tarball_cache_paths
7979
- *hermes_tarball_artifacts_dir
8080

@@ -317,7 +317,7 @@ commands:
317317
- run:
318318
name: Get React Native version
319319
command: |
320-
VERSION=$( grep '"version"' package.json | cut -d '"' -f 4 | head -1)
320+
VERSION=$( grep '"version"' packages/react-native/package.json | cut -d '"' -f 4 | head -1)
321321
# Save the react native version we are building in a file so we can use that file as part of the cache key.
322322
echo "$VERSION" > /tmp/react-native-version
323323
echo "React Native Version is $(cat /tmp/react-native-version)"
@@ -371,7 +371,7 @@ commands:
371371
exit 0
372372
fi
373373
374-
TARBALL_FILENAME=$(node ~/react-native/scripts/hermes/get-tarball-name.js --buildType "<< parameters.flavor >>")
374+
TARBALL_FILENAME=$(node ~/react-native/packages/react-native/scripts/hermes/get-tarball-name.js --buildType "<< parameters.flavor >>")
375375
TARBALL_PATH=$HERMES_TARBALL_ARTIFACTS_DIR/$TARBALL_FILENAME
376376
377377
echo "Looking for $TARBALL_FILENAME in $HERMES_TARBALL_ARTIFACTS_DIR"
@@ -388,7 +388,7 @@ commands:
388388
name: Print Hermes version
389389
command: |
390390
HERMES_TARBALL_ARTIFACTS_DIR=<< parameters.hermes_tarball_artifacts_dir >>
391-
TARBALL_FILENAME=$(node ~/react-native/scripts/hermes/get-tarball-name.js --buildType "<< parameters.flavor >>")
391+
TARBALL_FILENAME=$(node ~/react-native/packages/react-native/scripts/hermes/get-tarball-name.js --buildType "<< parameters.flavor >>")
392392
TARBALL_PATH=$HERMES_TARBALL_ARTIFACTS_DIR/$TARBALL_FILENAME
393393
if [[ -e $TARBALL_PATH ]]; then
394394
tar -xf $TARBALL_PATH
@@ -455,8 +455,8 @@ commands:
455455
hermesc_artifacts_path=<< parameters.artifacts_dir >>/<< parameters.flavor >>/hermesc
456456
457457
hermesc_bin_path=bin/hermesc
458-
hermes_build_dir_macos=$(pwd)/sdks/hermes/build_macosx
459-
hermes_build_dir_ios=$(pwd)/sdks/hermes/build_iphoneos
458+
hermes_build_dir_macos=$(pwd)/packages/react-native/sdks/hermes/build_macosx
459+
hermes_build_dir_ios=$(pwd)/packages/react-native/sdks/hermes/build_iphoneos
460460
461461
function export_hermesc_cmake_path {
462462
build_dir=$1
@@ -729,7 +729,7 @@ jobs:
729729
test_buck:
730730
executor: reactnativeandroid
731731
environment:
732-
KOTLIN_HOME=third-party/kotlin
732+
KOTLIN_HOME=packages/react-native/third-party/kotlin
733733
steps:
734734
- checkout
735735
- setup_artifacts
@@ -742,32 +742,33 @@ jobs:
742742
- run:
743743
name: Build & Test React Native using Buck
744744
command: |
745-
buck build ReactAndroid/src/main/java/com/facebook/react
746-
buck build ReactAndroid/src/main/java/com/facebook/react/shell
745+
buck build packages/react-native/ReactAndroid/src/main/java/com/facebook/react
746+
buck build packages/react-native/ReactAndroid/src/main/java/com/facebook/react/shell
747747
748748
- run:
749749
name: Run Tests - Android Unit Tests with Buck
750-
command: buck test ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS --xml ./reports/buck/all-results-raw.xml
750+
command: buck test packages/react-native/ReactAndroid/src/test/... --config build.threads=$BUILD_THREADS --xml ./reports/buck/all-results-raw.xml
751751

752752
- run:
753753
name: Build JavaScript Bundle for instrumentation tests
754+
working_directory: ~/react-native/packages/react-native
754755
command: node cli.js bundle --max-workers 2 --platform android --dev true --entry-file ReactAndroid/src/androidTest/js/TestBundle.js --bundle-output ReactAndroid/src/androidTest/assets/AndroidTestBundle.js
755756

756757
- run:
757758
name: Build Tests - Android Instrumentation Tests with Buck
758759
# Here, just build the instrumentation tests. There is a known issue with installing the APK to android-21+ emulator.
759760
command: |
760-
if [[ ! -e ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
761+
if [[ ! -e packages/react-native/ReactAndroid/src/androidTest/assets/AndroidTestBundle.js ]]; then
761762
echo "JavaScript bundle missing, cannot run instrumentation tests. Verify Build JavaScript Bundle step completed successfully."; exit 1;
762763
fi
763-
source scripts/android-setup.sh && NO_BUCKD=1 scripts/retry3 timeout 300 buck build ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=$BUILD_THREADS
764+
source scripts/android-setup.sh && NO_BUCKD=1 scripts/retry3 timeout 300 buck build packages/react-native/ReactAndroid/src/androidTest/buck-runner:instrumentation-tests --config build.threads=$BUILD_THREADS
764765
765766
- run:
766767
name: Collect Test Results
767768
command: |
768769
find . -type f -regex ".*/build/test-results/debug/.*xml" -exec cp {} ./reports/build/ \;
769770
find . -type f -regex ".*/outputs/androidTest-results/connected/.*xml" -exec cp {} ./reports/outputs/ \;
770-
find . -type f -regex ".*/buck-out/gen/ReactAndroid/src/test/.*/.*xml" -exec cp {} ./reports/buck/ \;
771+
find . -type f -regex ".*/buck-out/gen/packages/react-native/ReactAndroid/src/test/.*/.*xml" -exec cp {} ./reports/buck/ \;
771772
if [ -f ~/react-native/reports/buck/all-results-raw.xml ]; then
772773
~/react-native/scripts/circleci/buckToJunit/buckToJunit.sh ~/react-native/reports/buck/all-results-raw.xml ~/react-native/reports/junit/results.xml
773774
fi
@@ -855,7 +856,7 @@ jobs:
855856
command: |
856857
REPO_ROOT=$(pwd)
857858
node ./scripts/set-rn-template-version.js "file:$REPO_ROOT/build/$(cat build/react-native-package-version)"
858-
node ./scripts/template/initialize.js --reactNativeRootPath $REPO_ROOT --templateName $PROJECT_NAME --templateConfigPath $REPO_ROOT --directory "/tmp/$PROJECT_NAME"
859+
node ./scripts/template/initialize.js --reactNativeRootPath $REPO_ROOT --templateName $PROJECT_NAME --templateConfigPath "$REPO_ROOT/packages/react-native" --directory "/tmp/$PROJECT_NAME"
859860
- run:
860861
name: Build the template application for << parameters.flavor >> with Architecture set to << parameters.architecture >>, and using the << parameters.jsengine>> JS engine.
861862
command: |
@@ -930,7 +931,7 @@ jobs:
930931
name: Set HERMES_ENGINE_TARBALL_PATH
931932
command: |
932933
BUILD_TYPE="<< parameters.flavor >>"
933-
TARBALL_FILENAME=$(node ./scripts/hermes/get-tarball-name.js --buildType "$BUILD_TYPE")
934+
TARBALL_FILENAME=$(node ./packages/react-native/scripts/hermes/get-tarball-name.js --buildType "$BUILD_TYPE")
934935
echo "export HERMES_ENGINE_TARBALL_PATH=$HERMES_WS_DIR/hermes-runtime-darwin/$TARBALL_FILENAME" >> $BASH_ENV
935936
- run:
936937
name: Create iOS template project
@@ -939,7 +940,7 @@ jobs:
939940
PACKAGE=$(cat build/react-native-package-version)
940941
PATH_TO_PACKAGE="$REPO_ROOT/build/$PACKAGE"
941942
node ./scripts/set-rn-template-version.js "file:$PATH_TO_PACKAGE"
942-
node ./scripts/template/initialize.js --reactNativeRootPath $REPO_ROOT --templateName $PROJECT_NAME --templateConfigPath $REPO_ROOT --directory "/tmp/$PROJECT_NAME"
943+
node ./scripts/template/initialize.js --reactNativeRootPath $REPO_ROOT --templateName $PROJECT_NAME --templateConfigPath "$REPO_ROOT/packages/react-native" --directory "/tmp/$PROJECT_NAME"
943944
- run:
944945
name: Install iOS dependencies - Configuration << parameters.flavor >>; New Architecture << parameters.architecture >>; JS Engine << parameters.jsengine>>; Flipper << parameters.flipper >>
945946
command: |
@@ -1205,9 +1206,9 @@ jobs:
12051206
- run:
12061207
name: Download Hermes tarball
12071208
command: |
1208-
node scripts/hermes/prepare-hermes-for-build $CIRCLE_PULL_REQUEST
1209-
cp sdks/download/* $HERMES_WS_DIR/download/.
1210-
cp -r sdks/hermes/* $HERMES_WS_DIR/hermes/.
1209+
node packages/react-native/scripts/hermes/prepare-hermes-for-build $CIRCLE_PULL_REQUEST
1210+
cp packages/react-native/sdks/download/* $HERMES_WS_DIR/download/.
1211+
cp -r packages/react-native/sdks/hermes/* $HERMES_WS_DIR/hermes/.
12111212
12121213
cat /tmp/hermes/hermesversion
12131214
- save_cache:
@@ -1301,9 +1302,9 @@ jobs:
13011302
- run:
13021303
name: Set up workspace
13031304
command: |
1304-
mkdir -p $HERMES_OSXBIN_ARTIFACTS_DIR ./sdks/hermes
1305-
cp -r $HERMES_WS_DIR/hermes/* ./sdks/hermes/.
1306-
cp -r ./sdks/hermes-engine/utils ./sdks/hermes/.
1305+
mkdir -p $HERMES_OSXBIN_ARTIFACTS_DIR ./packages/react-native/sdks/hermes
1306+
cp -r $HERMES_WS_DIR/hermes/* ./packages/react-native/sdks/hermes/.
1307+
cp -r ./packages/react-native/sdks/hermes-engine/utils ./packages/react-native/sdks/hermes/.
13071308
- brew_install:
13081309
package: cmake
13091310
- with_hermes_tarball_cache_span:
@@ -1315,12 +1316,12 @@ jobs:
13151316
- run:
13161317
name: Build the Hermes Mac frameworks
13171318
command: |
1318-
cd ./sdks/hermes || exit 1
1319+
cd ./packages/react-native/sdks/hermes || exit 1
13191320
BUILD_TYPE="<< parameters.flavor >>" ./utils/build-mac-framework.sh
13201321
- run:
13211322
name: Build the Hermes iOS frameworks
13221323
command: |
1323-
cd ./sdks/hermes || exit 1
1324+
cd ./packages/react-native/sdks/hermes || exit 1
13241325
BUILD_TYPE="<< parameters.flavor >>" ./utils/build-ios-framework.sh
13251326
- run:
13261327
name: Package the Hermes Apple frameworks
@@ -1330,12 +1331,12 @@ jobs:
13301331
13311332
TARBALL_OUTPUT_DIR=$(mktemp -d /tmp/hermes-tarball-output-XXXXXXXX)
13321333
1333-
TARBALL_FILENAME=$(node ./scripts/hermes/get-tarball-name.js --buildType "$BUILD_TYPE")
1334+
TARBALL_FILENAME=$(node ./packages/react-native/scripts/hermes/get-tarball-name.js --buildType "$BUILD_TYPE")
13341335
13351336
echo "Packaging Hermes Apple frameworks for $BUILD_TYPE build type"
13361337
1337-
TARBALL_OUTPUT_PATH=$(node ./scripts/hermes/create-tarball.js \
1338-
--inputDir ./sdks/hermes \
1338+
TARBALL_OUTPUT_PATH=$(node ./packages/react-native/scripts/hermes/create-tarball.js \
1339+
--inputDir ./packages/react-native/sdks/hermes \
13391340
--buildType "$BUILD_TYPE" \
13401341
--outputDir $TARBALL_OUTPUT_DIR)
13411342
@@ -1497,20 +1498,20 @@ jobs:
14971498
- run:
14981499
name: Copy Hermes binaries
14991500
command: |
1500-
mkdir -p ./sdks/hermesc ./sdks/hermesc/osx-bin ./sdks/hermesc/win64-bin ./sdks/hermesc/linux64-bin
1501+
mkdir -p ./packages/react-native/sdks/hermesc ./packages/react-native/sdks/hermesc/osx-bin ./packages/react-native/sdks/hermesc/win64-bin ./packages/react-native/sdks/hermesc/linux64-bin
15011502
15021503
# When build_hermes_macos runs as a matrix, it outputs
15031504
if [[ -d $HERMES_WS_DIR/osx-bin/Release ]]; then
1504-
cp -r $HERMES_WS_DIR/osx-bin/Release/* ./sdks/hermesc/osx-bin/.
1505+
cp -r $HERMES_WS_DIR/osx-bin/Release/* ./packages/react-native/sdks/hermesc/osx-bin/.
15051506
elif [[ -d $HERMES_WS_DIR/osx-bin/Debug ]]; then
1506-
cp -r $HERMES_WS_DIR/osx-bin/Debug/* ./sdks/hermesc/osx-bin/.
1507+
cp -r $HERMES_WS_DIR/osx-bin/Debug/* ./packages/react-native/sdks/hermesc/osx-bin/.
15071508
else
15081509
ls $HERMES_WS_DIR/osx-bin || echo "hermesc macOS artifacts directory missing."
15091510
echo "Could not locate macOS hermesc binary."; exit 1;
15101511
fi
15111512
1512-
cp -r $HERMES_WS_DIR/win64-bin/* ./sdks/hermesc/win64-bin/.
1513-
cp -r $HERMES_WS_DIR/linux64-bin/* ./sdks/hermesc/linux64-bin/.
1513+
cp -r $HERMES_WS_DIR/win64-bin/* ./packages/react-native/sdks/hermesc/win64-bin/.
1514+
cp -r $HERMES_WS_DIR/linux64-bin/* ./packages/react-native/sdks/hermesc/linux64-bin/.
15141515
mkdir -p ./ReactAndroid/external-artifacts/artifacts/
15151516
cp $HERMES_WS_DIR/hermes-runtime-darwin/hermes-ios-debug.tar.gz ./ReactAndroid/external-artifacts/artifacts/hermes-ios-debug.tar.gz
15161517
cp $HERMES_WS_DIR/hermes-runtime-darwin/hermes-ios-release.tar.gz ./ReactAndroid/external-artifacts/artifacts/hermes-ios-release.tar.gz
@@ -1532,7 +1533,7 @@ jobs:
15321533
- run: node ./scripts/publish-npm.js --<< parameters.release_type >>
15331534
- run:
15341535
name: Zip Hermes Native Symbols
1535-
command: zip -r /tmp/hermes-native-symbols.zip ~/react-native/ReactAndroid/hermes-engine/build/intermediates/cmake/
1536+
command: zip -r /tmp/hermes-native-symbols.zip ~/react-native/packages/react-native/ReactAndroid/hermes-engine/build/intermediates/cmake/
15361537
- store_artifacts:
15371538
path: /tmp/hermes-native-symbols.zip
15381539
- run:
@@ -1555,8 +1556,10 @@ jobs:
15551556
name: Build release package as a job artifact
15561557
command: |
15571558
mkdir -p build
1558-
FILENAME=$(npm pack)
1559-
mv $FILENAME build/
1559+
1560+
FILENAME=$(cd packages/react-native; npm pack | tail -1)
1561+
mv packages/react-native/$FILENAME build/
1562+
15601563
echo $FILENAME > build/react-native-package-version
15611564
- store_artifacts:
15621565
path: ~/react-native/build/

.eslintignore

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
**/main.js
22
**/staticBundle.js
33
docs/generatedComponentApiDocs.js
4-
flow/
5-
Libraries/Renderer/*
6-
Libraries/vendor/**/*
4+
packages/react-native/flow/
5+
packages/react-native/Libraries/Renderer/*
6+
packages/react-native/Libraries/vendor/**/*
77
node_modules/
88
packages/*/node_modules
99
packages/react-native-codegen/lib

.eslintrc.js

+3-3
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ module.exports = {
3636
},
3737

3838
{
39-
files: ['Libraries/**/*.js'],
39+
files: ['packages/react-native/Libraries/**/*.js'],
4040
rules: {
4141
'@react-native/platform-colors': 2,
4242
'@react-native/specs/react-native-modules': 2,
@@ -47,7 +47,7 @@ module.exports = {
4747
},
4848
},
4949
{
50-
files: ['flow-typed/**/*.js'],
50+
files: ['packages/react-native/flow-typed/**/*.js'],
5151
rules: {
5252
'lint/valid-flow-typed-signature': 2,
5353
'no-unused-vars': 0,
@@ -59,7 +59,7 @@ module.exports = {
5959
'**/__fixtures__/**/*.js',
6060
'**/__mocks__/**/*.js',
6161
'**/__tests__/**/*.js',
62-
'jest/**/*.js',
62+
'packages/react-native/jest/**/*.js',
6363
'packages/rn-tester/**/*.js',
6464
],
6565
globals: {

0 commit comments

Comments
 (0)