Skip to content

Update platform SDKs, protocol compatibility, and release tooling - #986

Open
markmur wants to merge 2 commits into
mainfrom
sync-sdk-updates-2026-10-16
Open

markmur wants to merge 2 commits into
mainfrom
sync-sdk-updates-2026-10-16

Conversation

@markmur

@markmur markmur commented Oct 16, 2026

Copy link
Copy Markdown
Contributor

Updates the platform SDKs and Embedded Checkout Protocol models, and adds per-platform release notes and versioning tooling.

  • Extract Android checkout into a feature module bundled in the existing com.shopify:checkout-kit artifact. Public imports move to com.shopify.checkoutkit.checkout, with updated resources, samples, and publication checks.
  • Introduce Swift appearance-owned color palettes, fix SwiftUI swipe-dismissal callbacks, and make protocol-routing APIs implementation details. Preserve the previous SwiftUI checkout names through deprecated compatibility aliases.
  • Upgrade the React Native workspace and sample to 0.87.1, update dependencies, and configure the iOS SDK on the main actor.
  • Update protocol model construction and preserve unknown string values, with regenerated API baselines and consumer compatibility checks.
  • Add per-platform Changesets tooling and changelogs, improve package-size job selection, and support explicit device selection in local development commands.

Android imports, Swift appearance configuration and protocol-routing APIs, and direct protocol-model construction require migration. The accompanying documentation describes the new APIs. Existing native dependency pins remain unchanged; this PR does not publish packages or create release tags.

@github-actions github-actions Bot added the #gsd:50662 Rebase Checkout Kit on UCP label Oct 16, 2026
@markmur markmur self-assigned this Oct 16, 2026
@markmur
markmur marked this pull request as ready for review October 16, 2026 09:34
@markmur
markmur requested a review from a team as a code owner October 16, 2026 09:34
@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Coverage Report

Status Platform / target Lines Branches Functions Report
✅ Web 97.57% 86.35% 96% Full report
✅ React Native 95.08% 89.13% 100% Full report
✅ Embedded Checkout Protocol (TS) 94.51% 89.06% 91.67% Full report

@bitrise

bitrise Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Bitrise builds

E2E · iOS CI

Install this build

Open Tophat, select your target device, then click Install. Links open on the Mac running Tophat.

SDK Install
React Native Install with Tophat
Swift Install with Tophat
Kotlin Install with Tophat

Checkout Kit E2E results

Status Tags Target Platform OS version tag Device
✅ launch, checkout-presentation, checkout-completion, buyer-identity react-native ios latest iPhone 15
iOS 27 Beta
✅ launch, checkout-presentation, checkout-completion, buyer-identity react-native android latest Google Pixel 9
Android 17.0
❌ launch, checkout-presentation, checkout-completion, buyer-identity, preload kotlin android latest Google Pixel 9
Android 17.0
✅ launch, checkout-presentation, checkout-completion, buyer-identity, preload swift ios latest iPhone 15
iOS 27 Beta

Failures

Caution

If you believe an assertion is flaky, please raise a ticket in the #checkout-kit-devs channel so it can be addressed.

BrowserStack artifacts require BrowserStack access. Sign in to BrowserStack App Automate before opening artifact links.

Android — kotlin

Test Status Artifacts
./tests/shared/checkout-guest ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/checkout-guest_bstackretry1 ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/native-preload-ready ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/native-preload-ready_bstackretry1 ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/checkout-hardcoded-buyer-identity ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/checkout-hardcoded-buyer-identity_bstackretry1 ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/checkout-present-and-close ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log
./tests/shared/checkout-present-and-close_bstackretry1 ❌ BrowserStack · Video · Screenshot · Maestro commands · Maestro log

@github-actions

github-actions Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

Bundle Size Budgets

Budget Size Limits Result
Web JavaScript (uncompressed) 35.81 KiB (0 B) 35 KiB soft / 50 KiB hard ➖ Above budget; no increase
React Native npm package (gzip) 120.83 KiB (+186 B) 130 KiB soft / 150 KiB hard ✅ Within budget
Android AAR package (ZIP) 424.24 KiB (+1.98 KiB) 450 KiB soft / 500 KiB hard ✅ Within budget

Bundle and package size

Web bundle sizes cover shipped runtime JavaScript. Package sizes cover the full published archive, including any source maps, declarations, and documentation it contains.

Platform Measurement Compression Base Head Delta
Web JavaScript bundle Uncompressed 35.8 KiB 35.8 KiB 0 B
Web JavaScript bundle gzip 11.2 KiB 11.2 KiB 0 B
Web npm package (.tgz) gzip 100.1 KiB 99.9 KiB -184 B
React Native npm package (.tgz) gzip 120.6 KiB 120.8 KiB +186 B
Android Library package (.aar) ZIP 422.3 KiB 424.2 KiB +2.0 KiB
Web package files (uncompressed)

These are uncompressed file sizes; they do not sum to the compressed package size above.

File Base Head Delta
dist/chunks/shopify-checkout.js.map 267.6 KiB 267.0 KiB -650 B
dist/custom-elements.json 54.6 KiB 54.6 KiB 0 B
dist/index.d.ts 46.9 KiB 46.9 KiB +80 B
dist/chunks/shopify-checkout.js 35.4 KiB 35.4 KiB 0 B
README.md 25.0 KiB 25.0 KiB 0 B
package.json 4.3 KiB 4.3 KiB +1 B
LICENSE 1.1 KiB 1.1 KiB 0 B
dist/shopify-checkout.js.map 741 B 741 B 0 B
dist/index.js 255 B 255 B 0 B
dist/shopify-checkout.js 156 B 156 B 0 B
dist/shopify-checkout.d.ts 33 B 33 B 0 B
React Native package files (uncompressed)

These are uncompressed file sizes; they do not sum to the compressed package size above.

File Base Head Delta
node_modules/@shopify/checkout-kit-protocol/src/generated/Models.ts 108.7 KiB 108.2 KiB -562 B
node_modules/@shopify/checkout-kit-protocol/src/generated/Models.d.ts 73.1 KiB 73.2 KiB +176 B
lib/index.cjs 52.8 KiB 52.8 KiB -23 B
lib/index.js 51.9 KiB 51.9 KiB -23 B
README.md 43.6 KiB 43.7 KiB +36 B
lib/index.cjs.map 28.1 KiB 28.1 KiB -33 B
lib/index.js.map 27.9 KiB 27.9 KiB -37 B
lib/index.d.ts 24.6 KiB 24.6 KiB 0 B
android/src/main/java/com/shopify/reactnative/checkoutkit/ShopifyCheckoutKitModule.java 17.7 KiB 17.7 KiB 0 B
ios/ShopifyCheckoutKit.swift 14.8 KiB 15.4 KiB +651 B
ios/AcceleratedCheckoutButtons.swift 14.8 KiB 14.8 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolNotifications.ts 9.7 KiB 9.7 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/protocol_codec_runtime.ts 7.9 KiB 7.9 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolRenameMap.ts 7.9 KiB 7.9 KiB 0 B
android/src/main/java/com/shopify/reactnative/checkoutkit/CustomCheckoutListener.java 6.2 KiB 6.2 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/generated/ProtocolNotifications.d.ts 5.7 KiB 5.7 KiB 0 B
ios/ShopifyCheckoutKit.mm 5.1 KiB 5.1 KiB 0 B
package.json 4.5 KiB 4.5 KiB +38 B
android/build.gradle 4.1 KiB 4.1 KiB 0 B
node_modules/@shopify/checkout-kit-protocol/src/client.ts 3.6 KiB 3.6 KiB 0 B
…and 37 smaller files
Android package files (uncompressed)

These are uncompressed file sizes; they do not sum to the compressed package size above.

File Base Head Delta
classes.jar 450.5 KiB 459.2 KiB +8.7 KiB
res/layout/checkout_view_content.xml 2.6 KiB 2.6 KiB -1 B
res/layout/checkout_sheet_content.xml 2.0 KiB 2.0 KiB +38 B
res/values/values.xml 1.3 KiB 1.4 KiB +27 B
R.txt 1.2 KiB 1.2 KiB +21 B
AndroidManifest.xml 922 B 922 B 0 B
proguard.txt 798 B 826 B +28 B
res/drawable/close.xml 431 B — -431 B
res/drawable/checkout_close.xml — 431 B +431 B
res/menu/checkout_menu.xml 354 B 351 B -3 B
META-INF/com/android/build/gradle/aar-metadata.properties 157 B 179 B +22 B
META-INF/MANIFEST.MF — 25 B +25 B
How sizes are measured

Measured from the PR base SHA and PR head SHA. Web bundle rows sum shipped .js, .mjs, and .cjs files under dist/, excluding source maps and declarations. The gzip bundle size sums files compressed individually with gzip -n -9. npm package sizes are gzip-compressed .tgz archives; Android AAR sizes are ZIP archives. Package sizes are not final app binary sizes.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

#gsd:50662 Rebase Checkout Kit on UCP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants