You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Conformance tests should provide a clear, end-user runnable test suite for
@@ -94,34 +109,61 @@ contribute a library to OCI.
94
109
95
110
### Reference Implementations
96
111
97
-
While theoretically a specification can have one or more reference
98
-
implementations, the OCI runtime spec and the program, `runc`, have gone
99
-
hand in hand simply due to the particulars around the founding of the OCI.
112
+
The OCI does not require that its specifications have reference
113
+
implementations, and any project which aims to be adopted by the OCI as a
114
+
reference implementation has to be judged on its own merits. Reference
115
+
implementations should be generally usable as a building block for other
116
+
programs (thus should not be *overly opinionated*) and should have their
117
+
features limited to the set of features outlined by the relevant specification.
118
+
In addition, the popularity of the project (especially in production use-cases)
119
+
should be taken into consideration: reference implementations should be
120
+
battle-tested, after all.
121
+
122
+
The first (and currently only viable) reference implementation included in the
123
+
OCI was runc, as a reference implementation of the OCI runtime specification.
124
+
This project's inclusion is a slight oddity of history, having been a
125
+
production-ready project predating the OCI's formation and was included in the
126
+
OCI as part of the original draft runtime specification. However this strange
127
+
history does not preclude the addition of any new reference implementations,
128
+
merely that this is a process which is not well-established in the OCI and thus
129
+
any proposed projects need to have significant justification for inclusion.
100
130
101
-
It is not inconceivable that more reference implementations would be
102
-
contributed and supported within the OCI, but at this point, the only
103
-
active and viable reference implementation within the OCI is the `runc`
104
-
implementation of the runtime specification, based around the contributed
105
-
**libcontainer** codebase contributed by Docker.
106
131
-[runc](https://github.com/opencontainers/runc)
107
132
108
-
Runc is also unique in that it is an open source reference implementation,
109
-
but also a core dependent ecosystem component underneath the majority of
110
-
container engine implementations in use today.
111
-
112
-
For any future reference implementation to be adopted by the OCI, it would
113
-
need to be kept in sync with the specification it implements. For a change
114
-
to be accepted to the spec, the equivalent implementation would need to be
115
-
authored and accepted as well.
116
-
117
133
## Should my Project be in the OCI?
118
134
119
135
The OCI receives proposals suggesting additions to the current suite
120
136
of project types listed above. We understand that a perfect framework
121
137
for determining inclusion or rejection of these proposals is an
122
-
intangible goal. However, we list the following considerations to help
123
-
guide future potential submissions.
124
-
125
-
1. The OCI, unlike the CNCF, is not directly chartered for the advancement, marketing, and support of general cloud native software projects.
126
-
2. Projects consumed via a UI and/or with a significant end user experience component are unlikely to be a good fit for the OCI model.
127
-
3. The OCI has an small but active and vibrant group of participants today; however the specifications and related projects are a small niche of the overall cloud native world, and seeking out the OCI to validate or grow a community around a young project is unlikely to be a viable model. The CNCF is much more suited to that aim given the sandbox and maturity model.
138
+
intangible goal. However, the following considerations are provided
139
+
to help guide potential submissions.
140
+
141
+
* The OCI is not directly chartered for the advancement, marketing, and
142
+
support of general cloud native software projects. As our charter states: *The
143
+
Open Container Initiative does not seek to be a marketing organization, define
144
+
a full stack or solution requirements, and will strive to avoid standardizing
145
+
technical areas undergoing innovation and debate.*
146
+
* The project should be a piece of "**boring core container infrastructure**".
147
+
While this is partially subjective criterion, the key factors towards
148
+
fulfilling this requirement are:
149
+
1. The project should be as un-opinionated and extensible as is reasonably
150
+
possible.
151
+
2. Rather than being a complete solution or framework, the project should be
152
+
usable as a building-block for larger solutions and frameworks.
153
+
3. Projects consumed via a UI and/or including a significant end user
154
+
experience component may be one clear sign of a lack of fit with the OCI
155
+
as one example.
156
+
* Proposed projects should fit logically into the scope and mission of the
157
+
OCI: a home for open standards and tools which underpin the wider container
158
+
ecosystem. Proposed additions to the OCI should not conflict with existing OCI
159
+
projects, nor should they be completely unrelated to existing OCI projects.
160
+
The precise scope of the OCI is defined by the OCI Charter, but the TOB may
161
+
choose to expand the scope if they feel it is within the mission of the OCI.
162
+
163
+
In summary, the OCI has a small but active and vibrant group of participants
164
+
today. However the OCI specifications and related OCI projects are but a small
165
+
niche of the overall cloud native world, and seeking out the OCI to validate
166
+
or grow a community around an untested or experimental new project is highly
167
+
unlikely to fit the more narrow scope and mission of the OCI. We recommend
168
+
the CNCF as a much more suitable target for such projects given the maturity
169
+
model and sandbox starting point within that community.
0 commit comments