docs(split-payments): validate the allowed_combinations profile example - #658
docs(split-payments): validate the allowed_combinations profile example#658vishkaty wants to merge 2 commits into
Conversation
|
A gentle note on this and its sibling docs and schema PRs (#659, #660, #661, #662, #669, #670, plus #625): all eight are rebased onto current main, conflict free, and validate_examples passes on each. They are independent of one another, so they can be reviewed in any order or batched, whatever is easiest. Happy to adjust any of them. |
|
Following up on this docs and schema batch (#658, #659, #660, #661, #662, #669, #670, #625): all eight are still green on current main, conflict free, and independent, so any subset can be merged in any order. If the batch size is the awkward part, I am glad to fold the docs-only ones into a single PR to cut the review overhead, whatever is easiest on your side. No urgency at all, just flagging they are ready whenever the queue allows. Thanks @damaz91. |
|
@jingyli you are a requested reviewer here, so flagging this quiet one. Small fix so the split payments profile example actually validates against the profile schema. Glad to adjust anything. |
|
@knightlin-shopify I am supportive of fixing this example - could you please review? |
ddb1b81 to
82d20c2
Compare
The only business-profile example for the split payments extension was
annotated `ucp:example skip`, so CI never checked it, and it did not match
the profile schema three ways: `capabilities` was an array where the schema
defines an object map keyed by reverse-domain name, the entry omitted the
required `schema` URL, and it pinned `version: 2026-01-23`, a release that
does not contain this extension.
Rewrite the example in the `ucp.capabilities` map form with `spec`, `schema`,
`extends`, and `{{ ucp_version }}`, mirroring the buyer-consent profile
example, and replace the skip with a validated
`schema=profile def=business_schema` annotation so CI covers it going forward.
Full corpus: 283 passed (was 282), 47 skipped (was 48).
82d20c2 to
bd08cce
Compare
The example wrote the pre reorganization flat path. Every extension profile on current main carries the full reorganized path, so the example now matches, specification/payment/extensions/split-payments.
|
Updated the spec URL in the example to the post-reorganization path, specification/payment/extensions/split-payments, matching what the other extension profiles carry on current main. The rest of the example is unchanged. |
Problem
The only business-profile example for the split payments extension is annotated
<!-- ucp:example skip -->, so CI never validates it, and it does not match the profile schema in three ways:capabilitiesis an array, butucp.jsondefines it as an object map keyed by reverse-domain name.schemaURL (capability.jsonbusiness_schemarequiresschema)."version": "2026-01-23", a release that does not contain this extension.Validating the fragment against the profile schema fails on the
capabilitiestype and then on the missingschemaproperty; it passes once rewritten as a map with aschemaURL.Fix
Rewrite the example in the
ucp.capabilitiesmap form withspec,schema,extends, and{{ ucp_version }}, mirroring the buyer-consent profile example, and replace theskipannotation with a validatedschema=profile def=business_schemaannotation so CI covers it going forward.extends: ["dev.ucp.shopping.checkout"]reflectssplit_payments.json'srequireson checkout.Verification
scripts/validate_examples.pyfull corpus goes from 343 to 344 passing (50 to 49 skipped): the example flips from skipped to validated.ucp-schema lint source/unaffected.