Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Attachment of optional informational component references to Component Version #859

Open
mandelsoft opened this issue Jul 31, 2024 · 1 comment
Labels
kind/enhancement Enhancement, improvement, extension lifecycle/stale Nobody worked on this for 6 months (will further age)

Comments

@mandelsoft
Copy link
Contributor

mandelsoft commented Jul 31, 2024

Problem:

A component version has the possibility to refer to other component versions. Those reference explicitly extend the
set of resources formally described by a component version. Those resources contribute to the described artifact set of a component version, they are covered by the signing and transport process.

Besides those kinds of references it is useful to have the possibility to describe loose relations to other component versions.
This information might be signature relevant or not, but the content will never be part of the component version hosting this kind of reference.

Solution Idea:

Labels can be used to attach dynamic information to a component version and specify whether this information should be signature relevant or not. The desired functionality can be achieved to add a new label type and format to describe those informational references.

Specification:

Label Specification

We propose the following Specification for the new type of label:

Label Type: relatedComponentVersions
Format Version: v1

Format: []reference

reference:
component (string) required: the name of the component
version (string) required: the version of the component
purposes ([]purpose) optional: list of formal purposes for the component reference

purpose:
name: (string) required: the name of the purpose (see below)
version (string) optional: format version of the value specified
value: (any) optional: additional attributes for the purpose

Purposes

Purposes have a dedicated meaning represented by the purpose name. They are namespaced using DNS domain names followed by slash (/) separated name components to enable the extensibility by independent players.

Purposes defined by the Open Component Model are namespaceless.

CLI Commands

By using a dedicated label type for this kind of information, the CLI can be extended to provide this kind of information.
Commands listing references should be extended (by additional option (--related)) to include related component version in the output.
The information shown per reference must be extended to indicate those references as related.

First of all, the ocm get references is involved here.
The ocm get resources/sources commands should not be extended, because the attached component versions do not formally contribute to the content of a component version.

@mandelsoft mandelsoft added the kind/enhancement Enhancement, improvement, extension label Jul 31, 2024
Copy link
Contributor

This issue was marked as stale because it has not had recent activity.

@github-actions github-actions bot added the lifecycle/stale Nobody worked on this for 6 months (will further age) label Oct 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/enhancement Enhancement, improvement, extension lifecycle/stale Nobody worked on this for 6 months (will further age)
Projects
Status: 🆕 ToDo
Development

No branches or pull requests

1 participant