mini update 4: fill in definitions section#161
mini update 4: fill in definitions section#161jdolitsky merged 11 commits intoopencontainers:reorgfrom
Conversation
Fill in the definitions section, introducing several terms and defintions which will serve as reference for the rest of the document. Also moved the "notational conventions" section into this section, removing any language that seemed unnecessary or related to compliance (which will be covered in the conformance section). Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
| - **Manifest**: a JSON document which defines an artifact | ||
| - **Layer**: a single part of all the parts which comprise an artifact | ||
| - **Config**: a special layer defined at the top of a manifest containing artifact metadata | ||
| - **Blob**: a single binary content stored in a registry |
There was a problem hiding this comment.
Do we want to distinguish between "Layer" and "Blob" here?
There was a problem hiding this comment.
@rchincha how would you best describe the difference?
There was a problem hiding this comment.
the definitions appear to be circular, use words not defined.. For example from these definitions:
layer is a part in parts (part not defined) which comprises an artifact..
artifact is a piece of content (content is content that is addressable and can be downloaded choose one: manifest or blob) made up of a manifest and one or more layers (one or more undefined parts)
blob is binary content (content is content -- either manifest or blob)
There was a problem hiding this comment.
A blob is the binary form of metadata OR [most commonly] content that is stored by the registry.
An artifact is one conceptual piece of content stored as blobs with an accompanying manifest containing metadata.
A layer is one kind of blob used for container image artifacts
There was a problem hiding this comment.
@jzelinskie vaguely remember you had a carefully compiled set of definitions. Let's look at that and see if we can just reuse that prose.
…-spec into HEAD Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
mikebrow
left a comment
There was a problem hiding this comment.
see comments.. needs a rebase
|
|
||
| An implementation is not compliant if it fails to satisfy one or more of the MUST, MUST NOT, REQUIRED, SHALL, or SHALL NOT requirements for the protocols it implements. | ||
| An implementation is compliant if it satisfies all the MUST, MUST NOT, REQUIRED, SHALL, and SHALL NOT requirements for the protocols it implements. | ||
| ### Document Language |
| - **Manifest**: a JSON document which defines an artifact | ||
| - **Layer**: a single part of all the parts which comprise an artifact | ||
| - **Config**: a special layer defined at the top of a manifest containing artifact metadata | ||
| - **Blob**: a single binary content stored in a registry |
There was a problem hiding this comment.
the definitions appear to be circular, use words not defined.. For example from these definitions:
layer is a part in parts (part not defined) which comprises an artifact..
artifact is a piece of content (content is content that is addressable and can be downloaded choose one: manifest or blob) made up of a manifest and one or more layers (one or more undefined parts)
blob is binary content (content is content -- either manifest or blob)
| - **Pull**: the act of downloading content from a registry | ||
| - **Artifact**: a single piece of content, made up of a manifest and one or more layers | ||
| - **Manifest**: a JSON document which defines an artifact | ||
| - **Layer**: a single part of all the parts which comprise an artifact |
There was a problem hiding this comment.
Layer explanation from image spec: https://github.com/opencontainers/image-spec/blob/master/config.md#oci-image-configuration
suggest: **Layer**: a set of filesystem changes; Layers are typically used by a layer-based or union filesystem to form the mountable root file system of a container. and maybe link to the oci spec
There was a problem hiding this comment.
I think we should avoid using the term layers except in the context of images. I wish we would have just renamed layers to references. I don't think we need to inject that confusion here.
There was a problem hiding this comment.
fair.. in the context of container images image layers are a set of..
There was a problem hiding this comment.
I don't think the image spec is useful in this context. I'd rather define Layer as legacy terminology referring to blobs that are specifically for container images.
There was a problem hiding this comment.
what is "this context?" ... at the moment it says "Several terms are used frequently in this document" seems pretty broad :-)
Why is OCI image not useful in this context? Let's say an OCI image is but one type of OCI artifact... still Most definitions include examples, for example, in the context of OCI container images, layers are a set of ... IMO the inclusion of examples does not make a definition as confusing as the lack of examples does. Esp. when highjacking a term that is common in the vernacular. As derek mentioned it may be useful to just avoid the term except in the context of images. You could have, for example, a different location for oci image terms.
| - **Config**: a special layer defined at the top of a manifest containing artifact metadata | ||
| - **Blob**: a single binary content stored in a registry | ||
| - **Digest**: a unique blob identifier, calculated from the blob's content | ||
| - **Content**: a general term for content that can be downloaded from a registry (manifest or blob), and are addressable by a digest |
There was a problem hiding this comment.
content is being used as a noun to represent a great many things throughout the spec.. in each case the thing being represented is or should be specified by the context.
Suggest removing this definition since what is meant by it's use is really just the dictionary definition. Or just use the dictionary definition:
1a : something contained —usually used in plural
the layer's contents
the manifest's contents
the contents of the http response...
mikebrow
left a comment
There was a problem hiding this comment.
suggest not focusing on HTTP in high level concepts and definitions
…nto mini-update-4 Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
|
@jzelinskie @mikebrow can I please have a second review? I've updated the definitions based on your comments. The following terms have been removed:
The following terms are unchanged:
The following terms have been updated:
|
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
|
CC @dmcgowan |
mikebrow
left a comment
There was a problem hiding this comment.
looks good just a small change request on digest definition
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Signed-off-by: jdolitsky <393494+jdolitsky@users.noreply.github.com>
Fill in the definitions section, introducing several
terms and defintions which will serve as reference for
the rest of the document.
Also moved the "notational conventions" section into
this section, removing any language that seemed
unnecessary or related to compliance (which will be
covered in the conformance section).
This PR is built on top of #160, so the diff is misleading. Please see the following for a true diff: bloodorangeio/distribution-spec@mini-update-3...bloodorangeio:mini-update-4