Skip to content

Commit 47c4ac4

Browse files
feat: register UpperCamelCase as primary type for input types (skip localBlob so far) (open-component-model#2057)
On-behalf-of: Gerald Morrison (SAP) <gerald.morrison@sap.com> <!-- markdownlint-disable MD041 --> ## Summary Register UpperCamelCase forms as the primary (default) serialization type for all input types, consistent with the existing convention used by access OCIImage/v1, Helm/v1 etc. ## Changes: - Input types: File/v1 (was file/v1), Dir/v1 (was dir/v1), UTF8/v1 (was utf8/v1), Helm/v1 (was helm/v1) **The localBlob/v1 access type IS NOT touched in the PR.**, but already prepared (including updating all tests using the new types) in [this branch](https://github.com/morri-son/open-component-model/tree/align-type-notation-for-acces-and-input). Lowercase forms remain registered as backward-compatible aliases so existing component descriptors and constructors continue to work. Adds named constants (Type, LegacyType) to each spec package following the pattern already established by access type packages. Also adds Type constants for OCIImage, OCIImageLayer, and Helm access types where hardcoded strings were previously used in schema registrations. ## Which issue(s) this PR fixes Usage: Fixes open-component-model/ocm-project#962 ## Dependencies Tests for type casing have been split off to PR open-component-model#2071 to get the CI test not failing. ## Related - ocm-spec: open-component-model/ocm-spec#141 - ocm v1: open-component-model/ocm#1881 - ocm-website: open-component-model#2244 ## Verification - [x] I have tested the changes locally by running `ocm` --------- Signed-off-by: Gerald Morrison (SAP) <gerald.morrison@sap.com> Co-authored-by: Gerald Morrison (SAP) <gerald.morrison@sap.com> 7756429
1 parent d8f4a1a commit 47c4ac4

157 files changed

Lines changed: 2990 additions & 2263 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

blog/2026-03-16-ocm-controllers-differences/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!doctype html><html lang=en-US data-bs-theme=auto><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-regular.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-500.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-700.woff2 as=font type=font/woff2 crossorigin><script src=/js/color-mode.fd05c511a384da3eac9cca269480e1980c7c951352005e39c76a621b8d8a53ee.js integrity="sha256-/QXFEaOE2j6snMomlIDhmAx8lRNSAF45x2piG42KU+4="></script><link rel=stylesheet href="/main.9cadf411feebafed799c0270bd4a168a4b87f45bd307be149df5e90b4cb866d05abdfa8e2a4ef630fbfabbe42c6dc3edadf6a0ab854f30f5e712bb007c41d4bc.css" integrity="sha512-nK30Ef7rr+15nAJwvUoWikuH9FvTB74UnfXpC0y4ZtBavfqOKk72MPv6u+QsbcPtrfagq4VPMPXnErsAfEHUvA==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><base href=https://ocm.software/blog/2026-03-16-ocm-controllers-differences/><link rel=canonical href=https://ocm.software/blog/2026-03-16-ocm-controllers-differences/><title>What changed between legacy and new OCM Controllers | Open Component Model</title><meta name=description content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><link rel=icon href=/favicon.ico sizes=32x32><link rel=icon href=/favicon.svg type=image/svg+xml><link rel=apple-touch-icon href=/apple-touch-icon.png sizes=180x180 type=image/png><link rel=icon href=/favicon-192x192.png sizes=192x192 type=image/png><link rel=icon href=/favicon-512x512.png sizes=512x512 type=image/png><link rel=manifest href=/manifest.webmanifest><meta property="og:url" content="https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"><meta property="og:site_name" content="Open Component Model"><meta property="og:title" content="What changed between legacy and new OCM Controllers"><meta property="og:description" content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><meta property="og:locale" content="en_US"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2026-03-16T10:00:00+01:00"><meta property="article:modified_time" content="2026-03-16T10:00:00+01:00"><meta property="article:tag" content="Kubernetes"><meta name=twitter:card content="summary"><meta name=twitter:title content="What changed between legacy and new OCM Controllers"><meta name=twitter:description content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://ocm.software/","name":"Open Component Model","position":1},{"@type":"ListItem","item":"https://ocm.software/blog/","name":"Blog","position":2},{"@type":"ListItem","name":"What Changed Between Legacy and New Ocm Controllers","position":3}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","headline":"What changed between legacy and new OCM Controllers","description":"Learn about the differences in concept and architecture of legacy and new OCM Controllers","isPartOf":{"@id":"https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"},"mainEntityOfPage":{"@id":"https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"},"datePublished":"2026-03-16T10:00:00+01:00","dateModified":"2026-03-16T10:00:00+01:00","author":{"@type":"Organization","name":"Open Component Model","url":"https://ocm.software/"},"publisher":{"@type":"Organization","name":"Open Component Model"}}]}</script></head><body data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><header class=header><nav class="navbar navbar-expand-lg"><div class=container-fluid><a class=navbar-brand href=/><img src=/images/base.svg alt="Open Component Model Logo" width=48 height=48 class=d-inline-block>
1+
<!doctype html><html lang=en-US data-bs-theme=auto><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-regular.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-500.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-700.woff2 as=font type=font/woff2 crossorigin><script src=/js/color-mode.fd05c511a384da3eac9cca269480e1980c7c951352005e39c76a621b8d8a53ee.js integrity="sha256-/QXFEaOE2j6snMomlIDhmAx8lRNSAF45x2piG42KU+4="></script><link rel=stylesheet href="/main.9cadf411feebafed799c0270bd4a168a4b87f45bd307be149df5e90b4cb866d05abdfa8e2a4ef630fbfabbe42c6dc3edadf6a0ab854f30f5e712bb007c41d4bc.css" integrity="sha512-nK30Ef7rr+15nAJwvUoWikuH9FvTB74UnfXpC0y4ZtBavfqOKk72MPv6u+QsbcPtrfagq4VPMPXnErsAfEHUvA==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><base href=https://ocm.software/blog/2026-03-16-ocm-controllers-differences/><link rel=canonical href=https://ocm.software/blog/2026-03-16-ocm-controllers-differences/><title>What changed between legacy and new OCM Controllers | Open Component Model</title><meta name=description content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><link rel=icon href=/favicon.ico sizes=32x32><link rel=icon href=/favicon.svg type=image/svg+xml><link rel=apple-touch-icon href=/apple-touch-icon.png sizes=180x180 type=image/png><link rel=icon href=/favicon-192x192.png sizes=192x192 type=image/png><link rel=icon href=/favicon-512x512.png sizes=512x512 type=image/png><link rel=manifest href=/manifest.webmanifest><meta property="og:url" content="https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"><meta property="og:site_name" content="Open Component Model"><meta property="og:title" content="What changed between legacy and new OCM Controllers"><meta property="og:description" content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><meta property="og:locale" content="en_US"><meta property="og:type" content="article"><meta property="article:section" content="blog"><meta property="article:published_time" content="2026-03-16T10:00:00+01:00"><meta property="article:modified_time" content="2026-03-16T10:00:00+01:00"><meta property="article:tag" content="Kubernetes"><meta name=twitter:card content="summary"><meta name=twitter:title content="What changed between legacy and new OCM Controllers"><meta name=twitter:description content="Learn about the differences in concept and architecture of legacy and new OCM Controllers"><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://ocm.software/","name":"Open Component Model","position":1},{"@type":"ListItem","item":"https://ocm.software/blog/","name":"Blog","position":2},{"@type":"ListItem","name":"What Changed Between Legacy and New Ocm Controllers","position":3}]}</script><script type=application/ld+json>{"@context":"https://schema.org","@graph":[{"@type":"BlogPosting","headline":"What changed between legacy and new OCM Controllers","description":"Learn about the differences in concept and architecture of legacy and new OCM Controllers","isPartOf":{"@id":"https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"},"mainEntityOfPage":{"@id":"https://ocm.software/blog/2026-03-16-ocm-controllers-differences/"},"datePublished":"2026-03-16T10:00:00+01:00","dateModified":"2026-03-16T10:00:00+01:00","author":{"@type":"Organization","name":"Open Component Model","url":"https://ocm.software/"},"publisher":{"@type":"Organization","name":"Open Component Model"}}]}</script><link rel=alternate type=application/rss+xml title="OCM Blog" href=https://ocm.software/blog/index.xml></head><body data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><header class=header><nav class="navbar navbar-expand-lg"><div class=container-fluid><a class=navbar-brand href=/><img src=/images/base.svg alt="Open Component Model Logo" width=48 height=48 class=d-inline-block>
22
<span class="ms-2 fw-bold"><span class=word>Open</span>
33
<span class=word>Component</span>
44
<span class=word>Model</span>

blog/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!doctype html><html lang=en-US data-bs-theme=auto><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-regular.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-500.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-700.woff2 as=font type=font/woff2 crossorigin><script src=/js/color-mode.fd05c511a384da3eac9cca269480e1980c7c951352005e39c76a621b8d8a53ee.js integrity="sha256-/QXFEaOE2j6snMomlIDhmAx8lRNSAF45x2piG42KU+4="></script><link rel=stylesheet href="/main.9cadf411feebafed799c0270bd4a168a4b87f45bd307be149df5e90b4cb866d05abdfa8e2a4ef630fbfabbe42c6dc3edadf6a0ab854f30f5e712bb007c41d4bc.css" integrity="sha512-nK30Ef7rr+15nAJwvUoWikuH9FvTB74UnfXpC0y4ZtBavfqOKk72MPv6u+QsbcPtrfagq4VPMPXnErsAfEHUvA==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><base href=https://ocm.software/blog/><link rel=canonical href=https://ocm.software/blog/><link rel=alternate type=application/rss+xml href=https://ocm.software/blog/index.xml title="Blog | Open Component Model"><link rel=sitemap type=application/xml href=https://ocm.software/blog/sitemap.xml title="Blog | Open Component Model"><title>Blog | Open Component Model</title><meta name=description content="News, updates, and insights about the Open Component Model."><link rel=icon href=/favicon.ico sizes=32x32><link rel=icon href=/favicon.svg type=image/svg+xml><link rel=apple-touch-icon href=/apple-touch-icon.png sizes=180x180 type=image/png><link rel=icon href=/favicon-192x192.png sizes=192x192 type=image/png><link rel=icon href=/favicon-512x512.png sizes=512x512 type=image/png><link rel=manifest href=/manifest.webmanifest><meta property="og:url" content="https://ocm.software/blog/"><meta property="og:site_name" content="Open Component Model"><meta property="og:title" content="Blog"><meta property="og:description" content="News, updates, and insights about the Open Component Model."><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="News, updates, and insights about the Open Component Model."><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://ocm.software/","name":"Open Component Model","position":1},{"@type":"ListItem","name":"Blog","position":2}]}</script></head><body data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><header class=header><nav class="navbar navbar-expand-lg"><div class=container-fluid><a class=navbar-brand href=/><img src=/images/base.svg alt="Open Component Model Logo" width=48 height=48 class=d-inline-block>
1+
<!doctype html><html lang=en-US data-bs-theme=auto><head><meta charset=utf-8><meta http-equiv=x-ua-compatible content="ie=edge"><meta name=viewport content="width=device-width,initial-scale=1"><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-regular.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-500.woff2 as=font type=font/woff2 crossorigin><link rel=preload href=https://ocm.software/fonts/vendor/jost/jost-v4-latin-700.woff2 as=font type=font/woff2 crossorigin><script src=/js/color-mode.fd05c511a384da3eac9cca269480e1980c7c951352005e39c76a621b8d8a53ee.js integrity="sha256-/QXFEaOE2j6snMomlIDhmAx8lRNSAF45x2piG42KU+4="></script><link rel=stylesheet href="/main.9cadf411feebafed799c0270bd4a168a4b87f45bd307be149df5e90b4cb866d05abdfa8e2a4ef630fbfabbe42c6dc3edadf6a0ab854f30f5e712bb007c41d4bc.css" integrity="sha512-nK30Ef7rr+15nAJwvUoWikuH9FvTB74UnfXpC0y4ZtBavfqOKk72MPv6u+QsbcPtrfagq4VPMPXnErsAfEHUvA==" crossorigin=anonymous><noscript><style>img.lazyload{display:none}</style></noscript><base href=https://ocm.software/blog/><link rel=canonical href=https://ocm.software/blog/><link rel=alternate type=application/rss+xml href=https://ocm.software/blog/index.xml title="Blog | Open Component Model"><link rel=sitemap type=application/xml href=https://ocm.software/blog/sitemap.xml title="Blog | Open Component Model"><title>Blog | Open Component Model</title><meta name=description content="News, updates, and insights about the Open Component Model."><link rel=icon href=/favicon.ico sizes=32x32><link rel=icon href=/favicon.svg type=image/svg+xml><link rel=apple-touch-icon href=/apple-touch-icon.png sizes=180x180 type=image/png><link rel=icon href=/favicon-192x192.png sizes=192x192 type=image/png><link rel=icon href=/favicon-512x512.png sizes=512x512 type=image/png><link rel=manifest href=/manifest.webmanifest><meta property="og:url" content="https://ocm.software/blog/"><meta property="og:site_name" content="Open Component Model"><meta property="og:title" content="Blog"><meta property="og:description" content="News, updates, and insights about the Open Component Model."><meta property="og:locale" content="en_US"><meta property="og:type" content="website"><meta name=twitter:card content="summary"><meta name=twitter:title content="Blog"><meta name=twitter:description content="News, updates, and insights about the Open Component Model."><script type=application/ld+json>{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","item":"https://ocm.software/","name":"Open Component Model","position":1},{"@type":"ListItem","name":"Blog","position":2}]}</script><link rel=alternate type=application/rss+xml title="OCM Blog" href=https://ocm.software/blog/index.xml></head><body data-bs-spy=scroll data-bs-target=#toc data-bs-root-margin="0px 0px -60%" data-bs-smooth-scroll=true tabindex=0><header class=header><nav class="navbar navbar-expand-lg"><div class=container-fluid><a class=navbar-brand href=/><img src=/images/base.svg alt="Open Component Model Logo" width=48 height=48 class=d-inline-block>
22
<span class="ms-2 fw-bold"><span class=word>Open</span>
33
<span class=word>Component</span>
44
<span class=word>Model</span>

blog/index.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,8 @@
1-
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog — Open Component Model</title><link>https://ocm.software/blog/</link><description>Recent content in Blog on Open Component Model</description><generator>Hugo -- gohugo.io</generator><language>en-US</language><lastBuildDate>Mon, 20 Apr 2026 10:18:33 +0000</lastBuildDate><atom:link href="https://ocm.software/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>OCM v2: A Fresh Foundation for Secure Software Delivery</title><link>https://ocm.software/blog/ocmv2/</link><pubDate>Mon, 30 Mar 2026 10:00:00 +0200</pubDate><guid>https://ocm.software/blog/ocmv2/</guid><description>&lt;p&gt;We are excited to announce &lt;strong&gt;OCM v2&lt;/strong&gt; — a ground-up rebuild of the Open Component Model tooling stack. A new CLI, Kubernetes controllers, and Go library — designed from the start for modularity, security, and community contribution. The entire stack continues to implement the
1+
<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blog on Open Component Model</title><link>https://ocm.software/blog/</link><description>Recent content in Blog on Open Component Model</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 30 Mar 2026 10:00:00 +0200</lastBuildDate><atom:link href="https://ocm.software/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>OCM v2: A Fresh Foundation for Secure Software Delivery</title><link>https://ocm.software/blog/ocmv2/</link><pubDate>Mon, 30 Mar 2026 10:00:00 +0200</pubDate><guid>https://ocm.software/blog/ocmv2/</guid><description>&lt;p&gt;We are excited to announce &lt;strong&gt;OCM v2&lt;/strong&gt; — a ground-up rebuild of the Open Component Model tooling stack. A new CLI, Kubernetes controllers, and Go library — designed from the start for modularity, security, and community contribution. The entire stack continues to implement the
2+
3+
4+
5+
6+
7+
28
&lt;a href="https://github.com/open-component-model/ocm-spec/blob/main/doc/04-extensions/00-component-descriptor/v2.md" target="_blank" rel="noopener"&gt;OCM Specification v2&lt;/a&gt;, ensuring full compatibility with the standard that defines how components, resources, and signatures are represented.&lt;/p&gt;</description></item><item><title>What changed between legacy and new OCM Controllers</title><link>https://ocm.software/blog/2026-03-16-ocm-controllers-differences/</link><pubDate>Mon, 16 Mar 2026 10:00:00 +0100</pubDate><guid>https://ocm.software/blog/2026-03-16-ocm-controllers-differences/</guid><description>A walkthrough of the major architectural changes between the legacy ocm-controller and the new ground-up rebuild.</description></item></channel></rss>

0 commit comments

Comments
 (0)