Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RNMobile] Upgrade to RN 0.66 #36328

Merged
merged 69 commits into from
Jan 3, 2022
Merged

Conversation

dcalhoun
Copy link
Member

@dcalhoun dcalhoun commented Nov 8, 2021

Related PRs

Third-Party Fork PRs

Description

Upgrade React Native to 0.66. See the React Native Upgrade Helper for additional details.

Fixes #34654. Fixes wordpress-mobile/gutenberg-mobile#4219.

How has this been tested?

Performed of Writing Flow and UBE test cases.

Help & Support
  1. Launch the iOS editor.
  2. Tap the three-dot button in the top-right corner.
  3. Tap Help & Support.
  4. Tap one of the help articles.
  5. Tap Back.
  6. Tap Close.
  7. ℹ️ Expected: The app does not freeze and is able to scroll and add/edit/remove blocks.
Link Picker
  1. Launch the iOS editor.
  2. Add a Paragraph block with text.
  3. Perform various linking actions multiple times over closing the block settings bottom sheet throughout.
    • Add a link without text selection.
    • Add link with text selection.
    • Add link with clipboard URL.
    • Modify existing link text.
    • Modify existing link URL.
    • Remove existing link with Remove link button.
    • Remove existing link by clearing URL within link picker.
    • Remove existing link by clearing link text.
  4. ℹ️ Expected: The app does not freeze and is able to scroll and add/edit/remove blocks.
Cover Focal Point
  1. Launch the iOS editor.
  2. Add a Cover block and set an image as its media.
  3. Open the Cover block settings.
  4. Tap Edit focal point.
  5. Tap Cancel.
  6. Close the Cover block settings.
  7. ℹ️ Expected: The app does not freeze and is able to scroll and add/edit/remove blocks.
Cover Opacity
  1. Launch the iOS editor.
  2. Add a Cover block and set an image as its media.
  3. Open the Cover block settings.
  4. Modify the Opacity by dragging the slider.
  5. Close the Cover block settings.
  6. ℹ️ Expected: The app does not freeze and is able to scroll and add/edit/remove blocks.

Screenshots

n/a

Types of changes

Chore

Checklist:

  • My code is tested.
  • My code follows the WordPress code style.
  • My code follows the accessibility standards.
  • I've tested my changes with keyboard and screen readers.
  • My code has proper inline documentation.
  • I've included developer documentation if appropriate.
  • I've updated all React Native files affected by any refactorings/renamings in this PR (please manually search all *.native.js files for terms that need renaming or removal).

dcalhoun and others added 22 commits November 8, 2021 15:34
- react-native
- react
- react-dom
- react-test-renderer
- metro-react-native-babel-preset
- metro-react-native-babel-transformer
These patches have now arrived from upstream changes.

- facebook/metro@1e6cec8
- facebook/react-native@842bcb9
Result of `npm run native preios`.
Errors were thrown from `useSelect` and `useDispatch` returning
unexpected `undefined` values. Utilize the store defintion rather than
the store name string resolved the errors. There is already a movement
to use this approach in general: https://git.io/JPQW2
This function is marked as deprecated.We should be replaced by calling
`remove` on the subscription itself. https://git.io/JPQzO
Remove usage of deprecated `EventEmitter.removeEventListener`. This
function is marked as deprecated.We should be replaced by calling
`remove` on the subscription itself. https://git.io/JPQzO

The patch can be removed once we upgrade to
react-native-modal@^13.0.0. https://git.io/JPQgq
Set the relative RN CLI path for the Demo app to fix broken builds when
using Android Studio, as opposed to the RN CLI directly. It appears the
[code used to locate the CLI was modified](https://git.io/JcNzp) for v0.64.0. So, our recent
React Native upgrade is likely when this issue began.
When enabled, this option converts top-level imports into inline
requires as a performance optimization for large apps. However, it would
appear that some import side effects break, e.g. `import './hooks'`.

https://reactnative.dev/docs/ram-bundles-inline-requires#inline-requires
Remove usage of deprecated `EventEmitter.removeEventListener`. This
function is marked as deprecated.We should be replaced by calling
`remove` on the subscription itself. https://git.io/JPQzO

The patch can be removed once we upgrade to react-navigation@^6.0.0.
https://git.io/JP7OG
Installing pods resulted in the following warning. Given that the target
is an unused test workspace, it felt safe to remove this setting.

```
[!] The `GutenbergDemoTests [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-GutenbergDemo-GutenbergDemoTests/Pods-GutenbergDemo-GutenbergDemoTests.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `GutenbergDemoTests [Release]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-GutenbergDemo-GutenbergDemoTests/Pods-GutenbergDemo-GutenbergDemoTests.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.
```
The Carthage documentation showcases this argument. Using it resolved
the following error when running `npm run native preios:carthage`.

https://github.com/Carthage/Carthage/tree/0.38.0#quick-start

```
Building universal frameworks with common architectures is not possible. The device and simulator slices for "Aztec" both build for: arm64
Rebuild with --use-xcframeworks to create an xcframework bundle instead.
```
The added methods are required by React Native. Otherwise, the below
warning is displayed.

https://stackoverflow.com/a/69650217/378228

```
WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method.
WARN  `new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method.
```
`console.disableYellowBox` is deprecated. Additionally, totally
disabling the logger increases the likelihood that we inadvertently
overlook new warnings.
This patch changed from the deprecated `componentWillReceiveProps` to
`componentDidUpdate`. We can remove this patch when we upgrade to
`react-native-keyboard-aware-scroll-view@^0.9.2`
https://git.io/JPbOK
Utilize the new versions of the scroll methods. This patch could be
removed if we upgrade to `react-native-keyboard-aware-view@^0.9.5`.
https://git.io/JPb6a
A few lines before this, `remove` is called on the subscription itself.
We should use `remove` on the subscription itself instead.
Build errors occurred for `react-native-bridge` as it attempted to
target 11.0, where the editor project targets 13.0. This change lets all
Pods, except RCT-Folly, inherit the target of the project. RCT-Folly
requires an explicit target.

- https://stackoverflow.com/a/37289688/378228
- https://git.io/JPb7Y
- https://git.io/JPb73
Result of running `npm run native ios`.
@dcalhoun dcalhoun added the Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change) label Nov 8, 2021
@dcalhoun dcalhoun self-assigned this Nov 8, 2021
@github-actions
Copy link

github-actions bot commented Nov 8, 2021

Size Change: 0 B

Total Size: 1.13 MB

ℹ️ View Unchanged
Filename Size
build/a11y/index.min.js 960 B
build/admin-manifest/index.min.js 1.1 kB
build/annotations/index.min.js 2.75 kB
build/api-fetch/index.min.js 2.21 kB
build/autop/index.min.js 2.12 kB
build/blob/index.min.js 459 B
build/block-directory/index.min.js 6.28 kB
build/block-directory/style-rtl.css 1.01 kB
build/block-directory/style.css 1.01 kB
build/block-editor/default-editor-styles-rtl.css 378 B
build/block-editor/default-editor-styles.css 378 B
build/block-editor/index.min.js 140 kB
build/block-editor/style-rtl.css 14.6 kB
build/block-editor/style.css 14.6 kB
build/block-library/blocks/archives/editor-rtl.css 61 B
build/block-library/blocks/archives/editor.css 60 B
build/block-library/blocks/archives/style-rtl.css 65 B
build/block-library/blocks/archives/style.css 65 B
build/block-library/blocks/audio/editor-rtl.css 58 B
build/block-library/blocks/audio/editor.css 58 B
build/block-library/blocks/audio/style-rtl.css 111 B
build/block-library/blocks/audio/style.css 111 B
build/block-library/blocks/audio/theme-rtl.css 125 B
build/block-library/blocks/audio/theme.css 125 B
build/block-library/blocks/block/editor-rtl.css 161 B
build/block-library/blocks/block/editor.css 161 B
build/block-library/blocks/button/editor-rtl.css 470 B
build/block-library/blocks/button/editor.css 470 B
build/block-library/blocks/button/style-rtl.css 560 B
build/block-library/blocks/button/style.css 560 B
build/block-library/blocks/buttons/editor-rtl.css 292 B
build/block-library/blocks/buttons/editor.css 292 B
build/block-library/blocks/buttons/style-rtl.css 275 B
build/block-library/blocks/buttons/style.css 275 B
build/block-library/blocks/calendar/style-rtl.css 207 B
build/block-library/blocks/calendar/style.css 207 B
build/block-library/blocks/categories/editor-rtl.css 84 B
build/block-library/blocks/categories/editor.css 83 B
build/block-library/blocks/categories/style-rtl.css 79 B
build/block-library/blocks/categories/style.css 79 B
build/block-library/blocks/code/style-rtl.css 90 B
build/block-library/blocks/code/style.css 90 B
build/block-library/blocks/code/theme-rtl.css 134 B
build/block-library/blocks/code/theme.css 134 B
build/block-library/blocks/columns/editor-rtl.css 210 B
build/block-library/blocks/columns/editor.css 208 B
build/block-library/blocks/columns/style-rtl.css 502 B
build/block-library/blocks/columns/style.css 501 B
build/block-library/blocks/comment-template/style-rtl.css 127 B
build/block-library/blocks/comment-template/style.css 127 B
build/block-library/blocks/comments-pagination-numbers/editor-rtl.css 123 B
build/block-library/blocks/comments-pagination-numbers/editor.css 121 B
build/block-library/blocks/comments-pagination/editor-rtl.css 222 B
build/block-library/blocks/comments-pagination/editor.css 209 B
build/block-library/blocks/comments-pagination/style-rtl.css 235 B
build/block-library/blocks/comments-pagination/style.css 231 B
build/block-library/blocks/cover/editor-rtl.css 546 B
build/block-library/blocks/cover/editor.css 547 B
build/block-library/blocks/cover/style-rtl.css 1.22 kB
build/block-library/blocks/cover/style.css 1.22 kB
build/block-library/blocks/embed/editor-rtl.css 293 B
build/block-library/blocks/embed/editor.css 293 B
build/block-library/blocks/embed/style-rtl.css 417 B
build/block-library/blocks/embed/style.css 417 B
build/block-library/blocks/embed/theme-rtl.css 124 B
build/block-library/blocks/embed/theme.css 124 B
build/block-library/blocks/file/editor-rtl.css 300 B
build/block-library/blocks/file/editor.css 300 B
build/block-library/blocks/file/style-rtl.css 255 B
build/block-library/blocks/file/style.css 255 B
build/block-library/blocks/file/view.min.js 322 B
build/block-library/blocks/freeform/editor-rtl.css 2.44 kB
build/block-library/blocks/freeform/editor.css 2.44 kB
build/block-library/blocks/gallery/editor-rtl.css 966 B
build/block-library/blocks/gallery/editor.css 970 B
build/block-library/blocks/gallery/style-rtl.css 1.6 kB
build/block-library/blocks/gallery/style.css 1.6 kB
build/block-library/blocks/gallery/theme-rtl.css 122 B
build/block-library/blocks/gallery/theme.css 122 B
build/block-library/blocks/group/editor-rtl.css 159 B
build/block-library/blocks/group/editor.css 159 B
build/block-library/blocks/group/style-rtl.css 57 B
build/block-library/blocks/group/style.css 57 B
build/block-library/blocks/group/theme-rtl.css 78 B
build/block-library/blocks/group/theme.css 78 B
build/block-library/blocks/heading/style-rtl.css 114 B
build/block-library/blocks/heading/style.css 114 B
build/block-library/blocks/html/editor-rtl.css 332 B
build/block-library/blocks/html/editor.css 333 B
build/block-library/blocks/image/editor-rtl.css 810 B
build/block-library/blocks/image/editor.css 809 B
build/block-library/blocks/image/style-rtl.css 507 B
build/block-library/blocks/image/style.css 511 B
build/block-library/blocks/image/theme-rtl.css 124 B
build/block-library/blocks/image/theme.css 124 B
build/block-library/blocks/latest-comments/style-rtl.css 284 B
build/block-library/blocks/latest-comments/style.css 284 B
build/block-library/blocks/latest-posts/editor-rtl.css 137 B
build/block-library/blocks/latest-posts/editor.css 137 B
build/block-library/blocks/latest-posts/style-rtl.css 528 B
build/block-library/blocks/latest-posts/style.css 527 B
build/block-library/blocks/list/style-rtl.css 94 B
build/block-library/blocks/list/style.css 94 B
build/block-library/blocks/media-text/editor-rtl.css 266 B
build/block-library/blocks/media-text/editor.css 263 B
build/block-library/blocks/media-text/style-rtl.css 493 B
build/block-library/blocks/media-text/style.css 490 B
build/block-library/blocks/more/editor-rtl.css 431 B
build/block-library/blocks/more/editor.css 431 B
build/block-library/blocks/navigation-link/editor-rtl.css 649 B
build/block-library/blocks/navigation-link/editor.css 650 B
build/block-library/blocks/navigation-link/style-rtl.css 94 B
build/block-library/blocks/navigation-link/style.css 94 B
build/block-library/blocks/navigation-submenu/editor-rtl.css 299 B
build/block-library/blocks/navigation-submenu/editor.css 299 B
build/block-library/blocks/navigation-submenu/view.min.js 343 B
build/block-library/blocks/navigation/editor-rtl.css 1.93 kB
build/block-library/blocks/navigation/editor.css 1.94 kB
build/block-library/blocks/navigation/style-rtl.css 1.8 kB
build/block-library/blocks/navigation/style.css 1.79 kB
build/block-library/blocks/navigation/view.min.js 2.82 kB
build/block-library/blocks/nextpage/editor-rtl.css 395 B
build/block-library/blocks/nextpage/editor.css 395 B
build/block-library/blocks/page-list/editor-rtl.css 377 B
build/block-library/blocks/page-list/editor.css 377 B
build/block-library/blocks/page-list/style-rtl.css 172 B
build/block-library/blocks/page-list/style.css 172 B
build/block-library/blocks/paragraph/editor-rtl.css 157 B
build/block-library/blocks/paragraph/editor.css 157 B
build/block-library/blocks/paragraph/style-rtl.css 273 B
build/block-library/blocks/paragraph/style.css 273 B
build/block-library/blocks/post-author/style-rtl.css 175 B
build/block-library/blocks/post-author/style.css 176 B
build/block-library/blocks/post-comments-form/style-rtl.css 446 B
build/block-library/blocks/post-comments-form/style.css 446 B
build/block-library/blocks/post-comments/style-rtl.css 509 B
build/block-library/blocks/post-comments/style.css 509 B
build/block-library/blocks/post-excerpt/editor-rtl.css 73 B
build/block-library/blocks/post-excerpt/editor.css 73 B
build/block-library/blocks/post-excerpt/style-rtl.css 69 B
build/block-library/blocks/post-excerpt/style.css 69 B
build/block-library/blocks/post-featured-image/editor-rtl.css 721 B
build/block-library/blocks/post-featured-image/editor.css 721 B
build/block-library/blocks/post-featured-image/style-rtl.css 153 B
build/block-library/blocks/post-featured-image/style.css 153 B
build/block-library/blocks/post-template/editor-rtl.css 99 B
build/block-library/blocks/post-template/editor.css 98 B
build/block-library/blocks/post-template/style-rtl.css 391 B
build/block-library/blocks/post-template/style.css 392 B
build/block-library/blocks/post-terms/style-rtl.css 73 B
build/block-library/blocks/post-terms/style.css 73 B
build/block-library/blocks/post-title/style-rtl.css 80 B
build/block-library/blocks/post-title/style.css 80 B
build/block-library/blocks/preformatted/style-rtl.css 103 B
build/block-library/blocks/preformatted/style.css 103 B
build/block-library/blocks/pullquote/editor-rtl.css 198 B
build/block-library/blocks/pullquote/editor.css 198 B
build/block-library/blocks/pullquote/style-rtl.css 389 B
build/block-library/blocks/pullquote/style.css 388 B
build/block-library/blocks/pullquote/theme-rtl.css 167 B
build/block-library/blocks/pullquote/theme.css 167 B
build/block-library/blocks/query-pagination-numbers/editor-rtl.css 122 B
build/block-library/blocks/query-pagination-numbers/editor.css 121 B
build/block-library/blocks/query-pagination/editor-rtl.css 221 B
build/block-library/blocks/query-pagination/editor.css 211 B
build/block-library/blocks/query-pagination/style-rtl.css 234 B
build/block-library/blocks/query-pagination/style.css 231 B
build/block-library/blocks/query/editor-rtl.css 131 B
build/block-library/blocks/query/editor.css 132 B
build/block-library/blocks/quote/style-rtl.css 187 B
build/block-library/blocks/quote/style.css 187 B
build/block-library/blocks/quote/theme-rtl.css 223 B
build/block-library/blocks/quote/theme.css 226 B
build/block-library/blocks/rss/editor-rtl.css 202 B
build/block-library/blocks/rss/editor.css 204 B
build/block-library/blocks/rss/style-rtl.css 289 B
build/block-library/blocks/rss/style.css 288 B
build/block-library/blocks/search/editor-rtl.css 165 B
build/block-library/blocks/search/editor.css 165 B
build/block-library/blocks/search/style-rtl.css 397 B
build/block-library/blocks/search/style.css 398 B
build/block-library/blocks/search/theme-rtl.css 64 B
build/block-library/blocks/search/theme.css 64 B
build/block-library/blocks/separator/editor-rtl.css 99 B
build/block-library/blocks/separator/editor.css 99 B
build/block-library/blocks/separator/style-rtl.css 245 B
build/block-library/blocks/separator/style.css 245 B
build/block-library/blocks/separator/theme-rtl.css 172 B
build/block-library/blocks/separator/theme.css 172 B
build/block-library/blocks/shortcode/editor-rtl.css 474 B
build/block-library/blocks/shortcode/editor.css 474 B
build/block-library/blocks/site-logo/editor-rtl.css 744 B
build/block-library/blocks/site-logo/editor.css 744 B
build/block-library/blocks/site-logo/style-rtl.css 181 B
build/block-library/blocks/site-logo/style.css 181 B
build/block-library/blocks/site-tagline/editor-rtl.css 86 B
build/block-library/blocks/site-tagline/editor.css 86 B
build/block-library/blocks/site-title/editor-rtl.css 84 B
build/block-library/blocks/site-title/editor.css 84 B
build/block-library/blocks/social-link/editor-rtl.css 177 B
build/block-library/blocks/social-link/editor.css 177 B
build/block-library/blocks/social-links/editor-rtl.css 670 B
build/block-library/blocks/social-links/editor.css 669 B
build/block-library/blocks/social-links/style-rtl.css 1.32 kB
build/block-library/blocks/social-links/style.css 1.32 kB
build/block-library/blocks/spacer/editor-rtl.css 332 B
build/block-library/blocks/spacer/editor.css 332 B
build/block-library/blocks/spacer/style-rtl.css 48 B
build/block-library/blocks/spacer/style.css 48 B
build/block-library/blocks/table/editor-rtl.css 471 B
build/block-library/blocks/table/editor.css 472 B
build/block-library/blocks/table/style-rtl.css 481 B
build/block-library/blocks/table/style.css 481 B
build/block-library/blocks/table/theme-rtl.css 188 B
build/block-library/blocks/table/theme.css 188 B
build/block-library/blocks/tag-cloud/style-rtl.css 146 B
build/block-library/blocks/tag-cloud/style.css 146 B
build/block-library/blocks/template-part/editor-rtl.css 560 B
build/block-library/blocks/template-part/editor.css 559 B
build/block-library/blocks/template-part/theme-rtl.css 101 B
build/block-library/blocks/template-part/theme.css 101 B
build/block-library/blocks/text-columns/editor-rtl.css 95 B
build/block-library/blocks/text-columns/editor.css 95 B
build/block-library/blocks/text-columns/style-rtl.css 166 B
build/block-library/blocks/text-columns/style.css 166 B
build/block-library/blocks/verse/style-rtl.css 87 B
build/block-library/blocks/verse/style.css 87 B
build/block-library/blocks/video/editor-rtl.css 571 B
build/block-library/blocks/video/editor.css 572 B
build/block-library/blocks/video/style-rtl.css 173 B
build/block-library/blocks/video/style.css 173 B
build/block-library/blocks/video/theme-rtl.css 124 B
build/block-library/blocks/video/theme.css 124 B
build/block-library/common-rtl.css 910 B
build/block-library/common.css 908 B
build/block-library/editor-rtl.css 10.1 kB
build/block-library/editor.css 10.1 kB
build/block-library/index.min.js 165 kB
build/block-library/reset-rtl.css 474 B
build/block-library/reset.css 474 B
build/block-library/style-rtl.css 10.8 kB
build/block-library/style.css 10.9 kB
build/block-library/theme-rtl.css 675 B
build/block-library/theme.css 679 B
build/block-serialization-default-parser/index.min.js 1.09 kB
build/block-serialization-spec-parser/index.min.js 2.79 kB
build/blocks/index.min.js 46.3 kB
build/components/index.min.js 215 kB
build/components/style-rtl.css 15.5 kB
build/components/style.css 15.5 kB
build/compose/index.min.js 11.2 kB
build/core-data/index.min.js 13.3 kB
build/customize-widgets/index.min.js 11.4 kB
build/customize-widgets/style-rtl.css 1.5 kB
build/customize-widgets/style.css 1.49 kB
build/data-controls/index.min.js 631 B
build/data/index.min.js 7.49 kB
build/date/index.min.js 31.9 kB
build/deprecated/index.min.js 485 B
build/dom-ready/index.min.js 304 B
build/dom/index.min.js 4.5 kB
build/edit-navigation/index.min.js 16 kB
build/edit-navigation/style-rtl.css 3.76 kB
build/edit-navigation/style.css 3.76 kB
build/edit-post/classic-rtl.css 492 B
build/edit-post/classic.css 494 B
build/edit-post/index.min.js 29.5 kB
build/edit-post/style-rtl.css 7.16 kB
build/edit-post/style.css 7.16 kB
build/edit-site/index.min.js 36.2 kB
build/edit-site/style-rtl.css 6.63 kB
build/edit-site/style.css 6.62 kB
build/edit-widgets/index.min.js 16.5 kB
build/edit-widgets/style-rtl.css 4.17 kB
build/edit-widgets/style.css 4.18 kB
build/editor/index.min.js 37.9 kB
build/editor/style-rtl.css 3.75 kB
build/editor/style.css 3.74 kB
build/element/index.min.js 3.29 kB
build/escape-html/index.min.js 517 B
build/format-library/index.min.js 6.58 kB
build/format-library/style-rtl.css 571 B
build/format-library/style.css 571 B
build/hooks/index.min.js 1.63 kB
build/html-entities/index.min.js 424 B
build/i18n/index.min.js 3.71 kB
build/is-shallow-equal/index.min.js 501 B
build/keyboard-shortcuts/index.min.js 1.8 kB
build/keycodes/index.min.js 1.39 kB
build/list-reusable-blocks/index.min.js 1.72 kB
build/list-reusable-blocks/style-rtl.css 838 B
build/list-reusable-blocks/style.css 838 B
build/media-utils/index.min.js 2.92 kB
build/notices/index.min.js 925 B
build/nux/index.min.js 2.08 kB
build/nux/style-rtl.css 747 B
build/nux/style.css 743 B
build/plugins/index.min.js 1.84 kB
build/primitives/index.min.js 924 B
build/priority-queue/index.min.js 582 B
build/react-i18n/index.min.js 671 B
build/react-refresh-entry/index.min.js 8.44 kB
build/react-refresh-runtime/index.min.js 7.31 kB
build/redux-routine/index.min.js 2.65 kB
build/reusable-blocks/index.min.js 2.22 kB
build/reusable-blocks/style-rtl.css 256 B
build/reusable-blocks/style.css 256 B
build/rich-text/index.min.js 11 kB
build/server-side-render/index.min.js 1.57 kB
build/shortcode/index.min.js 1.49 kB
build/token-list/index.min.js 639 B
build/url/index.min.js 1.9 kB
build/viewport/index.min.js 1.05 kB
build/warning/index.min.js 248 B
build/widgets/index.min.js 7.15 kB
build/widgets/style-rtl.css 1.16 kB
build/widgets/style.css 1.16 kB
build/wordcount/index.min.js 1.04 kB

compressed-size-action

@dcalhoun dcalhoun force-pushed the chore/upgrade-to-react-native-0.66 branch from 2b194ec to c9d4440 Compare November 9, 2021 18:26
The `Clipboard` module was marked as deprecated and will be removed from
React Native core. React Native documentation recommends relying upon
the community package instead.

```
WARN  Clipboard has been extracted from react-native core and will be removed in a future release. It can now be installed and imported from '@react-native-clipboard/clipboard' instead of 'react-native'. See https://github.com/react-native-clipboard/clipboard
```
These changes did not show up until the second run, unsure as to why.
This aligns with the mock found within the React Native source itself.
Prior to this change, `AccessibilityInfo` was `undefined` within tests.
https://git.io/JXKgx
These changes occurred after upgrading React Native to 0.66.2. They do
not appear suspicious.
@@ -350,8 +353,8 @@ export default compose( [
getEditorBlocks,
getEditedPostAttribute,
getEditedPostContent,
} = select( 'core/editor' );
const { getEditorMode } = select( 'core/edit-post' );
} = select( editorStore );
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Aha, interesting that we had to use the store objects instead of the store name literals to fix useSelect and useDispatch errors, but glad you fixed it and it helps move away from the name literals even more! 👏

The assertions of these tests do not tell the full story of the test
expectation. Namely, due to bugs within react-native-testing-library and
its dependencies, the tests do not assert navigation events that should
occur _after_ the keyboard dismisses. Combining async renders and mocked
timers is currently quite difficult.

callstack/react-native-testing-library#379 (comment)

To clarify the intent of the test, the test description was expanded to
describe the expectation that the keyboard is dismissed prior to the
navigation event occurring. Simultaneously dismissing the keyboard and
navigating has caused performance issues in our bottom sheet before.

#37559
The `Clipboard` module was relocated to a non-core package. This change
mirrors earlier work in this branch, but needed to be applied to
additional code that merged after the initial work. I.e. a merge
resolution resulted in old references showing up.
These stale references lingered from prior iterations of the React
Native upgrade work.
Copy link
Contributor

@hypest hypest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've finished a review pass over the changes here. Have to say, awesome work @dcalhoun , lots of little or far-from-little fixes all around! 👏👏

Also, sorry it took me so long to finish a pass :(

Some notes from my side:

  1. I didn't dive too much into the iOS side changes.
  2. I didn't go through the new tests in detail. Perhaps we can review those in a second pass or after merging. I figure, since those tests are new, we are not going to break something if there's an issue with any of the tests.
  3. One thing that jumped out on me is how outdated quite a few of the forked deps are at this stage. Feels we need some follow up work to freshen those up. Crazy idea for the forks: perhaps we can consider a monorepo with them all. Obviously not something related to the PR at hand.

Considering that the automated test jobs as well as the manual tests are green, I think this PR can be mergeable. There are some comment threads ongoing but, I don't think any are a blocker.

That said, the plan still is to not merge the RN upgrade until early next year (a couple of weeks away) when more folks will be back from AFK to help with testing and fixing any issue that might crop up. For that, I will not mark this PR as "Approved" so we don't merge it involuntarily.

The React Native Clipboard module is deprecated. This project now
utilizes the recommended, third-party module
`@react-native-clipboard/clipboard` instead.
@dcalhoun dcalhoun mentioned this pull request Dec 22, 2021
6 tasks
@dcalhoun
Copy link
Member Author

I've finished a review pass over the changes here. Have to say, awesome work @dcalhoun , lots of little or far-from-little fixes all around! 👏👏

@hypest wonderful! Thank you for taking the time to review this and provide helpful feedback.

  1. I didn't dive too much into the iOS side changes.

Alright. @twstokes would you be willing to provide additional review as well?

  1. I didn't go through the new tests in detail. Perhaps we can review those in a second pass or after merging. I figure, since those tests are new, we are not going to break something if there's an issue with any of the tests.

Sounds good. Yes, the nature of tests should mean new tests have no impact on the app stability.

  1. One thing that jumped out on me is how outdated quite a few of the forked deps are at this stage. Feels we need some follow up work to freshen those up. Crazy idea for the forks: perhaps we can consider a monorepo with them all. Obviously not something related to the PR at hand.

Agreed. The monorepo is an interesting idea. I think it would make updating the React Native version for all forks simpler, but it may make pulling in upstream changes for each of the repositories more difficult. 🤔 I have created #37594 to track further discussion on this.

Considering that the automated test jobs as well as the manual tests are green, I think this PR can be mergeable. There are some comment threads ongoing but, I don't think any are a blocker.

That said, the plan still is to not merge the RN upgrade until early next year (a couple of weeks away) when more folks will be back from AFK to help with testing and fixing any issue that might crop up. For that, I will not mark this PR as "Approved" so we don't merge it involuntarily.

👍🏻 Makes sense to me.

Using ranges avoids locking third-party projects to a specific version
when consuming the `@wordpress/element` package.
Copy link
Contributor

@mchowning mchowning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really great work @dcalhoun ! 🤩 This was a big undertaking and you did a great job on it. I really appreciated how well you commented your commits for this. Really made reviewing this not-so-small PR much easier! 🙇

I did a full code review and some very limited testing and found no real issues. I left a few minor comments, but nothing blocking. 👍

public void removeListeners(Integer count) {
// Keep: Required for RN built in Event Emitter Calls.
}

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm really surprised that RN is set up so that failing to manually add these empty methods on Android results in a runtime error, but it does appear to be the way to address this. Just adding a couple of links I found useful when digging into this a bit.

facebook/react-native@114be1d
facebook/react-native-website#2791 (comment)

The code related to the comments changed in previous commits.
Copy link
Contributor

@mchowning mchowning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work @dcalhoun ! This is good-to-go from my perspective! 🙌

Copy link
Contributor

@twstokes twstokes left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM from the iOS side @dcalhoun. 👍

@dcalhoun dcalhoun merged commit 04c0dd3 into trunk Jan 3, 2022
@dcalhoun dcalhoun deleted the chore/upgrade-to-react-native-0.66 branch January 3, 2022 21:54
@github-actions github-actions bot added this to the Gutenberg 12.4 milestone Jan 3, 2022
@dcalhoun dcalhoun restored the chore/upgrade-to-react-native-0.66 branch January 5, 2022 19:09
@dcalhoun dcalhoun deleted the chore/upgrade-to-react-native-0.66 branch January 5, 2022 19:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mobile App - i.e. Android or iOS Native mobile impl of the block editor. (Note: used in scripts, ping mobile folks to change)
Projects
None yet
6 participants