[Protocol] Adopt UCP 2026-08-25 across Checkout Kit - #794
Open
adrian-augustyn wants to merge 1 commit into
Open
adrian-augustyn wants to merge 1 commit into
adrian-augustyn wants to merge 1 commit into
Conversation
Assisted-By: devx/9ecb7751-82f9-4062-885f-a23b95dfc4a7
Package Size
Web file breakdown
React Native file breakdown
Android file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes are you making?
Checkout-web already understands UCP August when a client asks for it. Before this change, Checkout Kit still asked for April and used models generated from the April specification. This PR updates the Checkout Kit side: Web, Swift, and Android request
2026-08-25, and their generated models understand the August response.The change also keeps focused support for older April messages that Checkout Kit may still encounter. This is compatibility when reading JSON from checkout-web; it does not mean that every application using the generated models will compile unchanged. This PR does not publish packages or change released dependency versions.
ucp@v2026-08-25, resolved tocd78fb38e819de77d9b527d110476eccb876f1bd.What changed?
ec_version=2026-08-25in the checkout URL. Checkout Kit replaces older or duplicate values already present in that URL.Measure,ConstraintExpression, andConstraintProperty. They also ensure Swift and Kotlin retain business-specific JSON fields where the protocol allows them. Generation stops with a clear error if an upstream change invalidates any of these assumptions.FulfillmentOption.descriptionand convert it to the currentDescriptionobject withplainset. Encoding that value again produces{ "plain": "…" }; it does not recreate the old string form.The separate public-event redesign in #748 is not part of this change.
Compatibility and public API impact
Compatibility tests run the same example April and August checkout messages through TypeScript, Swift, and Kotlin. Those examples decode successfully. This does not prove that every historical message works, or that code using the generated models will compile without changes.
map_order, structured descriptions, business-location destinations, and new fulfillment values such asdrone_delivery.typefield added in August, and old description strings becomeDescription.plain.shippingandpickup. Code that directly uses the old enum cases or exhaustive switches must change.FulfillmentOption.descriptionchanges from a string to the structuredDescriptiontype.copyfunctions, and component functions change where August adds fields.ConstraintExpressionandConstraintProperty.These source changes affect code that directly constructs or inspects the generated protocol models. Applications using only higher-level Checkout Kit APIs may be unaffected.
Swift and Kotlin protocol API reports were regenerated and reviewed. The Android Checkout Kit API, other Swift module reports, React Native API report, published native SDK pointers, and release coordinates remain unchanged.
How was this tested?
Local verification for this change includes:
git diff --checkpasses.The all-in-one
dev protocol checkreaches its standalone macOS Swift test, compiles successfully, and then exits without diagnostics because of a local test-runner problem. The same Swift compatibility and package suites pass through the simulator-backed runner.Where should reviewers focus?
protocol/scripts/.The 99 pinned schema files are an upstream import rather than hand-written Checkout Kit code.
dev protocol check-upstreamverifies that they exactly match the selected UCP commit.Merge requirements
2026-08-25; rendering through the April fallback is not sufficient evidence.Package publication and release coordination happen separately from this PR.
Supersedes #765, which contains the initial review discussion. The branch was moved into
Shopify/checkout-kitso the repository's full CI can run.