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

Verify/markdown #871

Merged
merged 52 commits into from
Aug 20, 2024
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
dcc5b3a
new GHA workflow
hilmarf Aug 12, 2024
5b7272f
config files
hilmarf Aug 12, 2024
0749084
fix one first finding
hilmarf Aug 12, 2024
dd972db
Spellcheck
hilmarf Aug 13, 2024
ed2d1b0
md lint
hilmarf Aug 13, 2024
162d082
fix some lint issues
hilmarf Aug 14, 2024
02547f7
more expressive GHA job names
hilmarf Aug 14, 2024
cb10408
fix links
hilmarf Aug 14, 2024
d6fc3fc
fix lint and link issues
hilmarf Aug 14, 2024
336ee82
fix more links
hilmarf Aug 14, 2024
558fd51
podinfo
hilmarf Aug 14, 2024
a4d37bc
fix links
hilmarf Aug 14, 2024
ae28f0c
trying to fix some linter issues
hilmarf Aug 14, 2024
985cd6f
generate lib/tour
hilmarf Aug 14, 2024
f9caf2d
generate docs
hilmarf Aug 14, 2024
6792979
markdown code block supported languages:
hilmarf Aug 15, 2024
660a950
lint + links
hilmarf Aug 15, 2024
6417948
ignore sigstore.dev
hilmarf Aug 15, 2024
5f2d34f
fix more links
hilmarf Aug 15, 2024
74f60d8
ignore-case: true
hilmarf Aug 15, 2024
caaadb4
fix typos
hilmarf Aug 15, 2024
3fcb97e
fix typos and lint something
hilmarf Aug 15, 2024
d8738cc
Spelling check passed :)
hilmarf Aug 15, 2024
956cc93
Lint Markdown - succeeded
hilmarf Aug 15, 2024
b8d0832
toolset
hilmarf Aug 15, 2024
9153155
reuse convert-dep5
hilmarf Aug 15, 2024
7511f13
generated
hilmarf Aug 15, 2024
dd4c0c1
I would like to have those changes popping up on Monday morning
hilmarf Aug 16, 2024
316a37d
move config files
hilmarf Aug 16, 2024
7aaaa2d
skip additional run
hilmarf Aug 16, 2024
2742af2
Merge branch 'main' into verify/markdown
hilmarf Aug 16, 2024
0c84c4d
Merge main into verify/markdown
hilmarf Aug 16, 2024
cba7d8d
-upoader
hilmarf Aug 16, 2024
813f465
uses
hilmarf Aug 16, 2024
c5817f9
ExampleCodeStyle
hilmarf Aug 16, 2024
b4c9bfe
generate once more
hilmarf Aug 16, 2024
f66ac91
Merge branch 'main' into verify/markdown
hilmarf Aug 16, 2024
cc9cf88
text
hilmarf Aug 16, 2024
95d72c1
Merge branch 'main' into verify/markdown
hilmarf Aug 16, 2024
579370b
more path mappings
mandelsoft Aug 16, 2024
7f9f419
fix links
hilmarf Aug 16, 2024
59b7a71
typo
hilmarf Aug 16, 2024
c3d0963
it's only: <CMD>ocm bootstrap package</CMD>
hilmarf Aug 16, 2024
85bfe40
minus missing
hilmarf Aug 16, 2024
5b78a78
generate
hilmarf Aug 16, 2024
d5b0fc8
Merge branch 'doc' into verify/markdown
hilmarf Aug 16, 2024
8223a4a
wrong place?
hilmarf Aug 16, 2024
6b48c86
Merge branch 'main' into verify/markdown
hilmarf Aug 16, 2024
34112d3
removed, because we're using github issues instead
hilmarf Aug 19, 2024
675a283
Merge branch 'main' into verify/markdown
hilmarf Aug 19, 2024
6791571
case insensitive
hilmarf Aug 19, 2024
8b9a62e
clarified with Gerald
hilmarf Aug 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .markdown-link-check.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{ "replacementPatterns": [
{ "pattern": "^/", "replacement": "/github/workspace/" }
{ "pattern": "^/", "replacement": "{{BASEURL}}/" }
],
"ignorePatterns": [
{ "pattern": "^http[s]*://localhost.*" }
Expand Down
2 changes: 1 addition & 1 deletion .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ OCM
OCMBot
OS
parameterization
Podinfo
podinfo
Podman
predefine
programmatically
Expand Down
27 changes: 12 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Open Component Model

[![OpenSSF Best Practices](https://bestpractices.coreinfrastructure.org/projects/7156/badge)](https://bestpractices.coreinfrastructure.org/projects/7156)
[![REUSE status](https://api.reuse.software/badge/ocm.software/ocm)](https://api.reuse.software/info/ocm.software/ocm)
[![OCM Integration Tests](https://ocm.software/ocm-integrationtest/actions/workflows/integrationtest.yaml/badge.svg?branch=main)](https://open-component-model.github.io/ocm-integrationtest/report.html)
[![REUSE status](https://api.reuse.software/badge/github.com/open-component-model/ocm)](https://api.reuse.software/info/github.com/open-component-model/ocm)
[![OCM Integration Tests](https://github.com/open-component-model/ocm-integrationtest/actions/workflows/integrationtest.yaml/badge.svg?branch=main)](https://open-component-model.github.io/ocm-integrationtest/report.html)
[![Go Report Card](https://goreportcard.com/badge/ocm.software/ocm)](https://goreportcard.com/report/ocm.software/ocm)

The Open Component Model (OCM) is an open standard to describe software bills of delivery (SBOD). OCM is a technology-agnostic and machine-readable format focused on the software artifacts that must be delivered for software products.
Expand All @@ -11,14 +11,14 @@ Check out the [the main OCM project web page](https://ocm.software) to find out

## OCM Specifications

OCM describes delivery [artifacts](https://ocm.software/ocm-spec/tree/main/doc/01-model/02-elements-toplevel.md#artifacts-resources-and-sources) that can be accessed from many types of [component repositories](https://ocm.software/ocm-spec/tree/main/doc/01-model/01-model.md#component-repositories). It defines a set of semantic, formatting, and other types of specifications that can be found in the [`ocm-spec` repository](https://ocm.software/ocm-spec). Start learning about the core concepts of OCM elements [here](https://ocm.software/ocm-spec/tree/main/doc/01-model/02-elements-toplevel.md#model-elements).
OCM describes delivery [artifacts](https://github.com/open-component-model/ocm-spec/tree/main/doc/01-model/02-elements-toplevel.md#artifacts-resources-and-sources) that can be accessed from many types of [component repositories](https://github.com/open-component-model/ocm-spec/tree/main/doc/01-model/01-model.md#component-repositories). It defines a set of semantic, formatting, and other types of specifications that can be found in the [`ocm-spec` repository](https://github.com/open-component-model/ocm-spec). Start learning about the core concepts of OCM elements [here](https://github.com/open-component-model/ocm-spec/tree/main/doc/01-model/02-elements-toplevel.md#model-elements).

## OCM Library

This project provides a Go library containing an API for interacting with the
[Open Component Model (OCM)](https://ocm.software/ocm-spec) elements and mechanisms.
[Open Component Model (OCM)](https://github.com/open-component-model/ocm-spec) elements and mechanisms.

The library currently supports the following [repository mappings](https://ocm.software/ocm-spec/tree/main/doc/03-persistence/02-mappings.md#mappings-for-ocm-persistence):
The library currently supports the following [repository mappings](https://github.com/open-component-model/ocm-spec/tree/main/doc/03-persistence/02-mappings.md#mappings-for-ocm-persistence):

- **OCI**: Use the repository prefix path of an OCI repository to implement an OCM
repository.
Expand All @@ -36,16 +36,14 @@ Additionally, OCM provides a generic solution for how to:
- Transport component versions, per reference or as values to any of the
repository implementations.

## OCM CLI
## [OCM CLI](docs/reference/ocm.md)

The [`ocm` CLI](docs/reference/ocm.md) may also be used to interact with OCM mechanisms. It makes it easy to create component versions and embed them in build processes.

The `ocm` CLI documentation can be found [here](<(https://ocm.software/ocm/blob/main/docs/reference/ocm.md)>).

The code for the CLI can be found in [package `cmds/ocm`](https://ocm.software/ocm/blob/main/cmds/ocm).
The code for the CLI can be found in [package `cmds/ocm`](cmds/ocm).

The OCI and OCM support can be found in packages
[`pkg/contexts/oci`](pkg/contexts/oci) and [`api/ocm`](api/ocm).
[`api/oci`](api/oci) and [`api/ocm`](api/ocm).

## Installation

Expand All @@ -56,7 +54,7 @@ Install the latest release from any of
- [AUR](https://aur.archlinux.org/packages/ocm-cli)
- [Docker](https://www.docker.com/)
- [Podman](https://podman.io/)
- [GitHub Releases](https://ocm.software/ocm/releases)
- [GitHub Releases](https://github.com/open-component-model/ocm/releases)

### Bash

Expand Down Expand Up @@ -95,7 +93,6 @@ ocm --help

### Install from AUR (Arch Linux User Repository)

git-url: https://aur.archlinux.org/ocm-cli.git
frewilhelm marked this conversation as resolved.
Show resolved Hide resolved
package-url: https://aur.archlinux.org/packages/ocm-cli

```sh
Expand Down Expand Up @@ -140,9 +137,9 @@ podman build -t ocm --build-arg GO_VERSION=1.22 --build-arg ALPINE_VERSION=3.19

## Examples

An example of how to use the `ocm` CLI in a Makefile can be found in [`examples/make`](https://ocm.software/ocm/blob/main/examples/make/Makefile).
An example of how to use the `ocm` CLI in a Makefile can be found in [`examples/make`](examples/make/Makefile).

More comprehensive examples can be taken from the [`components`](https://ocm.software/ocm/tree/main/components) contained in this repository. [Here](components/helmdemo/README.md) a complete component build including a multi-arch image is done and finally packaged into a CTF archive which can be transported into an OCI repository. See the readme files for details.
More comprehensive examples can be taken from the [`components`](components) contained in this repository. [Here](components/helmdemo/README.md) a complete component build including a multi-arch image is done and finally packaged into a CTF archive which can be transported into an OCI repository. See the readme files for details.

## Contributing

Expand All @@ -154,4 +151,4 @@ OCM follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/m

Copyright 2024 SAP SE or an SAP affiliate company and Open Component Model contributors.
Please see our [LICENSE](LICENSE) for copyright and license information.
Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/ocm.software/ocm).
Detailed information including third-party components and their licensing/copyright information is available [via the REUSE tool](https://api.reuse.software/info/github.com/open-component-model/ocm).
frewilhelm marked this conversation as resolved.
Show resolved Hide resolved
12 changes: 5 additions & 7 deletions api/oci/extensions/repositories/ctf/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@

# Repository `CommonTransportFormat` - Filesystem-based Storage of OCI repositories

## Synopsis

### Synopsis

```
```yaml
type: CommonTransportFormat/v1
```

Expand All @@ -31,14 +29,14 @@ The type specific specification fields are:
- `directory`: stored as file hierarchy in a directory
- `tar`: stored as file hierarchy in a TAR file
- `tgz`: stored as file hierarchy in a GNU-zipped TAR file (tgz)

- **`accessMode`** (optional) *byte*

Access mode used to access the content:
- 0: write access
- 1: read-only
- 2: create id not existent, yet

### Go Bindings

The Go binding can be found [here](type.go)
The Go binding can be found [here](type.go)
7 changes: 3 additions & 4 deletions api/oci/extensions/repositories/docker/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@

# Repository `DockerDaemon` - Images stored in a Docker Daemon

## Synopsis

### Synopsis

```
```yaml
type: DockerDaemon/v1
```

Expand All @@ -14,6 +12,7 @@ This repository type provides a mapping of the image repository behind a docker
daemon to the OCI registry access API.

This is only possible with a set of limitation:

- It is only possible to store and access flat images
- There is no access by digests, only by tags.
- The docker image id can be used as pseudo digest (without algorithm)
Expand Down
8 changes: 3 additions & 5 deletions api/oci/extensions/repositories/ocireg/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# Repository `OCIRegistry` and `ociRegistry` - OCI Registry

# Repository `OCIRegistry` and `ociRegistry` - OCI Registry
## Synopsis


### Synopsis

```
```yaml
type: OCIRegistry/v1
```

Expand Down
2 changes: 1 addition & 1 deletion api/ocm/extensions/accessmethods/localblob/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ The type specific specification fields are:
related to the original source.

For example, if an OCI artifact originally referenced using the
access method [`ociArtifact`](../../../../../docs/formats/accessmethods/ociArtifact.md) is stored during
access method [`ociArtifact`](../ociartifact) is stored during
some transport step as local artifact, the reference name can be set
to its original repository name. An import step into an OCI based OCM
repository may then decide to make this artifact available again as
Expand Down
2 changes: 1 addition & 1 deletion api/ocm/extensions/accessmethods/ociartifact/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Provided blobs use the following media type:

Depending on the repository appropriate docker legacy types might be used.

The artifact content is provided in the [Artifact Set Format](../../../../../pkg/contexts/oci/repositories/ctf/formatspec.md#artifact-set-archive-format).
The artifact content is provided in the [Artifact Set Format](/api/oci/extensions/repositories/ctf/formatspec.md#artifact-set-archive-format).
The tag is provided as annotation.

### Description
Expand Down
4 changes: 2 additions & 2 deletions api/ocm/extensions/accessmethods/relativeociref/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ Provided blobs use the following media type:

Depending on the repository appropriate docker legacy types might be used.

The artifact content is provided in the [Artifact Set Format](../../../../../pkg/contexts/oci/repositories/ctf/formatspec.md#artifact-set-archive-format).
The artifact content is provided in the [Artifact Set Format](/api/oci/extensions/repositories/ctf/formatspec.md#artifact-set-archive-format).
The tag is provided as annotation.

### Description

This method implements the access of an OCI artifact stored in an OCI registry,
which is used to host the OCM repository the component version is retrieved from.

It works similar to the [`ociArtifact`](../../../../../pkg/contexts/ocm/accessmethods/ociartifact/README.md) access method,
It works similar to the [`ociArtifact`](../ociartifact) access method,
but the used reference does not contain the OCI registry host, which is
taken from the OCI registry used to host the component version containing
the access specification.
Expand Down
7 changes: 2 additions & 5 deletions api/ocm/extensions/repositories/comparch/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@

# Repository `ComponentArchive` - Filesystem based Storage of a Component Version

## Synopsis

### Synopsis

```
```yaml
type: ComponentArchive/v1
```

Expand Down Expand Up @@ -33,7 +31,6 @@ The type specific specification fields are:
- `tar`: stored as directory structure in a tar file
- `tgz`: stored as directory structure in a tar file compressed by GNU Zip


### Go Bindings

The Go binding can be found [here](type.go).
9 changes: 3 additions & 6 deletions api/ocm/extensions/repositories/ctf/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@

# Repository `CommonTransportFormat` - Filesystem based OCM Repositories

## Synopsis

### Synopsis

```
```yaml
type: CommonTransportFormat/v1
```

Expand All @@ -31,7 +29,6 @@ The type specific specification fields are:
- `tar`: stored as directory structure in a tar file
- `tgz`: stored as directory structure in a tar file compressed by GNU Zip.


### Go Bindings

The Go binding can be found [here](../../../../../pkg/contexts/oci/repositories/ctf/type.go).
The Go binding can be found [here](type.go).
2 changes: 1 addition & 1 deletion api/ocm/extensions/repositories/ocireg/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,4 @@ The type specific specification fields are:

### Go Bindings

The Go binding can be found [here](../../../../../pkg/contexts/oci/repositories/ocireg/type.go).
The Go binding can be found [here](type.go).
15 changes: 8 additions & 7 deletions api/ocm/ocmutils/localize/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ yaml format definitions, (format.go) given by a Go structure.
and functions usable for the modification of filesystem snapshots.

It covers
- OCM based localization descriptions used to describe image

- OCM based localization descriptions used to describe image
location substitution and the
- merging with configuration input.

Expand All @@ -15,7 +16,7 @@ an installation specific snapshot incorporating the local location
of container images based on OCM component versions and installation specific
configuration values.

The description format describes two basic specifications that incorporate external
The description format describes two basic specifications that incorporate external
information provided by a component version or some user config.

- struct/format `Localization` describe a specification to
Expand All @@ -26,15 +27,15 @@ information provided by a component version or some user config.

This specification is intended to be stored as part of a resource artifact in a
component version which is then used to apply it. Thereby the contained relative
[resource reference](../../../../docs/ocm/model.md#resource-reference)
[resource reference](https://github.com/open-component-model/ocm-spec/blob/main/doc/05-guidelines/03-references.md)
are evaluated against the component version containing the specification to resolve
the final image location.

- struct/format `Configuration` describes a specification for
applying a dedicated config value taken from a configuration source
to a filesytem snapshot.

The function `Localize` and `Configure` accept a list of such
The function `Localize` and `Configure` accept a list of such
specifications and map them into an environment agnostic set of
`Substitution` specifications, which contain resolved data values, only.
A third function `Substitute` takes those environment agnostic specifications
Expand All @@ -44,15 +45,15 @@ Finally, a compound specification `InstantiationRules` is provided,
that combines all those descriptions with the specification of the snapshot
resource and further helper parts, like json scheme validation for config files.

Such a specification object can be applied by the function `Instantiate`
Such a specification object can be applied by the function `Instantiate`
together with configuration values to
a component version. As substitution result it returns a virtual filesystem
with the snapshot according to the resolved substitutions. To get access to the
template resource containing the filesystem snapshot to be instantiated, the
configured downloaders (package `pkg/context/ocm/download`) is used.
Therefore, this method can be used together with any own resource type as long as
Therefore, this method can be used together with any own resource type as long as
an appropriate downloader is configured.

Additionally, there is a set of more basic types and methods, which can be used
to describe end execute localizations for single data objects (see `ImageMappings`,
`LocalizeMappings` and `SubstituteMappings`).
`LocalizeMappings` and `SubstituteMappings`).
4 changes: 2 additions & 2 deletions cmds/ocm/commands/toicmds/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ func NewCommand(ctx clictx.Context) *cobra.Command {
TOI is an abbreviation for (T)iny (O)CM (I)nstallation. It is a simple
application framework on top of the Open Component Model, that can
be used to describe image based installation executors and installation
packages (see topic <CMD>ocm toi bootstrapping</CMD> in form of resources
packages (see topic <CMD>ocm toi-bootstrapping</CMD> in form of resources
with a dedicated type. All involved resources are hereby taken from a component
version of the Open Component Model, which supports all the OCM features, like
transportation.

The framework consists of a generic bootstrap command
(<CMD>ocm toi bootstrap componentversions</CMD>) and an arbitrary set of image
(<CMD>ocm toi bootstrap package</CMD>) and an arbitrary set of image
based executors, that are executed in containers and fed with the required
installation data by th generic command.
`,
Expand Down
2 changes: 1 addition & 1 deletion cmds/ocm/commands/toicmds/package/describe/cmd.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Describe a TOI package provided by a resource of an OCM component version.

The package resource must have the type <code>` + toi.TypeTOIPackage + `</code>.
This is a simple YAML file resource describing the bootstrapping of a dedicated kind
of software. See also the topic <CMD>ocm toi toi-bootstrapping</CMD>.
of software. See also the topic <CMD>ocm toi</CMD> / <CMD>ocm toi-bootstrapping</CMD>.

The first matching resource of this type is selected. Optionally a set of
identity attribute can be specified used to refine the match. This can be the
Expand Down
4 changes: 1 addition & 3 deletions docs/pluginreference/plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### Synopsis

```
```sh
plugin <subcommand> <options> <args>
```

Expand All @@ -16,7 +16,6 @@ plugin <subcommand> <options> <args>

### Description


The OCM library has several extension points, which can be used by a registration
mechanism to add further variants, like repository types, backend technologies,
access methods, blob downloaders and uploaders.
Expand Down Expand Up @@ -52,7 +51,6 @@ Any plugin, regardless of its functionality has to provide an [plugin info](plug
which prints JSON document containing a plugin descriptor that describes the
apabilities of the plugin.


### SEE ALSO


Expand Down
6 changes: 2 additions & 4 deletions docs/pluginreference/plugin_accessmethod.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

### Synopsis

```
```sh
plugin accessmethod [<options>] <sub command> ...
```

Expand All @@ -13,13 +13,11 @@ plugin accessmethod [<options>] <sub command> ...
```

### Description

This command group provides all commands used to implement an access method
described by an access method descriptor ([plugin descriptor](plugin_descriptor.md).

### SEE ALSO

##### Parents
#### Parents

* [plugin](plugin.md) &mdash; OCM Plugin

Expand Down
Loading
Loading