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

Cleaned up Glossary and added "OCM Coordinates" term #113

Merged

Conversation

n-boshnakov
Copy link
Contributor

What this PR does / why we need it:
This PR:

  • adds the term "OCM Coordinates" to the Glossary
  • cleans up existing content in the Glossary

Which issue(s) this PR fixes:
Fixes #

Special notes for your reviewer:
A link to the topic describing the term "OCM Coordinates" that was sent in the original email would be appreciated, as it could be linked and provide better context for the term.

Release note:

Added "OCM Coordinates" term to the Glossary

doc/glossary.md Outdated Show resolved Hide resolved
doc/glossary.md Outdated Show resolved Hide resolved
@@ -68,8 +60,7 @@ The formal description of a [component version](#compvers).

### [Component Descriptor Normalization](02-processing/05-component-descriptor-normalization.md)<a id="compdescnorm"/>

The mapping of the elements of a [component descriptor](#compdesc) into an
immutable format containg only signature relevant information used to calculate a digest.
The mapping of the elements of a [component descriptor](#compdesc) into an immutable format containing only signature relevant information used to calculate a digest.

### [Component Identity](01-model/02-elements-toplevel.md#component-identity)<a id="compid"/>
Copy link
Contributor

Choose a reason for hiding this comment

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

Check the linked content. Maybe we copy the text from the mail to here. The Component name should be added as own entry in the glossar, too, and also linked, same as the component version.

The Component identity consists of

  • Component Name: identifies component. Should follow conventions similar to DNS (start with URL-prefix controlled by Component-Owner)

  • Component Version: if used with a component name, identifies a specific Component Version. Must adhere to "relaxed Semver" (major, minor (+optional patchlevel) - optional v-prefix).

Copy link
Contributor

Choose a reason for hiding this comment

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

considering the wording, I think immutable is not quite adequate. I think it would be better to call this form stable (iff [sic!] no content changes occur, the normalised form will remain unchanged).


### OCM Coordinates

Hierarchically organized identifiers for the versions of OCM components (called `Component Identity`) and contained artifacts (called `Artifact Identity`).
Copy link
Contributor

Choose a reason for hiding this comment

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

Since the OCM coordinates will become a central term, I guess we can take over the full text of the mail to the glossary, although it contains many other definitions. This makes it easier to consume all information at one place without having the need to follow the links. @n-boshnakov what do you think?

OCM Coordinates are used to reference OCM Component Versions and artefacts within OCM Component Versions. Coordinates referring to an OCM Component Version are also called Component Identity, whereas relative coordinates referring to an artefact are called Artefact Identity. Component Identities are globally unique and may be used to refer to full Component Versions. Artefact Identities are always relative to an OCM Component Version and may only be used in conjunction with a Component Identity.

In detail:

Component Identity

  • Component Name: identifies component. Should follow conventions similar to DNS (start with URL-prefix controlled by Component-Owner)
  • Component Version: if used with a component name, identifies a specific Component Version. Must adhere to "relaxed Semver" (major, minor (+optional patchlevel) - optional v-prefix).

Artefact Identity
Within a Component Version, all artefacts must have a unique identity. The identity always includes:

  • Kind (artefacts are either sources or resources)
  • Name: A name (typically used to express the intended purpose)

Artefacts may also have additional attributes (called extraIdentity) that contribute to their identities. extraIdentity attributes are string-to-string maps.

Examples

Assuming there is a component named example.org/my-component, with two versions 1.2.3 and 1.3.0, declaring a resource named my-resource, then the following OCM Coordinates can be used to reference different things:

  • example.org/my-component: all versions of the component (1.2.3 + 1.3.0)
  • example.org/my-component:1.2.3: version 1.2.3 of the component
  • example.org/my-component:1.2.3:resource/my-resource: my-resource as declared by the component version

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The glossary should be a place for short definitions only. What we could do is take the content of the email and place it in a separate topic, then link to it from the term.

As the content of the email is already formatted in Markdown, this leads me to believe that it already exists somewhere as a topic, therefore we could just link to it. If that is not true, however, I could create a new topic with that content in this repository and link to it instead. I just need to know the correct folder to place the topic in.

Copy link
Contributor

Choose a reason for hiding this comment

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

@n-boshnakov : it is formatted in markdown mostly because I write in markdown(-ish) as a habit. the text was written ad-hoc.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

In that case, I think it would be best if this information is placed in a repo as a topic. We can then link it to the new term being introduced for ease of access.

doc/glossary.md Outdated Show resolved Hide resolved
doc/glossary.md Outdated Show resolved Hide resolved
doc/glossary.md Outdated Show resolved Hide resolved
doc/glossary.md Outdated Show resolved Hide resolved
@ccwienk
Copy link
Contributor

ccwienk commented May 23, 2024

generally speaking, there seem to be a lot of changes to formatting (short lines being merged into longer ones). Is there a reason for doing that?

@n-boshnakov
Copy link
Contributor Author

generally speaking, there seem to be a lot of changes to formatting (short lines being merged into longer ones). Is there a reason for doing that?

The definitions being split in different lines resulted in some cases of unnecessary capitalization. As I fixed those, I standardized the rest of the definitions (1 line instead of 2) in order to prevent this issue from occurring in the future.

Example:
The specification of the technical access path to the physical blob content of
An artifact.

@ccwienk
Copy link
Contributor

ccwienk commented May 24, 2024

@n-boshnakov : I see. markdown has its quirks. very unfortunate.

@morri-son morri-son merged commit b498e89 into open-component-model:main Jun 3, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🔒Closed
Development

Successfully merging this pull request may close these issues.

3 participants