Skip to content

Commit c44520e

Browse files
committed
runtime: Semantically version this specification
The command-line interface is largely orthogonal to the config format, and config authors and runtime callers may be entirely different sets of people. Zhang Wei called for more explicit versioning for the CLI [1]. Wedging multiple, independently versioned entities into a single repository can be awkward, but earlier proposals to put the CLI in its own repository [2] were unsuccessful because compliance testing requires both a CLI and a config specification [3]. I don't think that's a solid reason [4], but discussion along that line stalled out, before being revived in today's meeting. Unfortunately, now this CLI spec is destined for runtime-tools [5], so we may still have multiple, independently versioned entities in a single repository. Wherever this lands up, it's useful for this CLI spec to be clear about it's own versioning. [1]: opencontainers/runtime-spec#513 (comment) [2]: opencontainers/runtime-spec#513 (comment) [3]: opencontainers/runtime-spec#513 (comment) [4]: opencontainers/runtime-spec#513 (comment) [5]: http://ircbot.wl.linuxfoundation.org/meetings/opencontainers/2017/opencontainers.2017-02-08-22.00.log.html#l-125 Signed-off-by: W. Trevor King <[email protected]>
1 parent 5729695 commit c44520e

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

runtime.md

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

3-
A conformant runtime MUST provide an executable (called `funC` in the following examples).
3+
This section defines the OCI Runtime Command Line Interface version 1.0.0.
4+
5+
## Versioning
6+
7+
The command line interface is versioned with [SemVer v2.0.0][semver].
8+
The command line interface version is independent of the OCI Runtime Specification as a whole (which is tied to the [configuration format][runtime-spec-version].
9+
For example, if a caller is compliant with version 1.1 of the command line interface, they are compatible with all runtimes that support any 1.1 or later release of the command line interface, but are not compatible with a runtime that supports 1.0 and not 1.1.
10+
11+
## Global usage
12+
13+
The runtime MUST provide an executable (called `funC` in the following examples).
414
That executable MUST support commands with the following template:
515

616
```sh
@@ -105,6 +115,8 @@ $ echo $?
105115
[posix-encoding]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap06.html#tag_06_02
106116
[posix-lang]: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02
107117
[posix-locale-encoding]: http://www.unicode.org/reports/tr35/#Bundle_vs_Item_Lookup
118+
[semver]: http://semver.org/spec/v2.0.0.html
108119
[standard-streams]: https://github.com/opencontainers/specs/blob/v0.1.1/runtime-linux.md#file-descriptors
109120
[systemd-listen-fds]: http://www.freedesktop.org/software/systemd/man/sd_listen_fds.html
121+
[runtime-spec-version]: https://github.com/opencontainers/runtime-spec/blob/v1.0.0-rc4/config.md#specification-version
110122
[UTF-8]: http://www.unicode.org/versions/Unicode8.0.0/ch03.pdf

0 commit comments

Comments
 (0)