Skip to content

Commit 58e0001

Browse files
committed
Merge remote-tracking branch 'origin/master' into tk/restore-hook-lifecycle
After unifying the pre- and post-split hook lifecycle information (this commit's first parent), merge master to pull in subsequent mainline evolution. Conflicts: runtime.md The conflicts were primarily due to: * dd0cd21 (Add a 'status' field to our state struct, 2016-05-26, opencontainers#462). * 98f0bdf (Add some related docs links, 2016-10-25, opencontainers#596). * c45ffb4 (*: Replace "user-specified code" with "user-specified program", 2016-11-18, opencontainers#629). Signed-off-by: W. Trevor King <wking@tremily.us>
2 parents 621bdb4 + 7dce97b commit 58e0001

32 files changed

+1365
-480
lines changed

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
11
output
22
schema/validate
3-
code-of-conduct.md
43
version.md

.pullapprove.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ approve_by_comment: true
22
approve_regex: ^LGTM
33
reject_regex: ^Rejected
44
reset_on_push: true
5+
author_approval: ignored
6+
signed_off_by:
7+
required: true
58
reviewers:
69
teams:
710
- runtime-spec-maintainers

.travis.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
language: go
22
go:
3-
- 1.6
4-
- 1.5.3
3+
- 1.7
4+
- 1.6.3
5+
- 1.5.4
56

6-
sudo: false
7+
sudo: required
8+
9+
services:
10+
- docker
711

812
before_install:
913
- make install.tools
14+
- docker pull vbatts/pandoc
1015

1116
install: true
1217

1318
script:
1419
- make .govet
1520
- make .golint
1621
- make .gitvalidation
17-
22+
- make docs

ChangeLog

Lines changed: 157 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,162 @@
11
OpenContainers Specifications
22

3+
Changes with v1.0.0-rc3:
4+
Additions:
5+
6+
* config: Add support for Windows-based containers (#565, #573)
7+
* config: Add process.consoleSize (#563)
8+
* config: Explicitly allow unknown extensions and document
9+
annotations key conventions (#510)
10+
* config: Define mounts entries for Solaris (#588)
11+
12+
Removals and increased restrictions:
13+
14+
* config: Require absolute paths for mount destinations (#609)
15+
* config-linux: Require absolute path for maskedPaths and
16+
readonlyPaths (#587)
17+
* config-linux: Only require /dev/console when process.terminal is
18+
true. Also require /dev/console to be provided by a bind mount
19+
(#518)
20+
* runtime: Require runtimes to generate errors when the container
21+
specified in config.json cannot be created (#559)
22+
23+
Breaking Go changes:
24+
25+
* specs-go/config: Aggressive namespacing (#567)
26+
* specs-go/config: Remove pointers from LinuxHugepageLimit,
27+
LinuxInterfacePriority, and LinuxPids properties (#586)
28+
* specs-go/state: Rename version to ociVersion (#633)
29+
LinuxInterfacePriority, and LinuxPids properties (#586)
30+
31+
Minor fixes and documentation:
32+
33+
* spec: Separate the spec from project scaffolding (#626)
34+
* README: Define "unspecified", "undefined", and
35+
"implementation-defined" (#575)
36+
* config: Clarify absolue and relative values for root.path (#558)
37+
* config: Clarify ociVersion covering the configuration <->
38+
runtime API (#523)
39+
* config-linux: Forbid duplicated namespaces with same `type`
40+
(#597)
41+
* glossary: Make objects explicitly unordered and forbid duplicate
42+
names (#584)
43+
* specs-go/config: Add platform tags to Rlimits and
44+
NoNewPRivileges (#564)
45+
* schema/defs-linux: Use int64 for major/minor types (#610)
46+
* Makefile: Add support for Go 1.7 (#547)
47+
* Makefile: Require Go >= 1.6 for golint (#589)
48+
* Makefile: Use a POSIX-compatible test ('==' -> '=') (#542)
49+
* implementations: Rename ocitools -> runtime-tools (#585)
50+
* *: Typo fixes and polishing (#556, #566, #568, #569, #571, #572,
51+
#574, #595, #596, #599, #600, #601, #603, #605, #608, #613, #617,
52+
#619, #621, #622, #623, #624, #625, #627, #629)
53+
54+
Changes with v1.0.0-rc2:
55+
Additions:
56+
57+
* config-linux: Add new architectures from libseccomp 2.3.0 (#505)
58+
* schema: Add JSON Schema for state JSON and move schema.json to
59+
config-schema.json and similar (#481, #498, #519)
60+
61+
Minor fixes and documentation:
62+
63+
* Add compliance language for platforms and architectures (#527)
64+
* Remove "unconditionally compliant" language (#553)
65+
* bundle: Remove distribution references (#487)
66+
* runtime: Fix sub-bullet indentation (#495)
67+
* config: Replace Arch fstab reference with mount(8) (#443)
68+
* config: Synchronize comments between Markdown and Go (#525)
69+
* config: Drop v0.x compatibility statement (#488)
70+
* config-linux: RFC 2119 wording for cgroupsPath (#493)
71+
* config-linux: Make linux.devices and linux.resources.devices
72+
optional (#526)
73+
* config-linux: Extend no-tweak requirement to runtime namespaces (#538)
74+
* schema: Add hook.timeout (#544)
75+
* schema: Add missing '"type": "object"' (#528)
76+
* schema: Run 'make fmt' and remove duplicates (#546, #551)
77+
* schema/config: Make 'hostname' optional (#491)
78+
* schema/config-linux: Add linux.resources.devices (#550)
79+
* specs-go/config: Add Solaris tags to User properties (#496)
80+
* specs-go/config: Make Linux and Solaris omitempty again (#502)
81+
* specs-go/config: Make KernelTCP and ClassID omitempty (#531)
82+
* specs-go/config: Fix "specified" typo for ApparmorProfile (#503)
83+
* Makefile: Remove code-of-conduct.md and version.md when clean (#541)
84+
* implementations: Mention cc-oci-runtime (#539)
85+
* Use filesystem instead of file system (#529)
86+
* .pullapprove: Add DCO check via PullApprove
87+
* GOVERNANCE: Add governance and release process docs (#521)
88+
* README: Change meeting time from 10am to 2pm Pacific (#524)
89+
* README: Update conference-call phone number (#512, #515)
90+
91+
Changes with v1.0.0-rc1:
92+
Breaking changes:
93+
94+
* runtime: Split create and start, #384, #450, #463, #464, #467,
95+
#468
96+
* runtime: Remove exec, #388
97+
* runtime: Enviroment MUST match the configuration, #397
98+
* config: Runtime MUST generate errors for unsupported platforms,
99+
#441
100+
* config: Windows mount destinations MUST NOT be nested, #437
101+
102+
Additions:
103+
104+
* solaris: Added platform-specific configuration, #411, #424, #431,
105+
#436
106+
* runtime: Add 'annotations' and 'status' to the state structure,
107+
#462, #484, #485
108+
* runtime: State no longer needs to be serialized as JSON, #446
109+
* runtime-linux: Add /dev symbolic links, #449
110+
* config: Allow absolute paths for root.path (which previously
111+
required relative paths), #394
112+
* config-linux: Add linux.mountLabel, #393
113+
* config-linux: Add suport for cgroup namespace, #397
114+
* config-linux: Runtime SHOULD NOT modify ownership of any
115+
referenced filesystem (previously the restriction only applied to
116+
the root filesystem), #452
117+
* specs-go/seccomp: Add ppc and s390x to specs-go/config.go, #475
118+
119+
Minor fixes and documentation:
120+
121+
* README: Add project.md to the Table of Contents, #376
122+
* README: Consistenly indent the Table of Contents, #400
123+
* README: Link to LICENSE, #442
124+
* README: Weekly call is OCI-wide, #378
125+
* config: Explicit runtime namespace for hooks, #415
126+
* config: Explicit container namespace for uid, gid, and
127+
additionalGids, #412
128+
* config: Fix 'string' -> 'array of strings' typo for process.args,
129+
#416
130+
* runtime: The runtime MAY validate config.json, #418
131+
* runtime: Move errors section out of operations, #445
132+
* runtime: MAY -> SHOULD for post-stop error logging, #410
133+
* schema/README: Document JSON Schema usage, #360, #385
134+
* schema: Minor description updates, #456, #461
135+
* schema/validate: Support reading documents via stdin, #482
136+
* .pullapprove: Automate review approval, #458, #474
137+
* .gitignore: Hide more auto-generated files, #386, #392
138+
* .travis: git-validation detects Travis now, #366
139+
* .travis: Regress on failure to produce docs, #479
140+
* Makefile: Filename docs.* -> oci-runtime-spec.*, #478
141+
* Makefile: Add install.tools target, #349
142+
* Makefile: Allow native pandoc implementations, #428, #448
143+
* Makefile: Prefer Bash, #455
144+
* Makefile: Travis support for .gitvalidation, #422
145+
* specs-go/config: Add missing omitempties for Process.Terminal,
146+
Root.Readonly, Spec.Linux, and Spec.Mounts, #408, #429, #430, #431
147+
* specs-go/config: Remove incorrect omitempties for User.UID and
148+
User.GID, #425
149+
* specs-go/config: Drop platform-independent comment, #451
150+
* version: Include version in generated documentation, #406
151+
* *: Anchor examples, #348
152+
* *: Fix remnants from SelinuxProcessLabel to SelinuxLabel rename,
153+
#396
154+
* *: Outsource code-of-conduct to TOB repository, #375, #413
155+
* *: RFC 2119 consistency, #407, #409, #438, #444, #449
156+
* *: Typo fixes, #390, #401
157+
* *: Whitespace fixes and validation, #380, #381, #426
158+
* ROADMAP: Remove stale targets, #435
159+
3160
Changes with v0.5.0:
4161
Breaking changes:
5162

@@ -277,4 +434,3 @@ Changes with v0.1.0:
277434
* Update Typo in ROADMAP.md
278435
* Use unsigned for IDs
279436
* version: introduce a string for dev indication
280-

GOVERNANCE.md

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Project governance
2+
3+
The [OCI charter][charter] §5.b.viii tasks an OCI Project's maintainers (listed in the repository's MAINTAINERS file and sometimes referred to as "the TDC", [§5.e][charter]) with:
4+
5+
> Creating, maintaining and enforcing governance guidelines for the TDC, approved by the maintainers, and which shall be posted visibly for the TDC.
6+
7+
This section describes generic rules and procedures for fulfilling that mandate.
8+
9+
## Proposing a motion
10+
11+
A maintainer SHOULD propose a motion on the dev@opencontainers.org mailing list (except [security issues](#security-issues)) with another maintainer as a co-sponsor.
12+
13+
## Voting
14+
15+
Voting on a proposed motion SHOULD happen on the dev@opencontainers.org mailing list (except [security issues](#security-issues)) with maintainers posting LGTM or REJECT.
16+
Maintainers MAY also explicitly not vote by posting ABSTAIN (which is useful to revert a previous vote).
17+
Maintainers MAY post multiple times (e.g. as they revise their position based on feeback), but only their final post counts in the tally.
18+
A proposed motion is adopted if two-thirds of votes cast, a quorum having voted, are in favor of the release.
19+
20+
Voting SHOULD remain open for a week to collect feedback from the wider community and allow the maintainers to digest the proposed motion.
21+
Under exceptional conditions (e.g. non-major security fix releases) proposals which reach quorum with unanimous support MAY be adopted earlier.
22+
23+
A maintainer MAY choose to reply with REJECT.
24+
A maintainer posting a REJECT MUST include a list of concerns or links to written documentation for those concerns (e.g. GitHub issues or mailing-list threads).
25+
The maintainers SHOULD try to resolve the concerns and wait for the rejecting maintainer to change their opinion to LGTM.
26+
However, a motion MAY be adopted with REJECTs, as outlined in the previous paragraphs.
27+
28+
## Quorum
29+
30+
A quorum is established when at least two-thirds of maintainers have voted.
31+
32+
For projects that are not specifications, a [motion to release](#release-approval) MAY be adopted if the tally is at least three LGTMs and no REJECTs, even if three votes does not meet the usual two-thirds quorum.
33+
34+
## Security issues
35+
36+
Motions with sensitive security implications MUST be proposed on the security@opencontainers.org mailing list instead of dev@opencontainers.org, but should otherwise follow the standard [proposal](#proposing-a-motion) process.
37+
The security@opencontainers.org mailing list includes all members of the TOB.
38+
The TOB will contact the project maintainers and provide a channel for discussing and voting on the motion, but voting will otherwise follow the standard [voting](#voting) and [quorum](#quorum) rules.
39+
The TOB and project maintainers will work together to notify affected parties before making an adopted motion public.
40+
41+
## Amendments
42+
43+
The [project governance](#project-governance) rules and procedures MAY be amended or replaced using the procedures themselves.
44+
The MAINTAINERS of this project governance document is the total set of MAINTAINERS from all Open Containers projects (runC, runtime-spec, and image-spec).
45+
46+
## Subject templates
47+
48+
Maintainers are busy and get lots of email.
49+
To make project proposals recognizable, proposed motions SHOULD use the following subject templates.
50+
51+
### Proposing a motion
52+
53+
> [{project} VOTE]: {motion description} (closes {end of voting window})
54+
55+
For example:
56+
57+
> [runtime-spec VOTE]: Tag 0647920 as 1.0.0-rc (closes 2016-06-03 20:00 UTC)
58+
59+
### Tallying results
60+
61+
After voting closes, a maintainer SHOULD post a tally to the motion thread with a subject template like:
62+
63+
> [{project} {status}]: {motion description} (+{LGTMs} -{REJECTs} #{ABSTAINs})
64+
65+
Where `{status}` is either `adopted` or `rejected`.
66+
For example:
67+
68+
> [runtime-spec adopted]: Tag 0647920 as 1.0.0-rc (+6 -0 #3)
69+
70+
[charter]: https://www.opencontainers.org/about/governance

0 commit comments

Comments
 (0)