diff --git a/.ado/android-pr.yml b/.ado/android-pr.yml index fd4ac235668491..3507ec1b964df4 100644 --- a/.ado/android-pr.yml +++ b/.ado/android-pr.yml @@ -74,10 +74,24 @@ jobs: SYSTEM_ACCESSTOKEN: $(System.AccessToken) githubApiToken: $(githubApiToken) - - task: CmdLine@2 - displayName: gradlew clean - inputs: - script: ./gradlew clean +# In RN64 "clean" task tries to run the build again. It is reproing in 0.64-stable branch but fixed in 0.65-stable. +# I can't zero on the exact cause .. but turns out the issue is with rntester clean task. +# +# mganandraj@RNDroid:~/github/rnm-64$ ./gradlew :packages:rn-tester:android:app:clean --dry-run +# :packages:react-native-codegen:android:buildCodegenCLI SKIPPED +# :packages:rn-tester:android:app:generateCodegenSchemaFromJavaScript SKIPPED +# :packages:rn-tester:android:app:generateCodegenArtifactsFromSchema SKIPPED +# :ReactAndroid:extractAARHeaders SKIPPED +# :ReactAndroid:extractJNIFiles SKIPPED +# :ReactAndroid:generateCodegenSchemaFromJavaScript SKIPPED +# :ReactAndroid:generateCodegenArtifactsFromSchema SKIPPED +# :ReactAndroid:prepareBoost SKIPPED +# :ReactAndroid:createNativeDepsDirectories SKIPPED +# .. +# - task: CmdLine@2 +# displayName: gradlew clean +# inputs: +# script: ./gradlew clean - task: PublishBuildArtifacts@1 displayName: 'Publish final artifacts' diff --git a/.ado/apple-integration.yml b/.ado/apple-integration.yml new file mode 100644 index 00000000000000..f4185b971be388 --- /dev/null +++ b/.ado/apple-integration.yml @@ -0,0 +1,97 @@ +name: Integrate $(Date:yyyyMMdd).$(Rev:.r) +variables: + - template: variables/mac.yml +trigger: + branches: + include: + - master + - '*-stable' + paths: + exclude: + - '*.md' +pr: + branches: + include: + - master + - '*-stable' + paths: + exclude: + - '*.md' +jobs: + - job: react_native_test_app + displayName: react-native-test-app + pool: + vmImage: $(VmImage) + demands: ['npm', 'sh', 'xcode'] + workspace: + clean: all + timeoutInMinutes: 60 + cancelTimeoutInMinutes: 5 + steps: + - template: templates/apple-node-setup.yml + - template: templates/apple-xcode-select.yml + parameters: + slice_name: $(slice_name) + xcode_version: $(xcode_version) + - bash: | + echo "##vso[task.setvariable variable=package_version]$(cat package.json | jq .version | awk '{ print substr($0, 2, length($0) - 2) }')" + echo "##vso[task.setvariable variable=react_version]$(cat package.json | jq .peerDependencies.react)" + echo "##vso[task.setvariable variable=rncli_version]$(cat package.json | jq '.dependencies."@react-native-community/cli"')" + displayName: 'Determine react-native-macos version' + - bash: | + npm pack + displayName: 'Pack react-native-macos' + - bash: | + git clone --progress https://github.com/microsoft/react-native-test-app.git + displayName: Checkout react-native-test-app + - bash: | + set -eo pipefail + cat package.json | + jq '.devDependencies["react"] = $(react_version)' | + jq '.devDependencies["react-native"] = "^0.64"' | + jq '.devDependencies["react-native-macos"] = "../react-native-macos-$(package_version).tgz"' | + jq 'del(.devDependencies["@react-native-community/cli"])' | + jq 'del(.devDependencies["@react-native-community/cli-platform-android"])' | + jq 'del(.devDependencies["@react-native-community/cli-platform-ios"])' | + jq 'del(.devDependencies["react-native-windows"])' > .package.json + mv .package.json package.json + cat package.json | jq .devDependencies + displayName: Modify react-native-test-app dependencies + workingDirectory: react-native-test-app + - bash: | + set -eo pipefail + cat package.json | + jq '.devDependencies["@react-native-community/cli"] = $(rncli_version)' | + jq '.devDependencies["@react-native-community/cli-platform-android"] = $(rncli_version)' | + jq '.devDependencies["@react-native-community/cli-platform-ios"] = $(rncli_version)' | + jq '.devDependencies["react"] = $(react_version)' | + jq '.devDependencies["react-native"] = "^0.64"' | + jq '.devDependencies["react-native-macos"] = "../../react-native-macos-$(package_version).tgz"' | + jq 'del(.devDependencies["react-native-windows"])' > .package.json + mv .package.json package.json + cat package.json | jq .devDependencies + displayName: Modify example app dependencies + workingDirectory: react-native-test-app/example + - bash: | + yarn --no-immutable + displayName: Install npm dependencies + workingDirectory: react-native-test-app + - bash: | + yarn build:macos || yarn build:macos + displayName: Bundle JavaScript + workingDirectory: react-native-test-app/example + - bash: | + pod install --project-directory=macos + displayName: Install Pods + workingDirectory: react-native-test-app/example + - bash: | + set -eo pipefail + ../scripts/xcodebuild.sh macos/Example.xcworkspace build + displayName: Build Intel + workingDirectory: react-native-test-app/example + - bash: | + set -eo pipefail + ../scripts/xcodebuild.sh macos/Example.xcworkspace clean + ../scripts/xcodebuild.sh macos/Example.xcworkspace build ARCHS=arm64 + displayName: Build ARM + workingDirectory: react-native-test-app/example diff --git a/.ado/gitTagRelease.js b/.ado/gitTagRelease.js index 70fe26d187fbe4..75c96ccc089912 100644 --- a/.ado/gitTagRelease.js +++ b/.ado/gitTagRelease.js @@ -28,7 +28,7 @@ function doPublish() { exec(`git config --global user.email "53619745+rnbot@users.noreply.github.com"`); exec(`git config --global user.name "React-Native Bot"`); - exec(`git add ${pkgJsonPath}`); + exec(`git add .`); exec(`git commit -m "Applying package update to ${releaseVersion} ***NO_CI***"`); exec(`git tag v${releaseVersion}`); exec(`git push origin HEAD:${tempPublishBranch} --follow-tags --verbose`); diff --git a/.ado/npmOfficePack.js b/.ado/npmOfficePack.js index 7f383ce3c7afd4..b1d549ed9ba0bb 100644 --- a/.ado/npmOfficePack.js +++ b/.ado/npmOfficePack.js @@ -28,7 +28,7 @@ function doPublish(fakeMode) { if (!onlyTagSource) { // -------- Generating Android Artifacts with JavaDoc const depsEnvPrefix = "REACT_NATIVE_BOOST_PATH=" + path.join(process.env.BUILD_SOURCESDIRECTORY, "build_deps"); - const gradleCommand = path.join(process.env.BUILD_SOURCESDIRECTORY, "gradlew") + " installArchives"; + const gradleCommand = path.join(process.env.BUILD_SOURCESDIRECTORY, "gradlew") + " installArchives -Pparam=\"excludeLibs\""; exec( depsEnvPrefix + " " + gradleCommand ); // undo uncommenting javadoc setting diff --git a/.ado/publish.yml b/.ado/publish.yml index 410840614be5ce..4a5cce7542fbc1 100644 --- a/.ado/publish.yml +++ b/.ado/publish.yml @@ -16,11 +16,14 @@ trigger: pr: none +variables: + - template: variables/mac.yml + jobs: - job: RNGithubNpmJSPublish displayName: React-Native GitHub Publish to npmjs.org pool: - vmImage: vs2017-win2016 + vmImage: $(VmImage) timeoutInMinutes: 90 # how long to run the job before automatically cancelling cancelTimeoutInMinutes: 5 # how much time to give 'run always even if cancelled tasks' before killing them steps: @@ -47,6 +50,8 @@ jobs: displayName: Set dist-tag to v0.x-stable condition: and(ne(variables['Build.SourceBranchName'], 'master'), ne(variables['Build.SourceBranchName'], variables.latestStableBranch)) + - template: templates/apple-node-setup.yml + - task: CmdLine@2 displayName: yarn install inputs: @@ -56,17 +61,37 @@ jobs: displayName: Bump stable package version inputs: script: node .ado/bumpFileVersions.js - condition: ne(variables['Build.SourceBranchName'], 'master') + condition: and(succeeded(), ne(variables['Build.SourceBranchName'], 'master')) + + - task: CmdLine@2 + displayName: pod update React-TurboModuleCxx-RNW + inputs: + script: | + cd packages/rn-tester + pod update React-TurboModuleCxx-RNW + condition: and(succeeded(), ne(variables['Build.SourceBranchName'], 'master')) - task: CmdLine@2 displayName: Bump canary package version inputs: script: node scripts/bump-oss-version.js --nightly - condition: eq(variables['Build.SourceBranchName'], 'master') + condition: and(succeeded(), eq(variables['Build.SourceBranchName'], 'master')) + + # Publish will fail if package.json is marked as private + - task: CmdLine@2 + displayName: Remove workspace config from package.json + inputs: + script: node .ado/removeWorkspaceConfig.js - script: npm publish --tag $(npmDistTag) --registry https://registry.npmjs.org/ --//registry.npmjs.org/:_authToken=$(npmAuthToken) displayName: Publish react-native-macos to npmjs.org + # Put the private flag back so that the removal does not get committed by the tag release step + - task: CmdLine@2 + displayName: Restore package.json workspace config + inputs: + script: node .ado/restoreWorkspaceConfig.js + - task: CmdLine@2 displayName: 'Tag published release' inputs: @@ -76,7 +101,7 @@ jobs: BUILD_SOURCEBRANCH: $(Build.SourceBranch) SYSTEM_ACCESSTOKEN: $(System.AccessToken) githubApiToken: $(githubApiToken) - condition: ne(variables['Build.SourceBranchName'], 'master') + condition: and(succeeded(), ne(variables['Build.SourceBranchName'], 'master')) - job: RNMacOSInitNpmJSPublish @@ -137,6 +162,12 @@ jobs: inputs: script: node .ado/bumpOfficeFileVersions.js + # Publish will fail if package.json is marked as private + - task: CmdLine@2 + displayName: Remove workspace config from package.json + inputs: + script: node .ado/removeWorkspaceConfig.js + - task: CmdLine@2 displayName: gradlew installArchives inputs: diff --git a/.ado/removeWorkspaceConfig.js b/.ado/removeWorkspaceConfig.js new file mode 100644 index 00000000000000..b6969e2841d570 --- /dev/null +++ b/.ado/removeWorkspaceConfig.js @@ -0,0 +1,3 @@ +// @ts-check +const {removeWorkspaceConfig} = require('./versionUtils'); +removeWorkspaceConfig(); \ No newline at end of file diff --git a/.ado/restoreWorkspaceConfig.js b/.ado/restoreWorkspaceConfig.js new file mode 100644 index 00000000000000..cd779e99542ded --- /dev/null +++ b/.ado/restoreWorkspaceConfig.js @@ -0,0 +1,3 @@ +// @ts-check +const {restoreWorkspaceConfig} = require('./versionUtils'); +restoreWorkspaceConfig(); \ No newline at end of file diff --git a/.ado/templates/android-build-office.yml b/.ado/templates/android-build-office.yml index e220fd7178f7a0..e363e5b77be124 100644 --- a/.ado/templates/android-build-office.yml +++ b/.ado/templates/android-build-office.yml @@ -30,12 +30,29 @@ steps: inputs: script: yarn install --frozen-lockfile + # scripts/bump-oss-version.js + # + # update the following files to the commit id. + # package.json (-> npm package version) + # gradle.properties (-> aar version) + # gradle.properties (-> aar version) + # + # The following files are updated for runtime version checking. + # ReactAndroid/src/main/java/com/facebook/react/modules/systeminfo/ReactNativeVersion.java + # React/Base/RCTVersion.m + # ReactCommon/cxxreact/ReactNativeVersion.h + # Libraries/Core/ReactNativeVersion.js + # + # --nightly => version = `0.0.0-${currentCommit.slice(0, 9)}`; + # When on master branch or non-stable branch. - task: CmdLine@2 displayName: Bump canary package version inputs: script: node scripts/bump-oss-version.js --nightly - condition: eq(variables['Build.SourceBranchName'], 'master') - + condition: or(eq(variables['Build.SourceBranchName'], 'master'), not(contains(variables['Build.SourceBranchName'], '-stable'))) + + # TODO: We don't seem to be running bump-oss-version.js for stable branches, hence we would end up publishing using the values in the repository. + - task: CmdLine@2 displayName: nuget restore inputs: diff --git a/.ado/templates/apple-droid-node-patching.yml b/.ado/templates/apple-droid-node-patching.yml index 5b0133799ef0a7..e816d3b258b334 100644 --- a/.ado/templates/apple-droid-node-patching.yml +++ b/.ado/templates/apple-droid-node-patching.yml @@ -5,4 +5,4 @@ steps: - task: CmdLine@2 displayName: Apply Android specific patches for Office consumption inputs: - script: node $(System.DefaultWorkingDirectory)/android-patches/bundle/bundle.js patch $(System.DefaultWorkingDirectory) Build OfficeRNHost V8 Focus --patch-store $(System.DefaultWorkingDirectory)/android-patches/patches --log-folder $(System.DefaultWorkingDirectory)/android-patches/logs --confirm ${{ parameters.apply_office_patches }} + script: node $(System.DefaultWorkingDirectory)/android-patches/bundle/bundle.js patch $(System.DefaultWorkingDirectory) Build OfficeRNHost V8 Focus MAC ImageColor --patch-store $(System.DefaultWorkingDirectory)/android-patches/patches --log-folder $(System.DefaultWorkingDirectory)/android-patches/logs --confirm ${{ parameters.apply_office_patches }} diff --git a/.ado/versionUtils.js b/.ado/versionUtils.js index a70c00bcb020be..21651c44bd4491 100644 --- a/.ado/versionUtils.js +++ b/.ado/versionUtils.js @@ -2,6 +2,7 @@ const fs = require("fs"); const path = require("path"); const semver = require('semver'); +const {execSync} = require('child_process'); const pkgJsonPath = path.resolve(__dirname, "../package.json"); let publishBranchName = ''; @@ -41,15 +42,34 @@ function updateVersionsInFiles(patchVersionPrefix) { } pkgJson.version = releaseVersion; - fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2)); - console.log(`Updating package.json to version ${releaseVersion}`); - + console.log(`Bumping files to version ${releaseVersion}`); + execSync(`node ./scripts/bump-oss-version.js --rnmpublish ${releaseVersion}`, {stdio: 'inherit', env: process.env}); + return {releaseVersion, branchVersionSuffix}; } +const workspaceJsonPath = path.resolve(require('os').tmpdir(), 'rnpkg.json'); + +function removeWorkspaceConfig() { + let {pkgJson} = gatherVersionInfo(); + fs.writeFileSync(workspaceJsonPath, JSON.stringify(pkgJson, null, 2)); + delete pkgJson.private; + delete pkgJson.workspaces; + fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2)); + console.log(`Removing workspace config from package.json to prepare to publish.`); +} + +function restoreWorkspaceConfig() { + let pkgJson = JSON.parse(fs.readFileSync(workspaceJsonPath, "utf8")); + fs.writeFileSync(pkgJsonPath, JSON.stringify(pkgJson, null, 2)); + console.log(`Restoring workspace config from package.json`); +} + module.exports = { gatherVersionInfo, publishBranchName, pkgJsonPath, + removeWorkspaceConfig, + restoreWorkspaceConfig, updateVersionsInFiles } \ No newline at end of file diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000000..eaf618cafb2032 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# Ensure scripts always have Unix newlines, even on Windows. +*.command text eol=lf +*.sh text eol=lf +# Windows files should use crlf line endings +# https://help.github.com/articles/dealing-with-line-endings/ +*.bat text eol=crlf \ No newline at end of file diff --git a/Libraries/Components/Pressable/Pressable.js b/Libraries/Components/Pressable/Pressable.js index 34d3c8ccf716a3..ec0e2343dfb3ee 100644 --- a/Libraries/Components/Pressable/Pressable.js +++ b/Libraries/Components/Pressable/Pressable.js @@ -25,10 +25,9 @@ import type { import {PressabilityDebugView} from '../../Pressability/PressabilityDebug'; import usePressability from '../../Pressability/usePressability'; import {normalizeRect, type RectOrSize} from '../../StyleSheet/Rect'; -import type {ColorValue} from '../../StyleSheet/StyleSheet'; import type { LayoutEvent, - MouseEvent, // TODO(macOS GH#774) + MouseEvent, PressEvent, } from '../../Types/CoreEventTypes'; import type {DraggedTypesType} from '../View/DraggedType'; // TODO(macOS GH#774) @@ -65,6 +64,16 @@ type Props = $ReadOnly<{| */ children: React.Node | ((state: StateCallbackType) => React.Node), + /** + * Duration to wait after hover in before calling `onHoverIn`. + */ + delayHoverIn?: ?number, + + /** + * Duration to wait after hover out before calling `onHoverOut`. + */ + delayHoverOut?: ?number, + /** * Duration (in milliseconds) from `onPressIn` before `onLongPress` is called. */ @@ -91,6 +100,16 @@ type Props = $ReadOnly<{| */ onLayout?: ?(event: LayoutEvent) => void, + /** + * Called when the hover is activated to provide visual feedback. + */ + onHoverIn?: ?(event: MouseEvent) => mixed, + + /** + * Called when the hover is deactivated to undo visual feedback. + */ + onHoverOut?: ?(event: MouseEvent) => mixed, + /** * Called when a long-tap gesture is detected. */ @@ -146,8 +165,6 @@ type Props = $ReadOnly<{| acceptsFirstMouse?: ?boolean, enableFocusRing?: ?boolean, tooltip?: ?string, - onMouseEnter?: (event: MouseEvent) => void, - onMouseLeave?: (event: MouseEvent) => void, onDragEnter?: (event: MouseEvent) => void, onDragLeave?: (event: MouseEvent) => void, onDrop?: (event: MouseEvent) => void, @@ -167,11 +184,13 @@ function Pressable(props: Props, forwardedRef): React.Node { android_disableSound, android_ripple, children, + delayHoverIn, + delayHoverOut, delayLongPress, disabled, focusable, - onMouseEnter, // [TODO(macOS GH#774) - onMouseLeave, // ]TODO(macOS GH#774) + onHoverIn, + onHoverOut, onLongPress, onPress, onPressIn, @@ -208,10 +227,12 @@ function Pressable(props: Props, forwardedRef): React.Node { hitSlop, pressRectOffset: pressRetentionOffset, android_disableSound, + delayHoverIn, + delayHoverOut, delayLongPress, delayPressIn: unstable_pressDelay, - onHoverIn: onMouseEnter, // [TODO(macOS GH#774) - onHoverOut: onMouseLeave, // ]TODO(macOS GH#774) + onHoverIn, + onHoverOut, onLongPress, onPress, onPressIn(event: PressEvent): void { @@ -237,11 +258,13 @@ function Pressable(props: Props, forwardedRef): React.Node { [ android_disableSound, android_rippleConfig, + delayHoverIn, + delayHoverOut, delayLongPress, disabled, hitSlop, - onMouseEnter, // [TODO(macOS GH#774) - onMouseLeave, // ]TODO(macOS GH#774) + onHoverIn, + onHoverOut, onLongPress, onPress, onPressIn, diff --git a/Libraries/Image/RCTImageLoader.mm b/Libraries/Image/RCTImageLoader.mm index 9462521cd02565..8bcd347e74c82a 100644 --- a/Libraries/Image/RCTImageLoader.mm +++ b/Libraries/Image/RCTImageLoader.mm @@ -966,15 +966,13 @@ - (RCTImageLoaderCancellationBlock)decodeImageData:(NSData *)data UIImage *image = RCTDecodeImageWithData(data, size, scale, resizeMode); #if !TARGET_OS_OSX && RCT_DEV // TODO(macOS GH#774) - if ([[self->_bridge devSettings] isDevModeEnabled]) { // TODO(OSS Candidate ISS#2710739) - CGSize imagePixelSize = RCTSizeInPixels(image.size, UIImageGetScale(image)); // TODO(macOS GH#774) - CGSize screenPixelSize = RCTSizeInPixels(RCTScreenSize(), RCTScreenScale()); - if (imagePixelSize.width * imagePixelSize.height > - screenPixelSize.width * screenPixelSize.height) { - RCTLogInfo(@"[PERF ASSETS] Loading image at size %@, which is larger " - "than the screen size %@", NSStringFromCGSize(imagePixelSize), - NSStringFromCGSize(screenPixelSize)); - } + CGSize imagePixelSize = RCTSizeInPixels(image.size, UIImageGetScale(image)); // TODO(macOS GH#774) + CGSize screenPixelSize = RCTSizeInPixels(RCTScreenSize(), RCTScreenScale()); + if (imagePixelSize.width * imagePixelSize.height > + screenPixelSize.width * screenPixelSize.height) { + RCTLogInfo(@"[PERF ASSETS] Loading image at size %@, which is larger " + "than the screen size %@", NSStringFromCGSize(imagePixelSize), + NSStringFromCGSize(screenPixelSize)); } #endif diff --git a/React/Base/RCTDefines.h b/React/Base/RCTDefines.h index abef526b774d3d..23be65eb5c64d7 100644 --- a/React/Base/RCTDefines.h +++ b/React/Base/RCTDefines.h @@ -42,8 +42,7 @@ #if DEBUG #define RCT_DEV 1 #else -// Dev Mode is now enabled or disabled at runtime via the -[RCTDevSettings isDevModeEnabled] property -#define RCT_DEV 1 +#define RCT_DEV 0 #endif #endif diff --git a/React/Base/RCTJSInvokerModule.h b/React/Base/RCTJSInvokerModule.h index 6f952c3742d0d7..b3b86a12d71104 100644 --- a/React/Base/RCTJSInvokerModule.h +++ b/React/Base/RCTJSInvokerModule.h @@ -12,6 +12,6 @@ @protocol RCTJSInvokerModule @property (nonatomic, copy, nonnull) void (^invokeJS)(NSString * _Nullable module, NSString * _Nullable method, NSArray * _Nullable args); // TODO(macOS GH#774) -@property (nonatomic, copy) void (^invokeJSWithModuleDotMethod)(NSString *moduleDotMethod, NSArray *args); +@property (nonatomic, copy, nonnull) void (^invokeJSWithModuleDotMethod)(NSString * _Nullable moduleDotMethod, NSArray * _Nullable args); // TODO(macOS GH#774) @end diff --git a/React/Base/RCTRootView.m b/React/Base/RCTRootView.m index 62c927c250b35e..1d1550fb9babac 100644 --- a/React/Base/RCTRootView.m +++ b/React/Base/RCTRootView.m @@ -467,9 +467,7 @@ - (NSMenu *)menuForEvent:(NSEvent *)event { NSMenu *menu = nil; #if __has_include("RCTDevMenu.h") && RCT_DEV - if ([[_bridge devSettings] isDevModeEnabled]) { - menu = [[_bridge devMenu] menu]; - } + menu = [[_bridge devMenu] menu]; #endif if (menu == nil) { menu = [super menuForEvent:event]; diff --git a/React/CoreModules/RCTDevLoadingView.mm b/React/CoreModules/RCTDevLoadingView.mm index 0a899170c080bd..f340d1806da07d 100644 --- a/React/CoreModules/RCTDevLoadingView.mm +++ b/React/CoreModules/RCTDevLoadingView.mm @@ -71,7 +71,7 @@ - (void)setBridge:(RCTBridge *)bridge name:RCTJavaScriptDidFailToLoadNotification object:nil]; - if ([[bridge devSettings] isDevModeEnabled] && bridge.loading) { // TODO(OSS Candidate ISS#2710739) + if (bridge.loading) { [self showWithURL:bridge.bundleURL]; } } @@ -339,7 +339,7 @@ + (NSString *)moduleName + (void)setEnabled:(BOOL)enabled { } -- (void)showMessage:(NSString *)message color:(UIColor *)color backgroundColor:(UIColor *)backgroundColor +- (void)showMessage:(NSString *)message color:(RCTUIColor *)color backgroundColor:(RCTUIColor *)backgroundColor // TODO(macOS GH#774) RCTUIColor { } - (void)showMessage:(NSString *)message withColor:(NSNumber *)color withBackgroundColor:(NSNumber *)backgroundColor diff --git a/React/CoreModules/RCTDevMenu.mm b/React/CoreModules/RCTDevMenu.mm index fe9a4f4367de20..24e08980161757 100644 --- a/React/CoreModules/RCTDevMenu.mm +++ b/React/CoreModules/RCTDevMenu.mm @@ -511,7 +511,6 @@ - (void)setDefaultJSBundle #if TARGET_OS_OSX // [TODO(macOS GH#774) - (NSMenu *)menu { - NSMenu *menu = nil; if ([_bridge.devSettings isSecondaryClickToShowDevMenuEnabled]) { NSMenu *menu = nil; if (_bridge) { diff --git a/React/CoreModules/RCTDevSettings.h b/React/CoreModules/RCTDevSettings.h index 77dabfc7da7848..98848cafd4aa55 100644 --- a/React/CoreModules/RCTDevSettings.h +++ b/React/CoreModules/RCTDevSettings.h @@ -41,14 +41,6 @@ - (instancetype)initWithDataSource:(id<RCTDevSettingsDataSource>)dataSource; -// [TODO(OSS Candidate ISS#2710739) -/** - * Whether Dev Mode is enabled meaning the development tools - * such as the debug executors, dev menu, red box, etc. are available. - */ -@property (nonatomic, assign, setter=setDevModeEnabled:) BOOL isDevModeEnabled; -// ]TODO(OSS Candidate ISS#2710739) - @property (nonatomic, readonly) BOOL isHotLoadingAvailable; @property (nonatomic, readonly) BOOL isLiveReloadAvailable; @property (nonatomic, readonly) BOOL isRemoteDebuggingAvailable; diff --git a/React/CoreModules/RCTDevSettings.mm b/React/CoreModules/RCTDevSettings.mm index 6960ae10d80525..a576c7809d2ac4 100644 --- a/React/CoreModules/RCTDevSettings.mm +++ b/React/CoreModules/RCTDevSettings.mm @@ -250,18 +250,6 @@ - (BOOL)isDeviceDebuggingAvailable #endif // RCT_ENABLE_INSPECTOR } -// [TODO(OSS Candidate ISS#2710739) -RCT_EXPORT_METHOD(setDevModeEnabled:(BOOL)enabled) -{ - [self _updateSettingWithValue:@(enabled) forKey:kRCTDevSettingDevModeEnabled]; -} - -- (BOOL)isDevModeEnabled -{ - return [[self settingForKey:kRCTDevSettingDevModeEnabled] boolValue]; -} -// ]TODO(OSS Candidate ISS#2710739) - - (BOOL)isRemoteDebuggingAvailable { if (RCTTurboModuleEnabled()) { diff --git a/React/CxxBridge/RCTCxxBridge.mm b/React/CxxBridge/RCTCxxBridge.mm index fcd6955276d37f..6b86556bb5247f 100644 --- a/React/CxxBridge/RCTCxxBridge.mm +++ b/React/CxxBridge/RCTCxxBridge.mm @@ -470,7 +470,7 @@ - (void)start #if (RCT_DEV | RCT_ENABLE_LOADING_VIEW) && __has_include(<React/RCTDevLoadingViewProtocol.h>) // [TODO(OSS Candidate ISS#2710739) // Note: RCTDevLoadingView should have been loaded at this point, so no need to allow lazy loading. - if ([weakSelf isValid] && [[weakSelf devSettings] isDevModeEnabled]) { + if ([weakSelf isValid]) { id<RCTDevLoadingViewProtocol> loadingView = [weakSelf moduleForName:@"DevLoadingView" lazilyLoadIfNecessary:YES]; [loadingView updateProgress:progressData]; @@ -673,9 +673,7 @@ - (void)_initializeBridge:(std::shared_ptr<JSExecutorFactory>)executorFactory // This can only be false if the bridge was invalidated before startup completed if (_reactInstance) { #if RCT_DEV - if ([[self devSettings] isDevModeEnabled]) { // TODO(OSS Candidate ISS#2710739) - executorFactory = std::make_shared<GetDescAdapter>(self, executorFactory); - } // TODO(OSS Candidate ISS#2710739) + executorFactory = std::make_shared<GetDescAdapter>(self, executorFactory); #endif [self _initializeBridgeLocked:executorFactory]; @@ -1037,9 +1035,7 @@ - (void)executeSourceCode:(NSData *)sourceCode sync:(BOOL)sync [self enqueueApplicationScript:sourceCode url:self.bundleURL onComplete:completion]; } - if (self.devSettings.isDevModeEnabled) { // TODO(OSS Candidate ISS#2710739) - [self.devSettings setupHMRClientWithBundleURL:self.bundleURL]; - } + [self.devSettings setupHMRClientWithBundleURL:self.bundleURL]; } #if RCT_DEV_MENU diff --git a/React/Modules/MacOS/RCTAccessibilityManager.m b/React/Modules/MacOS/RCTAccessibilityManager.m index 58974ffbb2afcd..2106376709d40c 100644 --- a/React/Modules/MacOS/RCTAccessibilityManager.m +++ b/React/Modules/MacOS/RCTAccessibilityManager.m @@ -99,9 +99,10 @@ - (void)dealloc RCT_EXPORT_METHOD(setAccessibilityFocus:(nonnull NSNumber *)reactTag) { - dispatch_async(dispatch_get_main_queue(), ^{ + dispatch_async(dispatch_get_main_queue(), ^{ NSView *view = [self.bridge.uiManager viewForReactTag:reactTag]; [[view window] makeFirstResponder:view]; + NSAccessibilityPostNotification(view, NSAccessibilityLayoutChangedNotification); }); } diff --git a/React/Modules/RCTEventEmitter.h b/React/Modules/RCTEventEmitter.h index 015ca1dffd2f60..16dc71dcddfc2a 100644 --- a/React/Modules/RCTEventEmitter.h +++ b/React/Modules/RCTEventEmitter.h @@ -16,7 +16,7 @@ @property (nonatomic, weak) RCTBridge * _Nullable bridge; // TODO(macOS GH#774) -- (instancetype)initWithDisabledObservation; +- (instancetype _Nullable)initWithDisabledObservation; // TODO(macOS GH#774) /** * Override this method to return an array of supported event names. Attempting diff --git a/android-patches/patches/Build/ReactAndroid/ReactAndroid.nuspec b/android-patches/patches/Build/ReactAndroid/ReactAndroid.nuspec index 200effcbc06ba7..109878ed6ee0d0 100644 --- a/android-patches/patches/Build/ReactAndroid/ReactAndroid.nuspec +++ b/android-patches/patches/Build/ReactAndroid/ReactAndroid.nuspec @@ -1,6 +1,6 @@ --- "E:\\gh\\react-native-macos2\\ReactAndroid\\ReactAndroid.nuspec" 1969-12-31 16:00:00.000000000 -0800 -+++ "E:\\gh\\react-native-macos\\ReactAndroid\\ReactAndroid.nuspec" 2021-10-12 19:48:38.934480100 -0700 -@@ -0,0 +1,200 @@ ++++ "E:\\gh\\react-native-macos\\ReactAndroid\\ReactAndroid.nuspec" 2021-10-16 13:47:24.356639200 -0700 +@@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="utf-8"?> +<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> + <metadata> @@ -100,6 +100,26 @@ + <file src="build\react-ndk\all\x86\libfolly_futures.so" target="lib\droidx86"/> + <file src="build\react-ndk\all\arm64-v8a\libfolly_futures.so" target="lib\droidarm64"/> + ++ <file src="build\react-ndk\all\x86_64\libreact_nativemodule_core.so" target="lib\droidx64"/> ++ <file src="build\react-ndk\all\armeabi-v7a\libreact_nativemodule_core.so" target="lib\droidarm"/> ++ <file src="build\react-ndk\all\x86\libreact_nativemodule_core.so" target="lib\droidx86"/> ++ <file src="build\react-ndk\all\arm64-v8a\libreact_nativemodule_core.so" target="lib\droidarm64"/> ++ ++ <file src="build\react-ndk\all\x86_64\libreactnativeutilsjni.so" target="lib\droidx64"/> ++ <file src="build\react-ndk\all\armeabi-v7a\libreactnativeutilsjni.so" target="lib\droidarm"/> ++ <file src="build\react-ndk\all\x86\libreactnativeutilsjni.so" target="lib\droidx86"/> ++ <file src="build\react-ndk\all\arm64-v8a\libreactnativeutilsjni.so" target="lib\droidarm64"/> ++ ++ <file src="build\react-ndk\all\x86_64\libreactperfloggerjni.so" target="lib\droidx64"/> ++ <file src="build\react-ndk\all\armeabi-v7a\libreactperfloggerjni.so" target="lib\droidarm"/> ++ <file src="build\react-ndk\all\x86\libreactperfloggerjni.so" target="lib\droidx86"/> ++ <file src="build\react-ndk\all\arm64-v8a\libreactperfloggerjni.so" target="lib\droidarm64"/> ++ ++ <file src="build\react-ndk\all\x86_64\libturbomodulejsijni.so" target="lib\droidx64"/> ++ <file src="build\react-ndk\all\armeabi-v7a\libturbomodulejsijni.so" target="lib\droidarm"/> ++ <file src="build\react-ndk\all\x86\libturbomodulejsijni.so" target="lib\droidx86"/> ++ <file src="build\react-ndk\all\arm64-v8a\libturbomodulejsijni.so" target="lib\droidarm64"/> ++ + <!-- Unstripped binaries --> + <file src="build\tmp\buildReactNdkLib\local\x86_64\libfb.so" target="lib\droidx64\unstripped"/> + <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libfb.so" target="lib\droidarm\unstripped"/> @@ -185,9 +205,29 @@ + <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libfolly_futures.so" target="lib\droidarm\unstripped"/> + <file src="build\tmp\buildReactNdkLib\local\x86\libfolly_futures.so" target="lib\droidx86\unstripped"/> + <file src="build\tmp\buildReactNdkLib\local\arm64-v8a\libfolly_futures.so" target="lib\droidarm64\unstripped"/> ++ ++ <file src="build\tmp\buildReactNdkLib\local\x86_64\libreact_nativemodule_core.so" target="lib\droidx64\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libreact_nativemodule_core.so" target="lib\droidarm\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\x86\libreact_nativemodule_core.so" target="lib\droidx86\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\arm64-v8a\libreact_nativemodule_core.so" target="lib\droidarm64\unstripped"/> ++ ++ <file src="build\tmp\buildReactNdkLib\local\x86_64\libreactnativeutilsjni.so" target="lib\droidx64\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libreactnativeutilsjni.so" target="lib\droidarm\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\x86\libreactnativeutilsjni.so" target="lib\droidx86\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\arm64-v8a\libreactnativeutilsjni.so" target="lib\droidarm64\unstripped"/> ++ ++ <file src="build\tmp\buildReactNdkLib\local\x86_64\libreactperfloggerjni.so" target="lib\droidx64\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libreactperfloggerjni.so" target="lib\droidarm\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\x86\libreactperfloggerjni.so" target="lib\droidx86\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\arm64-v8a\libreactperfloggerjni.so" target="lib\droidarm64\unstripped"/> ++ ++ <file src="build\tmp\buildReactNdkLib\local\x86_64\libturbomodulejsijni.so" target="lib\droidx64\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\armeabi-v7a\libturbomodulejsijni.so" target="lib\droidarm\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\x86\libturbomodulejsijni.so" target="lib\droidx86\unstripped"/> ++ <file src="build\tmp\buildReactNdkLib\local\arm64-v8a\libturbomodulejsijni.so" target="lib\droidarm64\unstripped"/> ++ + <!-- AAR and POM --> -+ <file src="..\android\com\facebook\react\react-native\*\react-native-*.aar" target="lib"/> -+ <file src="..\android\com\facebook\react\react-native\*\react-native-*.pom" target="lib"/> ++ <file src="..\android\com\**\*" target="maven\com"/> + + <!-- Headers, ideally we'd only exported the needed headers, not the complete list --> + <file src=".\build\third-party-ndk\double-conversion\double-conversion\*.h" target="inc\double-conversion"/> @@ -195,6 +235,8 @@ + <file src=".\build\third-party-ndk\glog\exported\glog\*.h" target="inc\glog" /> + <file src=".\build\third-party-ndk\jsc\JavaScriptCore\*.h" target="inc\jsc"/> + <file src="..\ReactCommon\cxxreact\**\*.h" target="inc\cxxreact"/> ++ <file src="..\ReactCommon\runtimeexecutor\ReactCommon\*.h" target="inc\ReactCommon"/> ++ <file src="..\ReactCommon\callinvoker\ReactCommon\*.h" target="inc\ReactCommon"/> + <file src="..\ReactCommon\jsi\**\*.h" target="inc\jsi"/> + <file src="..\ReactCommon\yoga\yoga\**\*.h" target="inc\Yoga"/> + <file src="..\android\dependencies\**\*.*" target="dependencies"/> diff --git a/android-patches/patches/ImageColor/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java b/android-patches/patches/ImageColor/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java new file mode 100644 index 00000000000000..6d59e245d9c9db --- /dev/null +++ b/android-patches/patches/ImageColor/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java @@ -0,0 +1,35 @@ +diff --git a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +index 6e2a1691fd..f856e85d53 100644 +--- a/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java ++++ b/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManagersPropertyCache.java +@@ -325,6 +325,21 @@ import java.util.Map; + } + } + ++ private static class BoxedColorPropSetter extends PropSetter { ++ ++ public BoxedColorPropSetter(ReactProp prop, Method setter) { ++ super(prop, "mixed", setter); ++ } ++ ++ @Override ++ protected @Nullable Object getValueOrDefault(Object value, Context context) { ++ if (value != null) { ++ return ColorPropConverter.getColor(value, context); ++ } ++ return null; ++ } ++ } ++ + /*package*/ static Map<String, String> getNativePropsForView( + Class<? extends ViewManager> viewManagerTopClass, + Class<? extends ReactShadowNode> shadowNodeTopClass) { +@@ -418,7 +433,7 @@ import java.util.Map; + return new BoxedBooleanPropSetter(annotation, method); + } else if (propTypeClass == Integer.class) { + if ("Color".equals(annotation.customType())) { +- return new ColorPropSetter(annotation, method); ++ return new BoxedColorPropSetter(annotation, method); + } + return new BoxedIntPropSetter(annotation, method); + } else if (propTypeClass == ReadableArray.class) { diff --git a/android-patches/patches/MAC/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevSettingsModule.java b/android-patches/patches/MAC/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevSettingsModule.java new file mode 100644 index 00000000000000..84e6c96614a361 --- /dev/null +++ b/android-patches/patches/MAC/ReactAndroid/src/main/java/com/facebook/react/modules/debug/DevSettingsModule.java @@ -0,0 +1,12 @@ +--- "E:\\gh\\react-native-macos2\\ReactAndroid\\src\\main\\java\\com\\facebook\\react\\modules\\debug\\DevSettingsModule.java" 2021-08-31 19:52:47.502468000 -0700 ++++ "E:\\gh\\react-native-macos\\ReactAndroid\\src\\main\\java\\com\\facebook\\react\\modules\\debug\\DevSettingsModule.java" 2021-10-20 19:29:11.611192200 -0700 +@@ -118,4 +118,9 @@ + public void removeListeners(double count) { + // iOS only + } ++ ++ @Override ++ public void setIsSecondaryClickToShowDevMenuEnabled(boolean enabled) { ++ // macOS only. ++ } + } diff --git a/android-patches/patches/OfficeRNHost/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java b/android-patches/patches/OfficeRNHost/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java deleted file mode 100644 index 453802aa68d84f..00000000000000 --- a/android-patches/patches/OfficeRNHost/ReactAndroid/src/main/java/com/facebook/react/bridge/ReactBridge.java +++ /dev/null @@ -1,27 +0,0 @@ ---- "E:\\gh\\react-native-macos2\\ReactAndroid\\src\\main\\java\\com\\facebook\\react\\bridge\\ReactBridge.java" 2021-10-12 13:35:49.124099000 -0700 -+++ "E:\\gh\\react-native-macos\\ReactAndroid\\src\\main\\java\\com\\facebook\\react\\bridge\\ReactBridge.java" 2021-10-12 13:22:46.508704400 -0700 -@@ -31,6 +31,24 @@ - Systrace.beginSection( - TRACE_TAG_REACT_JAVA_BRIDGE, "ReactBridge.staticInit::load:reactnativejni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_START); -+ -+ // JS Engine is configurable .. And we expect only one packaged. -+ // Hence ignore failure. -+ -+ try { -+ SoLoader.loadLibrary("hermes"); -+ } catch (UnsatisfiedLinkError jscE) {} -+ -+ try { -+ SoLoader.loadLibrary("v8jsi"); -+ } catch (UnsatisfiedLinkError jscE) {} -+ -+ SoLoader.loadLibrary("glog_init"); -+ SoLoader.loadLibrary("fb"); -+ SoLoader.loadLibrary("fbjni"); -+ SoLoader.loadLibrary("yoga"); -+ SoLoader.loadLibrary("jsinspector"); -+ - SoLoader.loadLibrary("reactnativejni"); - ReactMarker.logMarker(ReactMarkerConstants.LOAD_REACT_NATIVE_SO_FILE_END); - Systrace.endSection(TRACE_TAG_REACT_JAVA_BRIDGE); diff --git a/android-patches/scripts/downloadDependencies.py b/android-patches/scripts/downloadDependencies.py index dd036900583644..2c0232e03a20f0 100644 --- a/android-patches/scripts/downloadDependencies.py +++ b/android-patches/scripts/downloadDependencies.py @@ -523,7 +523,7 @@ def main(): shutil.copy(os.path.join(hermes_engine_node_modules_path, "package.json"), dependency_dir_hermes) dependency_dir_hermes_android_native_debug = os.path.join(dependency_dir_hermes_android_aar_path, "debug") - dependency_dir_hermes_android_native_release = os.path.join(dependency_dir_hermes_android_aar_path, "release") + dependency_dir_hermes_android_native_release = os.path.join(dependency_dir_hermes_android_aar_path, "ship") extract_so(dependency_dir_hermes_android_aar_path, dependency_dir_hermes_android_native_debug, "hermes-debug.aar") extract_so(dependency_dir_hermes_android_aar_path, dependency_dir_hermes_android_native_debug, "hermes-cppruntime-debug.aar") diff --git a/packages/react-native-macos-init/yarn.lock b/packages/react-native-macos-init/yarn.lock index 8f3f53b9b93e26..ad0b744a2d4eee 100644 --- a/packages/react-native-macos-init/yarn.lock +++ b/packages/react-native-macos-init/yarn.lock @@ -435,7 +435,7 @@ chalk@^3: ansi-styles "^4.1.0" supports-color "^7.1.0" -chownr@^1.1.1: +chownr@^1.1.1, chownr@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== @@ -954,7 +954,7 @@ fs-extra@^8.0.1: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: +fs-minipass@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== @@ -1105,9 +1105,9 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== hosted-git-info@^2.7.1: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== http-cache-semantics@^3.8.1: version "3.8.1" @@ -1565,7 +1565,7 @@ minimist@^1.2.5: resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: +minipass@^2.6.0, minipass@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== @@ -1573,7 +1573,7 @@ minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: safe-buffer "^5.1.2" yallist "^3.0.0" -minizlib@^1.2.1: +minizlib@^1.3.3: version "1.3.3" resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== @@ -1596,7 +1596,7 @@ mississippi@^3.0.0: stream-each "^1.1.0" through2 "^2.0.0" -mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@^0.5.1, mkdirp@^0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== @@ -2078,10 +2078,10 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" @@ -2293,17 +2293,17 @@ supports-hyperlinks@^1.0.1: supports-color "^5.0.0" tar@^4.4.8: - version "4.4.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + version "4.4.19" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.19.tgz#2e4d7263df26f2b914dee10c825ab132123742f3" + integrity sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA== dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" + chownr "^1.1.4" + fs-minipass "^1.2.7" + minipass "^2.9.0" + minizlib "^1.3.3" + mkdirp "^0.5.5" + safe-buffer "^5.2.1" + yallist "^3.1.1" text-hex@0.0.x: version "0.0.0" @@ -2514,7 +2514,7 @@ xtend@^4.0.0, xtend@~4.0.1: resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== diff --git a/packages/rn-tester/Podfile.lock b/packages/rn-tester/Podfile.lock index 4c2409b7ea2e31..4fcac42cfefef1 100644 --- a/packages/rn-tester/Podfile.lock +++ b/packages/rn-tester/Podfile.lock @@ -510,8 +510,8 @@ SPEC CHECKSUMS: CocoaAsyncSocket: 694058e7c0ed05a9e217d1b3c7ded962f4180845 CocoaLibEvent: 2fab71b8bd46dd33ddb959f7928ec5909f838e3f DoubleConversion: 0ea4559a49682230337df966e735d6cc7760108e - FBLazyVector: 0af9c548d05821b8d3d8b1158af257ad82eb8c90 - FBReactNativeSpec: c2d79a2c8c07216f6626c39111124f41d76d4c40 + FBLazyVector: 51cc83402f3d709f74795ff5c422a3d64aad2d5c + FBReactNativeSpec: 3a039b4dcabf30506715ca5c18c30d31d6c3e771 Flipper: be611d4b742d8c87fbae2ca5f44603a02539e365 Flipper-DoubleConversion: 38631e41ef4f9b12861c67d17cb5518d06badc41 Flipper-Folly: e4493b013c02d9347d5e0cb4d128680239f6c78a @@ -522,35 +522,35 @@ SPEC CHECKSUMS: glog: 0dc7efada961c0793012970b60faebbd58b0decb OpenSSL-Universal: ff34003318d5e1163e9529b08470708e389ffcdd RCT-Folly: b3998425a8ee9f695f57a204dc494534246f0fe9 - RCTRequired: 3da9abe24673584d7a79f5248832059899068f05 - RCTTypeSafety: 7119233a5389023ed13c58d09d8ee7bb7088bad8 - React: c0de64975793cccf0f4138daa4e590146b162f11 - React-callinvoker: b1124c70c39d3ba0d015d32a158dc0a2eb9c7fa4 - React-Core: 96446146b7e864c6198b23d7337a252cc9adab55 - React-CoreModules: 7325e9048de2bbc116bcdb545cf747012d7afa6b - React-cxxreact: d86b284a0f9a7a3048459c9c770f4957586d63b8 - React-jsi: fd6c9fc27e417504fcc0a2839e4d49ee62cd6147 - React-jsiexecutor: db69b2bd700a8d0e1f45acbd4f67579eac008594 - React-jsinspector: 89f8d52f0864887a8111927bfc2ca46bc92e42bc - React-perflogger: 880d12b4d24001fe05caa7dd97fc65a59d86a8ce - React-RCTActionSheet: 07569f6bbccf555da01fe45a85dc77fa73538e73 - React-RCTAnimation: 953a20ae7e65edc4597db2f42bb1ab6f49139dbf - React-RCTBlob: 956b7b4fbca784a2c12a24670a153663a341af8d - React-RCTImage: ae01e26d1e08e7ec14efdcc495e11e270fd5d7e6 - React-RCTLinking: ebb5724a94de55dba5b3ca4d81c3265a8e29906e - React-RCTNetwork: 170c0fb1fb9af1ee2a22dcc9b6210210a90e9ff0 - React-RCTPushNotification: ee9e0b11dee6dad4fabb74bfbae70a3d2eed8ea3 - React-RCTSettings: 1348016b05923c4eba469f7eb4de9f14d6c199ed - React-RCTTest: 922247d62baab8fdc5fdd050ca23b0d5f3d2dc17 - React-RCTText: c3a41352baca01610f860dc955658574dc0a763c - React-RCTVibration: 4faffa992f29eacda03ade258837d2b66525efdf - React-runtimeexecutor: 05f6110ddd6882d227293094c983dbfc5db315b7 + RCTRequired: 2d686a7dce047f5d49d3cfaaafcac309faabdfa3 + RCTTypeSafety: 381a24d058ab4456271b44774bb2b13bffe73fe4 + React: c057844fd06ecfa863cfb9c84991ab0f486540f3 + React-callinvoker: 488e8d69e0eb35579dc5ef2b36efd4aa1a94f40b + React-Core: 7260200dfa2667c56ed4cc27265c1e57d5d040fd + React-CoreModules: 1a58a4fbe3a667760e0921a85c5da21492fb7715 + React-cxxreact: 1e319bcd17b54b6768c10b8b9e89397f153d7f87 + React-jsi: a4a24e1ea3874772a28eaef6124b17fad1a29e41 + React-jsiexecutor: 332bca23c317135ea722ab7bdd1f65b61be13a0f + React-jsinspector: b1cb2f7a601f8aed95928062b908deddf3c82a48 + React-perflogger: 983acb8318ed9b7e9a7d0e1054218eaa24dfebe7 + React-RCTActionSheet: 83604ec93778a3b52805862d6feef63466765888 + React-RCTAnimation: 510927e07ee1e22b6a8ccbc7736df3105312c4cc + React-RCTBlob: eb1e62da8269a1acb2a48edfa36c872b79dda27a + React-RCTImage: e21d4e5881383144983a76fea1aa572b411f5d3e + React-RCTLinking: 793a4b3843b04c4e6f63c491cb114b24c17a8e5c + React-RCTNetwork: 7efd214d99d4e79d4ddabe76d2e01449267303d2 + React-RCTPushNotification: a4c94a936589b9b01ae6bc403b4b126f0ab64790 + React-RCTSettings: fe346a2cb5a0f73781b4430df3cba4ddeef9bafc + React-RCTTest: a75eb8f43f21d1b6429e081945447accdd7047f0 + React-RCTText: 38b52e9a804c7f5c5197f8f59cfc64295af63e38 + React-RCTVibration: dcb108280be8bf84c1ab716348587ffce989a40d + React-runtimeexecutor: fa0f514ab1020dbde36e9c88512930ceedb9bb2b React-TurboModuleCxx-RNW: 12172bdbaaf052406ec571465243fad4b2eb2702 - React-TurboModuleCxx-WinRTPort: 557ca6d53cca3bf5f9d42a1cb1cd9ff5d887d006 - ReactCommon: e3384ac2e3de59fce90c35524d6fae1ca82a21fe - Yoga: c80bf412b7c3f863cbb5aa73cfb6568c33b20220 + React-TurboModuleCxx-WinRTPort: 3844727e8cd53c024b276029bd96e01358d702e8 + ReactCommon: 94a1371a376fb197ff69b52efef86dc19d627abb + Yoga: 28f20bff355b99c1d8bc07008f47546796859a1d YogaKit: f782866e155069a2cca2517aafea43200b01fd5a PODFILE CHECKSUM: 096cbc796e89167c003b0c49186597432f0fb5e8 -COCOAPODS: 1.10.1 +COCOAPODS: 1.11.2 diff --git a/packages/rn-tester/js/examples/Pressable/PressableExample.js b/packages/rn-tester/js/examples/Pressable/PressableExample.js index 6c8764654ea56e..b592a2b0e6d7f1 100644 --- a/packages/rn-tester/js/examples/Pressable/PressableExample.js +++ b/packages/rn-tester/js/examples/Pressable/PressableExample.js @@ -99,8 +99,8 @@ function PressableFeedbackEvents() { testID="pressable_feedback_events_button" accessibilityLabel="pressable feedback events" accessibilityRole="button" - onMouseEnter={() => appendEvent('mouseEnter')} // [TODO(macOS GH#774) - onMouseLeave={() => appendEvent('mouseLeave')} // ]TODO(macOS GH#774) + onHoverIn={() => appendEvent('hoverIn')} // [TODO(macOS GH#774) + onHoverOut={() => appendEvent('hoverOut')} // ]TODO(macOS GH#774) onPress={() => appendEvent('press')} onPressIn={() => appendEvent('pressIn')} onPressOut={() => appendEvent('pressOut')} diff --git a/scripts/bump-oss-version.js b/scripts/bump-oss-version.js index a940e4fc9a41b1..9107380bdedb04 100755 --- a/scripts/bump-oss-version.js +++ b/scripts/bump-oss-version.js @@ -29,6 +29,11 @@ let argv = yargs type: 'boolean', default: false, }) + .option('p', { // [MacOS: Used during RNM's publish pipelines + alias: 'rnmpublish', + type: 'boolean', + default: false, + }) .option('n', { alias: 'nightly', type: 'boolean', @@ -37,6 +42,7 @@ let argv = yargs const nightlyBuild = argv.nightly; const ci = argv.ci; +const rnmpublish = argv.rnmpublish; let version, branch; if (nightlyBuild) { @@ -45,10 +51,15 @@ if (nightlyBuild) { }).stdout.trim(); version = `0.0.0-${currentCommit.slice(0, 9)}`; } else { - // Check we are in release branch, e.g. 0.33-stable - branch = exec('git symbolic-ref --short HEAD', { - silent: true, - }).stdout.trim(); + if (!ci && process.env.BUILD_SOURCEBRANCH) { + console.log(`BUILD_SOURCEBRANCH: ${process.env.BUILD_SOURCEBRANCH}`) + branch = process.env.BUILD_SOURCEBRANCH.match(/refs\/heads\/(.*)/)[1]; + console.log(`Identified branch: ${branch}`) + } else { + branch = exec('git symbolic-ref --short HEAD', { + silent: true, + }).stdout.trim(); + } if (!ci && branch.indexOf('-stable') === -1) { echo('You must be in 0.XX-stable branch to bump a version'); @@ -133,8 +144,10 @@ fs.writeFileSync( let packageJson = JSON.parse(cat('package.json')); packageJson.version = version; -delete packageJson.workspaces; -delete packageJson.private; +if (!rnmpublish) { + delete packageJson.workspaces; + delete packageJson.private; +} fs.writeFileSync('package.json', JSON.stringify(packageJson, null, 2), 'utf-8'); // Change ReactAndroid/gradle.properties @@ -161,7 +174,7 @@ let numberOfChangedLinesWithNewVersion = exec( // Release builds should commit the version bumps, and create tags. // Nightly builds do not need to do that. -if (!nightlyBuild) { +if (!nightlyBuild && !rnmpublish) { if (+numberOfChangedLinesWithNewVersion !== 3) { echo( 'Failed to update all the files. package.json and gradle.properties must have versions in them',