-
Notifications
You must be signed in to change notification settings - Fork 793
Begin adjustments on the imported specs #12
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
Conversation
|
@vbatts can you rebase on top of master? |
bb25b9c to
c146488
Compare
|
done On Fri, Apr 8, 2016 at 11:43 AM, Brandon Philips [email protected]
|
| This field specifies the image manifest schema version as an integer. This | ||
| schema uses the version `2`. | ||
|
|
||
| This REQUIRED property specifies the image manifest schema version. |
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.
This reset will make the format incompatible with Docker's manifest format. I'd rather we maintain this at 2 and deprecate the field.
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.
k. changed.
On Fri, Apr 8, 2016 at 2:21 PM, Stephen Day [email protected]
wrote:
In manifest.md
#12 (comment)
:Manifest List Field Descriptions
-
schemaVersionint
- This field specifies the image manifest schema version as an integer. This
- schema uses the version
2.
- This REQUIRED property specifies the image manifest schema version.
This reset will make the format incompatible with Docker's manifest
format. I'd rather we maintain this at 2 and deprecate the field.—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/opencontainers/image-spec/pull/12/files/c146488d55d702f2c7103da26ac5a20dfc5f34c1#r59068108
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.
We will need a note as to why it is at 2. Leaving it at 2 is fine by me.
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.
perhaps as a part of the compatibility matrix/table
On Fri, Apr 8, 2016 at 2:43 PM, Brandon Philips [email protected]
wrote:
In manifest.md
#12 (comment)
:Manifest List Field Descriptions
-
schemaVersionint
- This field specifies the image manifest schema version as an integer. This
- schema uses the version
2.
- This REQUIRED property specifies the image manifest schema version.
We will need a note as to why it is at 2. Leaving it at 2 is fine by me.
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/opencontainers/image-spec/pull/12/files/c146488d55d702f2c7103da26ac5a20dfc5f34c1#r59079019
c146488 to
8046ab7
Compare
| respective blobs. The registry will create these configurations and their IDs | ||
| using the same scheme as Docker 1.10 when it creates a legacy manifest to push | ||
| to a registry which doesn't support the new format. | ||
| The registry will continue to accept uploads of manifests in both the old and new formats. |
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.
After some thought, we may need to word this in a way that doesn't assume the existence of a registry. We can use the Accept/Allow headers to frame a fallback story, but we should talking about expressing compatibility in transport agnostic manner.
The behavior here is going to be very important to ensure we have a specification that is beneficial to the community of users. Part of the problem here is that content-addressability (content security, really), needs to be balanced against backwards compatibility and usability.
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.
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.
We really need to add distribution-agnostic fallback. A mimetype table and optional distribution layer aren't really sufficient for describing fallback that will work across transports. Otherwise, we risk losing compatibility across transports.
Perhaps, this section should describe the structure of the table.
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.
@stevvooe It is a bit hard to design with a strawman of "distribution-agnostic". Do you have a concrete example?
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.
I'm not sure if "distribution-agnostic" or "transport-agnostic" is a "strawman". It simply means to describe mediatype fallback outside of the context of http, which may refer to Accept headers. A concrete example would be if application/vnd.oci.image.manifest.v1+json is encountered, and only application/vnd.docker.image.manifest.v2+json is supported, what should be done?
Another issue is expressing a fallback precedence. For example, one might declare they can handle application/vnd.oci.image.manifest.v1+json and application/vnd.docker.image.manifest.v2+json but only supports the latter. Both are provided. Should the client convert or fallback to the format they support natively?
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.
Do you have an example transport in mind? I am confused what you are trying to ask for here. Perhaps we can move it to a separate issue?
Do you just want language like what is in the HTTP spec about quality factors?
Quality factors allow the user or user agent to indicate the relative degree of preference for that media-range, using the qvalue scale from 0 to 1 (section 3.9). The default value is q=1.
The example
Accept: audio/*; q=0.2, audio/basic
SHOULD be interpreted as "I prefer audio/basic, but send me any audio type if it is the best available after an 80% mark-down in quality."
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.
This section discusses fallback in the context of http. Let's remove the transport-specific items and describe what was here generically.
I'm really confused as to why this is an unreasonable request for this stage of the specification process. If you believe this is outside the scope of this PR, we can file a separate issue, but let's make sure it is followed up.
|
overall LGTM. |
manifest.md
Outdated
| move the Docker engine towards content-addressable images, by supporting | ||
| an image model where the image's configuration can be hashed to generate | ||
| an ID for the image. | ||
| The first goal is content-addressable images, by supporting an image model where the image's configuration can be hashed to generate an ID for the image and its components. |
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.
Let's add some kind of intro sentence to this section - even something as simple as:
There are three main goals of the Image Manifest.
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.
s/generate an ID/generate a unique ID/
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.
alrighty.
8046ab7 to
022d77d
Compare
| for one or more platforms. Its use is optional, and relatively few images will | ||
| use one of these manifests. A client will distinguish a manifest list from an | ||
| image manifest based on the Content-Type returned in the HTTP response. | ||
| The manifest list is the "fat manifest" which points to specific image manifests for one or more platforms. |
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.
We can deprecate the term "fat manifest". I'm not sure if it helps the understanding here.
|
Needs a rebase before merging. |
Signed-off-by: Vincent Batts <[email protected]>
022d77d to
f7ffdbd
Compare
|
rebased. merging now. |
Signed-off-by: Brandon Mitchell <[email protected]>
As #6 was tangled up with WIP modifications, this splits out into a new PR all the modifications.