-
Notifications
You must be signed in to change notification settings - Fork 662
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
Remove artifact manifest #999
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,7 +35,6 @@ For the media type(s) that this document is compatible with, see the [matrix][ma | |
Implementations MUST support at least the following media types: | ||
|
||
- [`application/vnd.oci.image.manifest.v1+json`](manifest.md) | ||
- [`application/vnd.oci.artifact.manifest.v1+json`](artifact.md) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Maybe just move this line to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this would be a good change regardless. Basically, all registries MUST support image manifests, and SHOULD (or even MAY) support the artifact manifest. Without this change, a registry could choose to only support the artifact manifest, which would probably only cause a deeper fracture in the ecosystem. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Without any change, registries MUST support both the artifact and image manifests. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this would lead to a great deal of confusion for OCI 1.1 compliance and support for artifacts. With so many registries already adopting Artifact in it's RC form, what is gained by weakening this MUST to SHOULD? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @AaronFriel it lets registries adopt the references API (much more valuable imo) and claim 1.1 conformance. If they have to adopt both to be 1.1, they might prefer not to invest in either. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Oh you're correct, I misread. I'd still like to advocate for "MUST support at least one of these media types" There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
What utility do references have absent artifacts? If registries can claim conformance with OCI 1.1 but no one can upload an sbom, NPM package, cat gif, etc., I don't see the point of OCI 1.1. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Clients have been successfully uploading SBOMs, NPM packages, cat pictures, etc., for a couple years now at least under 1.0. 1.1 will codify some of those patterns and augment them with a first-class supported API that doesn't require polluting tag hacks. |
||
|
||
Also, implementations SHOULD support the following media types: | ||
|
||
|
@@ -157,14 +156,9 @@ When the variant of the CPU is not listed in the table, values are implementatio | |
} | ||
}, | ||
{ | ||
"mediaType": "application/vnd.oci.artifact.manifest.v1+json", | ||
"mediaType": "application/vnd.oci.image.index.v1+json", | ||
jonjohnsonjr marked this conversation as resolved.
Show resolved
Hide resolved
|
||
"size": 7682, | ||
"digest": "sha256:601570aaff1b68a61eb9c85b8beca1644e698003e0cdb5bce960f193d265a8b7", | ||
"artifactType": "application/example", | ||
"annotations": { | ||
"com.example.artifactKey1": "value1", | ||
"com.example.artifactKey2": "value2" | ||
} | ||
Comment on lines
-163
to
-167
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will Implementations such as Homebrew currently rely on (unsafely!) using the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I see, this would be up to the user pushing the index to opt in to including in the descriptor. It would be nice to see one of the examples in the page show that behavior with |
||
"digest": "sha256:601570aaff1b68a61eb9c85b8beca1644e698003e0cdb5bce960f193d265a8b7" | ||
} | ||
], | ||
"annotations": { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -4,7 +4,6 @@ digraph G { | |
{ | ||
rank=same | ||
manifest [shape=note, label="Image manifest\napplication/vnd.oci.image.manifest.v1+json"] | ||
artifact [shape=note, label="Artifact Manifest\napplication/vnd.oci.artifact.manifest.v1+json"] | ||
} | ||
config [shape=note, label="Image config JSON\napplication/vnd.oci.image.config.v1+json"] | ||
layer [shape=note, label="Layer tar archive\napplication/vnd.oci.image.layer.v1.tar\napplication/vnd.oci.image.layer.v1.tar+gzip\napplication/vnd.oci.image.layer.nondistributable.v1.tar\napplication/vnd.oci.image.layer.nondistributable.v1.tar+gzip"] | ||
|
@@ -14,9 +13,5 @@ digraph G { | |
imageIndex -> manifest [label="1..*"] | ||
manifest -> config [label="1..1"] | ||
manifest -> layer [label="1..*"] | ||
artifact -> manifest [label="0..1"] [constraint = false]; | ||
artifact -> artifact [label="0..1"]; | ||
manifest -> manifest [label="0..1"]; | ||
artifact -> imageIndex [label="0..1"] | ||
artifact -> layer[label="0..*"] | ||
Comment on lines
15
to
-21
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Will 0-layer images be supported? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Aren't 0-layer images already supported today? $ crane manifest tianon/scratch:oci
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"size": 290,
"digest": "sha256:132144ab4e026a9b1ca95b5dfeb9892d12f0c2c1368ae0b4bdca408e62768396"
},
"layers": []
} (Maybe the spec disagrees, but as an admittedly non-image-spec maintainer I don't see a good reason for it to do so 🙈) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Currently I feel the spec can be interpreted as Layer[0] is required. (MUST/IS) we should update this to call out that Layers are option and if used to define an image ... and so forth. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I feel like this has been unclear and therefore exists in both ways. If we firm up the language to explicitly allow zero-layer images, then it should not be considered a breaking change. |
||
} |
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Regression versus Proposal E, should this be projected from the config mediatype, matching the referrers API behavior in distribution-spec 1.1-rc.1?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMO, I would love to see this language modified to
MUST
. That aligns with the distribution spec, descriptors are otherwise inconsistent.