Skip to content

v0.19.0

Choose a tag to compare

@tomtom87 tomtom87 released this 09 Oct 06:13
· 37 commits to main since this release

portage-ucp now speaks UCP 2026-08-25, the version live Shopify stores already serve. Before this, a strict 2026-08-25 client couldn't find our signing keys.

  • portage-ucp 0.14.0.
    • Breaking: the manifest puts keys (a JWK Set) at the document root; ucp.signing_keys is gone. Anything that reads signing keys must read keys instead. Each key needs a kid.
    • Breaking: config.payment_handlers is now a Hash of reverse-domain-key => [entry, ...], and each entry carries an id. The default is {}; an Array no longer works. config.services arrays still work.
    • Changed: the UCP version is 2026-08-25 in the manifest, WireEnvelope and the SchemaValidator default. Services, capabilities and payment handlers are keyed by reverse-domain name and carry date versions, and the whole manifest validates against the 2026-08-25 business profile schema.
    • Changed: FulfillmentOption sends description as an object rather than a bare string, as 2026-08-25 requires.
    • Removed: the vendored 2026-04-08 schemas. portage-ucp-client reads remote profiles without vendored schemas, so stores still serving 2026-04-08 keep working.

Every other gem and both plugins are unchanged. Their portage-ucp constraints already allow 0.14.