Uh oh!
There was an error while loading. Please reload this page.
Add language for compliance requirements around platforms - #527
Conversation
wking
commented
Aug 10, 2016
I'd rather not use both “one of the platforms” and “for the protocols The “platforms” phrasing is nice and specific for the current spec, An implementation is not compliant if it fails to satisfy one or
And once we land an API spec, it would look something like:
|
mrunalp
commented
Aug 10, 2016
@wking I like your wording but we want to avoid repeating the line for each platform if we can. The only thing that will be different is config-platform.md. |
wking
commented
Aug 10, 2016
On Wed, Aug 10, 2016 at 01:40:45PM -0700, Mrunal Patel wrote:
That's not true now, although it would be if you can roll |
I like @wking 's wording. |
philips
commented
Aug 10, 2016
As discussed on the call @mrunalp please add language around "system architectures (ARM, x86-64, etc)" as well as OSes. |
hqhq
commented
Aug 11, 2016
OSes are platforms, by architecture, we usually mean x86_64, ARM etc.. I think we need language about architectures. |
mrunalp
commented
Aug 16, 2016
Updated. |
| An implementation is not compliant if it fails to satisfy one or more of the MUST or REQUIRED requirements for the protocols it implements. | ||
| An implementation that satisfies all the MUST or REQUIRED and all the SHOULD requirements for its protocols is said to be "unconditionally compliant". | ||
| An implementation that satisfies all the MUST or REQUIRED and all the SHOULD requirements for its protocols is said to be "unconditionally compliant" on one or more CPU architectures. |
There was a problem hiding this comment.
As it stands, your CPU qualification only covers “unconditionally compliant”, and we want to qualify “compliant” as well. How about:
An implementation is not compliant for a given CPU architecture if it fails to satisfy one or more of the MUST or REQUIRED requirements for the protocols it implements.
An implementation is compliant for a given CPU architecture if it satisfies all the MUST and REQUIRED requirements for the protocols it implements.
An implementation that satisfies all the MUST or REQUIRED and all the SHOULD requirements for its protocols on a given CPU architecture is said to be "unconditionally compliant" with those protocols and architectures.
which also covers “compliant” explicitly (it was previously implied to be “all cases that aren't explicitly non-compliant”).
…ctures Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
mrunalp
commented
Aug 17, 2016
Pushed update. |
wking
commented
Aug 17, 2016
On Wed, Aug 17, 2016 at 10:45:36AM -0700, Mrunal Patel wrote:
6a5b144 looks good to me. We probably want to remove wiggles like “The Solaris specification is |
…pliance language Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
mrunalp
commented
Aug 17, 2016
@opencontainers/runtime-spec-maintainers PTAL |
wking
commented
Aug 17, 2016
via email
de3f1af looks good to me too. I'm not aware of anything else that
should change to match this new compliance language, but we can find
and fix other issues (if any) later on. |
wking
commented
Aug 19, 2016
On Thu, Aug 18, 2016 at 08:14:54PM -0700, Qiang Huang wrote:
The current PR has “for a given CPU architecture” and similar language |
| Protocols defined by this specification are: | ||
| * Linux containers: [runtime.md](runtime.md), [config.md](config.md), [config-linux.md](config-linux.md), and [runtime-linux.md](runtime-linux.md). | ||
| * Solaris containers: [runtime.md](runtime.md), [config.md](config.md), and [config-solaris.md](config-solaris.md). |
There was a problem hiding this comment.
Thinking over the tangentially-related #536, we probably want to include bundle.md and glossary.md in both lists.
I think including glossary.md is unfortunate; perhaps we can revisit the decision to put the UTF-8 requirement for configuration JSON there?
hqhq
commented
Aug 26, 2016
Yeah, something like that, and I think the problem described in #39 is not resolved yet, GOARCH from golang is not sufficient for all architectures, maybe we should reopen it and discuss more. |
wking
commented
Aug 26, 2016
On Fri, Aug 26, 2016 at 08:12:09AM -0700, Qiang Huang wrote:
#441 brought over some language from opencontainers/image-spec#60 that |
hqhq
commented
Aug 26, 2016
@wking Maybe for architecture itself, GOARCH would be sufficient, but we might need some information like byte order, variant, abi etc.. which might be considered out of architecture name, so argue with GOARCH may not be a wise move. |
wking
commented
Aug 26, 2016
On Fri, Aug 26, 2016 at 08:45:34AM -0700, Qiang Huang wrote:
Maybe not, I don't know. But I still think the “for a given CPU |
So that the semantics are clear. The platform/protocol disconnect is unfortunate. "Protocol" was chosen in de3f1af (Remove language around Solaris being optional as it is covered in compliance language, 2016-08-17, opencontainers#527) because we may have compliance subsets that aren't linked to platforms [2]. I'd be open to renaming the JSON tag from platform:"..." -> protocol:"...", but that's probably more change than it's worth. [1]: opencontainers#527 (comment) Signed-off-by: W. Trevor King <wking@tremily.us>
So that the semantics are clear. The platform/protocol disconnect is unfortunate. "Protocol" was chosen in de3f1af (Remove language around Solaris being optional as it is covered in compliance language, 2016-08-17, opencontainers#527) because we may have compliance subsets that aren't linked to platforms [2]. I'd be open to renaming the JSON tag from platform:"..." -> protocol:"...", but that's probably more change than it's worth. [1]: opencontainers#527 (comment) Signed-off-by: W. Trevor King <wking@tremily.us>
So that the semantics are clear. The platform/protocol disconnect is unfortunate. "Protocol" was chosen in de3f1af (Remove language around Solaris being optional as it is covered in compliance language, 2016-08-17, opencontainers#527) because we may have compliance subsets that aren't linked to platforms [2]. I'd be open to renaming the JSON tag from platform:"..." -> protocol:"...", but that's probably more change than it's worth. [1]: opencontainers#527 (comment) Signed-off-by: W. Trevor King <wking@tremily.us>
So that the semantics are clear. The platform/protocol disconnect is unfortunate. "Protocol" was chosen in de3f1af (Remove language around Solaris being optional as it is covered in compliance language, 2016-08-17, opencontainers#527) because we may have compliance subsets that aren't linked to platforms [2]. I'd be open to renaming the JSON tag from platform:"..." -> protocol:"...", but that's probably more change than it's worth. [1]: opencontainers#527 (comment) Signed-off-by: W. Trevor King <wking@tremily.us>
So that the semantics of the tags are clear. The platform/protocol disconnect is unfortunate. "Protocol" was chosen in de3f1af (Remove language around Solaris being optional as it is covered in compliance language, 2016-08-17, opencontainers#527) because we may have compliance subsets that aren't linked to platforms [1]. I'd be open to renaming the JSON tag from platform:"..." -> protocol:"...", but that's probably more change than it's worth. The approach taken in this commit, on the other hand, renames "protocol" to "platform". I think that unnecessarily limits (or sets up confusing semantics for) the platform/protocol values you can use, but two maintainers both prefer "platform" [2,3]. [1]: opencontainers#527 (comment) [2]: opencontainers#570 (comment) [3]: opencontainers#570 (comment) Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Mrunal Patel mrunalp@gmail.com