Skip to content

docs(oci): relax component version identification rules - #147

Open
piotrjanik wants to merge 2 commits into
open-component-model:mainfrom
piotrjanik:fix/2889-relax-cv-identification
Open

docs(oci): relax component version identification rules#147
piotrjanik wants to merge 2 commits into
open-component-model:mainfrom
piotrjanik:fix/2889-relax-cv-identification

Conversation

@piotrjanik

@piotrjanik piotrjanik commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

What this PR does / why we need it

Requiring the deprecated software.ocm.componentversion annotation on every tagged manifest is too strict: it forces writers to keep emitting a deprecated form and gives readers no sanctioned fallback when it is absent.

This relaxes the OCI storage-backend spec so that annotation becomes optional (MUSTMAY), promotes the component-key annotations to the recommended verification form (MAYSHOULD), and defines a deterministic fallback: when no annotation is present, clients identify a component version by the manifest config media type (current or legacy Gardener/cnudie) and derive the version from the tag. The compatibility section documents the two legacy config media types readers SHOULD accept and writers MUST NOT produce.

Which issue(s) this PR fixes

Fixes: open-component-model/open-component-model#2889

What this PR does / why we need it

Which issue(s) this PR is related to

<!-- markdownlint-disable MD041 -->
#### What this PR does / why we need it

Requiring the deprecated `software.ocm.componentversion` annotation on every
tagged manifest is too strict: it forces writers to keep emitting a deprecated
form and gives readers no sanctioned fallback when it is absent.

This relaxes the OCI storage-backend spec so that annotation becomes optional
(`MUST` → `MAY`), promotes the component-key annotations to the recommended
verification form (`MAY` → `SHOULD`), and defines a deterministic fallback:
when no annotation is present, clients identify a component version by the
manifest config media type (current or legacy Gardener/cnudie) and derive the
version from the tag. The compatibility section documents the two legacy config
media types readers SHOULD accept and writers MUST NOT produce.

#### Which issue(s) this PR fixes

Fixes: https://github.com/open-component-model/ocm-spec/issues/2889
Signed-off-by: Piotr Janik <piotr.janik@sap.com>
@piotrjanik
piotrjanik requested a review from a team as a code owner July 27, 2026 08:05
Comment thread doc/04-extensions/03-storage-backends/oci.md
Signed-off-by: Piotr Janik <piotr.janik@sap.com>
@piotrjanik
piotrjanik requested a review from a team July 28, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Listing of Component Versions Fails if software.ocm.componentversion Annotation is Missing

2 participants