Skip to content

Commit 7f50875

Browse files
committed
docs/command-line-interface: Require complete runtime coverage
I didn't see wording in the previous version of this spec to require runtimes to support the full API, so I've added language for that here. This ensures that callers who only need the specified API will be able to run with an any runtime that is compliant with this API. You could get some way towards this requirement before by leaning on the spec's: > An implementation is compliant if it satisfies all the applicable > MUST, REQUIRED, and SHALL requirements. but there are a number of requirements that currently lack lower-level MUSTs. For example, without the full-API requirement, the only 'delete' requirement would be: > The runtime MUST NOT attempt to read from its stdin. You could have argued that a runtime which did not implement 'delete' satisfied that condition, and so was "compliant" even in the absence of 'delete' support. However, such a runtime would likely break all compliant callers. This commit ensures that such a runtime would clearly be "not compliant". The portability SHOULD NOT is just a hint to callers. If you require extentions beyond this API spec, you'll want to ensure you are comfortable with the potential reduction in compatible runtimes. I've made a patch-level version bump for this commit. If you consider the new requirement to be an extention from the previous spec, there was no way to be a caller rely on any 1.0.0 API calls working. I think the new explicit requirement was an implicit requirement of the 1.0.0, and that sort of typo fix deserves a patch-level bump. For example, we've been requiring runtimes to support 'create' in validation/create.go since those tests landed. This commit just gives us a MUST we can cite for those (and other similar) failures. Signed-off-by: W. Trevor King <[email protected]>
1 parent b3796e2 commit 7f50875

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

docs/command-line-interface.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# OCI Runtime Command Line Interface
22

3-
This file defines the OCI Runtime Command Line Interface version 1.0.0.
3+
This file defines the OCI Runtime Command Line Interface version 1.0.1.
44
It is one of potentially several [runtime APIs supported by the runtime compliance test suite](runtime-compliance-testing.md#supported-apis).
55

66
## Notation
@@ -31,6 +31,9 @@ That executable MUST support commands with the following template:
3131
$ funC [global-options] <COMMAND> [command-specific-options] <command-specific-arguments>
3232
```
3333

34+
The runtime MUST support the entire API defined in this specification.
35+
Runtimes MAY also support additional options and commands as extensions to this API, but callers interested in OCI-runtime portability SHOULD NOT rely on those extensions.
36+
3437
## Global options
3538

3639
None are required, but the runtime MAY support options that start with at least one hyphen.

docs/runtime-compliance-testing.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44

55
In order to be tested for [compliance][], runtimes MUST support at least one of the following APIs:
66

7-
* Version 1.0.0 of the [OCI Runtime Command Line Interface](command-line-interface.md).
7+
* Version 1.0.1 of the [OCI Runtime Command Line Interface](command-line-interface.md).
88

99
[compliance]: https://github.com/opencontainers/runtime-spec/blob/v1.0.0-rc4/spec.md#notational-conventions

0 commit comments

Comments
 (0)