Skip to content

feat!: bump to v4.0.0 (New Architecture Release)#467

Open
kieran-osgood-shopify wants to merge 3 commits intokieran-osgood/03-30-featreplaceinteropwithnewarchcodefrom
cx-rn-new-arch-v4
Open

feat!: bump to v4.0.0 (New Architecture Release)#467
kieran-osgood-shopify wants to merge 3 commits intokieran-osgood/03-30-featreplaceinteropwithnewarchcodefrom
cx-rn-new-arch-v4

Conversation

@kieran-osgood-shopify
Copy link
Copy Markdown
Contributor

@kieran-osgood-shopify kieran-osgood-shopify commented Apr 16, 2026

v4.0.0 — React Native New Architecture

v4 is a breaking release. The library now requires the React Native
New Architecture (TurboModules + Fabric) and no longer supports the
legacy bridge. Apps that are still on the old architecture should stay
on the 3.x line.

Changelog

Breaking changes

New Architecture is now required.

Several promise-returning APIs are now synchronous. Drop await
from call sites:

API Before After
getConfig() Promise<Configuration> Configuration
setConfig(config) Promise<void> void
configureAcceleratedCheckouts(config) Promise<boolean> boolean
isAcceleratedCheckoutAvailable() Promise<boolean> boolean
isApplePayAvailable() Promise<boolean> boolean
- const config = await shopify.getConfig();
+ const config = shopify.getConfig();

- await shopify.setConfig({preloading: true});
+ shopify.setConfig({preloading: true});

- const available = await shopify.isAcceleratedCheckoutAvailable();
+ const available = shopify.isAcceleratedCheckoutAvailable();

Under the hood

  • Native modules migrated from legacy bridge (RCT_EXTERN_MODULE / ReactPackage) to TurboModules (NativeShopifyCheckoutSheetKitSpecBase on iOS, TurboReactPackage on Android).
  • Old-architecture conditional code paths removed from RNShopifyCheckoutSheetKit.podspec and Android build.gradle.
  • AcceleratedCheckoutButtons now registered via codegenNativeComponent.
  • Added runtime coercion for colorScheme / logLevel values returned by getConfig() — unknown values from native now fall back to safe defaults (automatic / error) rather than silently passing through as untyped strings.

Migration checklist

  • Enable New Architecture in your app (see React Native docs)
  • Remove await from the five APIs listed above
  • Reinstall pods: cd ios && bundle exec pod install

Copy link
Copy Markdown
Contributor Author

kieran-osgood-shopify commented Apr 16, 2026

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 16, 2026

Coverage Report

Lines Statements Branches Functions
Coverage: 99%
99.53% (213/214) 95.96% (119/124) 100% (64/64)

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from b78d8d1 to ead781e Compare April 16, 2026 16:21
@kieran-osgood-shopify kieran-osgood-shopify marked this pull request as ready for review April 16, 2026 17:06
@kieran-osgood-shopify kieran-osgood-shopify requested a review from a team as a code owner April 16, 2026 17:06
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the cx-rn-new-arch-v4 branch 2 times, most recently from 771ea81 to 7abe062 Compare April 17, 2026 08:27
@kieran-osgood-shopify kieran-osgood-shopify changed the title feat!: bump to v4.0.0 for New Architecture clean break feat!: bump to v4.0.0 (New Architecture Release) Apr 17, 2026
Comment thread README.md Outdated
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 49c3334 to bc90cac Compare April 17, 2026 08:45
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the cx-rn-new-arch-v4 branch 2 times, most recently from 6e3733e to 255301a Compare April 17, 2026 08:47
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from bc90cac to ec03ad1 Compare April 17, 2026 08:55
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from ec03ad1 to bbe259c Compare April 17, 2026 09:00
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the cx-rn-new-arch-v4 branch 2 times, most recently from ad74867 to f7678ce Compare April 17, 2026 09:06
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from bbe259c to 07d29f6 Compare April 17, 2026 09:06
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 07d29f6 to ba34eac Compare April 17, 2026 09:16
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from ba34eac to 9c8a074 Compare April 17, 2026 09:22
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 9c8a074 to 4be033f Compare April 17, 2026 09:31
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 4be033f to 83db6fb Compare April 17, 2026 13:33
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 83db6fb to d45eb12 Compare April 20, 2026 14:41
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the cx-rn-new-arch-v4 branch 2 times, most recently from 8e5b2bf to d90511c Compare April 27, 2026 11:56
Comment thread dev.yml Outdated

type: node

minimum_dependency_age:
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is removed in the upstack pnpm -> yarn migration - added to avoid having to move that migration in front of the new arch work

@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch 2 times, most recently from fa18e5f to 0d43f55 Compare May 5, 2026 16:00
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from 0d43f55 to dc837d5 Compare May 5, 2026 17:17
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the cx-rn-new-arch-v4 branch 3 times, most recently from d329e98 to fb44c4e Compare May 5, 2026 17:52
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from dc837d5 to bf8dba6 Compare May 5, 2026 17:52
kieran-osgood-shopify and others added 2 commits May 5, 2026 17:04
BREAKING CHANGE: This library now requires React Native New Architecture.
Consumers must have newArchEnabled=true (Android) and
new_arch_enabled: true (iOS Podfile). Old architecture is no longer
supported.

- Bump version to 4.0.0
- Update test mocks to use TurboModuleRegistry instead of NativeModules

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add a Version Compatibility table so consumers can see at a glance which
package line targets which React Native architecture, and include setup
steps for enabling the New Architecture on both platforms.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@kieran-osgood-shopify kieran-osgood-shopify force-pushed the kieran-osgood/03-30-featreplaceinteropwithnewarchcode branch from bf8dba6 to 6ddb3e2 Compare May 5, 2026 21:07
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants