Skip to content

feat(compose): SUP-01 Compose OCI — The Margo Way - #199

Closed
javatask wants to merge 1 commit into
margo:pre-draftfrom
javatask:sup-01/compose-oci-the-margo-way
Closed

feat(compose): SUP-01 Compose OCI — The Margo Way#199
javatask wants to merge 1 commit into
margo:pre-draftfrom
javatask:sup-01/compose-oci-the-margo-way

Conversation

@javatask

Copy link
Copy Markdown

Summary

Implements SUP-01: Compose OCI — The Margo Way, which defines the normative Compose Archive packaging model for Margo following the same OCI registry pattern established for Helm components.

Changes

Schema: application-description.linkml.yaml

  • Make repository and revision required for all component types (Helm + Compose)
  • Add SemVer 2.0 pattern constraint on revision field
  • Remove packageLocation and keyLocation fields (never appeared in a released specification)

Schema: desired-state.linkml.yaml

  • Add optional revision attribute to Component class with SemVer pattern

Documentation: application-registry.md

  • Add Compose-specific OCI media types to Margo-Specific Media Types table:
    • application/vnd.org.margo.component.compose+json (artifactType)
    • application/vnd.org.margo.component.compose.tar+gzip (layer mediaType)
  • Add normative Compose Archive Structure section (directory layout, security constraints, integrity verification)
  • Add publishing workflow guidance (oras push recommended, docker compose publish incompatible)
  • Add wait semantics for Compose components

Documentation: index.md.jinja2

  • Update ComponentProperties compose table to document repository/revision
  • Remove "Investigation Needed" block for compose properties

Examples

  • Update all compose examples to use repository/revision instead of packageLocation/keyLocation

Issues Resolved

Conformance Impact

  • Breaking change: Yes (pre-draft specification, no backward compatibility required)
  • RFC 2119 keywords: MUST/MUST NOT/SHOULD/RECOMMENDED used per normative requirements

Testing

  • All YAML files pass syntax validation
  • No residual references to packageLocation/keyLocation remain in schemas or examples

SUP Reference

Full proposal: sup-01-compose-oci.md


Contributor: Andrii Melashchenko, Belden Inc.
CLA: Signed under Open Web Foundation Contributor License Agreement

Implement Specification Update Proposal SUP-01 which defines the normative
Compose Archive packaging model for Margo, following the same OCI registry
pattern established for Helm components.

Schema changes (application-description.linkml.yaml):
- Make repository and revision required for all component types
- Add SemVer 2.0 pattern constraint on revision field
- Remove packageLocation and keyLocation fields (never released)

Schema changes (desired-state.linkml.yaml):
- Add optional revision attribute to Component class with SemVer pattern

Documentation (application-registry.md):
- Add Compose-specific OCI media types to Margo-Specific Media Types table
  (application/vnd.org.margo.component.compose+json and
   application/vnd.org.margo.component.compose.tar+gzip)
- Add normative Compose Archive Structure section (directory layout,
  security constraints, integrity verification)
- Add publishing workflow guidance (oras push recommended)
- Add wait semantics for Compose components

Documentation (index.md.jinja2):
- Update ComponentProperties compose table to document repository/revision
- Remove Investigation Needed block for compose properties

Examples:
- Update all compose examples to use repository/revision instead of
  packageLocation/keyLocation

Resolves: margo#168, margo#166, margo#179
SUP: specification-enhancements/proposals/compose-oci/sup-01-compose-oci.md
Breaking-Change: yes (pre-draft, no backward compat required)
Signed-off-by: Andrii Melashchenko <andrii.melashchenko@belden.com>
@javatask
javatask requested a review from a team as a code owner July 26, 2026 20:16
@linux-foundation-easycla

Copy link
Copy Markdown

CLA Missing ID

  • ❌ The email address for the commit (f70ea4a) is not linked to the GitHub account, preventing the EasyCLA check. Consult this Help Article and GitHub Help to resolve. (To view the commit's email address, add .patch at the end of this PR page's URL.) For further assistance with EasyCLA, please visit our EasyCLA portal and chat with our support bot.

@javatask

Copy link
Copy Markdown
Author

Closing — will re-submit after manual review.

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

Labels

None yet

Projects

None yet

1 participant