-
Notifications
You must be signed in to change notification settings - Fork 553
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
Add language for compliance requirements around platforms #527
Conversation
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:
|
@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. |
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. |
As discussed on the call @mrunalp please add language around "system architectures (ARM, x86-64, etc)" as well as OSes. |
OSes are platforms, by architecture, we usually mean x86_64, ARM etc.. I think we need language about architectures. |
Updated. |
@@ -25,7 +25,10 @@ Table of Contents | |||
In the specifications in the above table of contents, the keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in [RFC 2119](http://tools.ietf.org/html/rfc2119) (Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997). | |||
|
|||
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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”).
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.
Sounds good. Thanks!
…ctures Signed-off-by: Mrunal Patel <mrunalp@gmail.com>
Pushed update. |
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>
@opencontainers/runtime-spec-maintainers PTAL |
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.
|
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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?
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. |
On Fri, Aug 26, 2016 at 08:12:09AM -0700, Qiang Huang wrote:
#441 brought over some language from opencontainers/image-spec#60 that |
@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. |
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