Skip to content

docs: explain protocol vs capability versioning - #418

Closed
ptiper wants to merge 10 commits into
Universal-Commerce-Protocol:mainfrom
ptiper:docs/update-versioning-docs
Closed

docs: explain protocol vs capability versioning#418
ptiper wants to merge 10 commits into
Universal-Commerce-Protocol:mainfrom
ptiper:docs/update-versioning-docs

Conversation

@ptiper

@ptiper ptiper commented May 7, 2026

Copy link
Copy Markdown
Contributor

Description

  • Update versioning.md with high-level two-tiered versioning concepts.
  • Link to detailed specifications in overview.md to avoid duplication.
  • Add protocol compatibility alert and negotiation links in overview.md.
  • Fix markdown formatting to pass lint checks.

Category (Required)

  • Core Protocol: Changes to the base communication layer, global context, or breaking refactors. (Requires Technical Council approval)
  • Governance/Contributing: Updates to GOVERNANCE.md, CONTRIBUTING.md, or CODEOWNERS. (Requires Governance Council approval)
  • Capability: New schemas (Discovery, Cart, etc.) or extensions. (Requires Maintainer approval)
  • Documentation: Updates to README, or documentations regarding schema or capabilities. (Requires Maintainer approval)
  • Infrastructure: CI/CD, Linters, or build scripts. (Requires DevOps Maintainer approval)
  • Maintenance: Version bumps, lockfile updates, or minor bug fixes. (Requires DevOps Maintainer approval)
  • SDK: Language-specific SDK updates and releases. (Requires DevOps Maintainer approval)
  • Samples / Conformance: Maintaining samples and the conformance suite. (Requires Maintainer approval)
  • UCP Schema: Changes to the ucp-schema tool (resolver, linter, validator). (Requires Maintainer approval)
  • Community Health (.github): Updates to templates, workflows, or org-level configs. (Requires DevOps Maintainer approval)

Checklist

  • I have followed the Contributing Guide.
  • I have updated the documentation (if applicable).
  • My changes pass all local linting and formatting checks.
  • (For Core/Capability) I have included/updated the relevant JSON schemas.
  • I have regenerated Python Pydantic models by running generate_models.sh under python_sdk.

Screenshots / Logs (if applicable)

Screenshot 2026-05-07 at 10 13 31 image

@ptiper
ptiper requested review from a team as code owners May 7, 2026 08:13
@ptiper
ptiper requested review from jingyli, knightlin-shopify, pemamian, westeezy and wry-ry and removed request for knightlin-shopify, pemamian and westeezy May 7, 2026 08:13
- Update versioning.md with high-level two-tiered versioning concepts.

- Link to detailed specifications in overview.md to avoid duplication.

- Add protocol compatibility alert and negotiation links in overview.md.

- Fix markdown formatting to pass lint checks.
@ptiper
ptiper force-pushed the docs/update-versioning-docs branch from 4073c07 to b720e36 Compare May 7, 2026 08:51
@ptiper

ptiper commented May 22, 2026

Copy link
Copy Markdown
Contributor Author

@jingyli @wry-ry (testing if tagging notifications work for you)

@damaz91 damaz91 added the documentation Improvements or additions to documentation label Jun 23, 2026
damaz91
damaz91 previously approved these changes Jun 23, 2026

@jingyli jingyli left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

The line wrapping behaviour in the PR looks a bit odd when viewing against the existing contents we have in the documentation. Curious if this is intended from lint? Or should we make it more consistent with the rest of the file..?

Comment thread docs/versioning.md Outdated
@igrigorik igrigorik added this to the Working Draft milestone Jun 25, 2026
Replace the two-tiered framing in versioning.md with a three-layer model
- transport bindings, core protocol, capabilities and extensions - and
reconcile the parallel paragraph in overview.md §Version Negotiation,
which previously said the protocol version "governs ... transport
bindings". That phrasing contradicts the existing line in §Independent
Component Versioning: "Transports MAY define their own version handling
mechanisms."

The three-layer model matches what the schema and the negotiation
algorithm already do:

- Transport: each service entry declares its own `version`. The wire
  contract lives in the OpenAPI/OpenRPC/Agent Card document at the
  service entry's `schema` field. Not consumed by the intersection
  algorithm; transports MAY evolve independently.
- Core protocol (`ucp.version`): cross-cutting mechanisms shared by every
  transport binding - discovery, negotiation flow, signatures, profile
  structure, error envelope. Pre-negotiation gate; mismatch returns
  `version_unsupported`.
- Capabilities and extensions: each capability entry declares its own
  `version`. Intersected at negotiation; the highest mutual version
  wins, and extensions MAY declare `requires.protocol` and
  `requires.capabilities` constraints to further filter the active set.

Also:

- Fixes a broken cross-reference in versioning.md
  (`specification/overview.md#capability-versions` -> `#version-negotiation`).
- Hard-wraps the Protocol Compatibility Constraint IMPORTANT callout in
  overview.md §Capability Versions to match the file's ~80-col
  convention and the existing `> [!NOTE]` style in split-payments.md.
@igrigorik
igrigorik force-pushed the docs/update-versioning-docs branch from 33474c4 to 6f6282d Compare June 25, 2026 07:23
Comment thread docs/specification/overview.md Outdated
@damaz91
damaz91 requested a review from jingyli June 30, 2026 12:06
@damaz91
damaz91 dismissed their stale review July 6, 2026 07:52

on hold for now

@igrigorik igrigorik added the TC review Ready for TC review label Jul 6, 2026
@igrigorik

Copy link
Copy Markdown
Contributor

Closing, let's continue in #614.

@igrigorik igrigorik closed this Jul 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation status:under-review TC review Ready for TC review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants