-
Notifications
You must be signed in to change notification settings - Fork 54
Add proposal for libocispec #32
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
Conversation
|
before we call a formal vote on this, I would like to get comments from @philips and the @opencontainers/runtime-spec-maintainers @opencontainers/image-spec-maintainers |
|
|
||
| Rename (transfer) https://github.com/giuseppe/libocispec would become https://github.com/opencontainers/libocispec. | ||
|
|
||
| ### Initial Maintainers |
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.
any other maintainers besides you :)?
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.
submitted a new version with Qiang Huang [email protected] who offered to be a maintainer as well.
0651851 to
d8bf367
Compare
|
Worth saying: I've rewritten the read_file module and licensed it Apache 2.0 |
d8bf367 to
64dd665
Compare
README.md
Outdated
| * [Image Format Spec](https://github.com/opencontainers/tob/tree/master/proposals/image-format) | ||
| * [SELinux](https://github.com/opencontainers/tob/blob/master/proposals/selinux.md) | ||
| * [Tools](https://github.com/opencontainers/tob/blob/master/proposals/tools.md) | ||
| * [libocispec](https://github.com/opencontainers/tob/blob/master/proposals/libocispec.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.
Previous entries in this list seem to be alphabetized, although I don't know if TOB maintainers care about that.
proposals/libocispec.md
Outdated
| # OCI libocispec project proposal | ||
|
|
||
| ## Abstract | ||
| Provide a C library for parsing and handle OCI runtime spec file and OCI image spec files. |
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.
“handle” → “handling”. Or maybe “representing”? Or maybe “passing”? The library seems to handle parsing from various formats into C types and manipulating those C types in memory. There's nothing about implementing the OCI spec semantics. It would be good to have a short word/phrase here to make that distinction clear, and I don't think “handling” is specific enough.
Also, the input may be in a file, or may just be in a string (e.g. oci_container_parse_data). What they have in common is that they all parse JSON. So I'd rather end with “OCI Runtime and Image specification JSON.” or some such.
proposals/libocispec.md
Outdated
| ## Proposal | ||
| With repositories under the http://github.com/opencontainers organization: | ||
|
|
||
| Rename (transfer) https://github.com/giuseppe/libocispec would become https://github.com/opencontainers/libocispec. |
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.
“would become” → “to”.
|
|
||
| **Q: Does this change the OCI Charter or Scope Table?** | ||
|
|
||
| A: No. Nothing in this proposal is intended to amend the OCI Charter (https://www.opencontainers.org/about/governance) or OCI Scope Table (https://www.opencontainers.org/about/oci-scope-table). |
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.
Really? There's nothing in the scope table about this. I think we should ask for an entry covering this project. Although previous proposals that should have impacted the scope table have had their associated scope-table updates punted to post-proposal, so maybe we want to go that way again.
64dd665 to
16baa6c
Compare
|
IMO this looks like a really cool project, but I think it's a bit premature for the OCI to officially adopt it, especially since it's not used by any of the other projects that the OCI already maintains. I'm all for the OCI linking to it and reconsidering officialization when it's slightly more mature. |
|
@tianon I am not sure how more mature it can be. If the OCI runtime/image specs won't change in a way to break the I know that @0x0916 and @tanyifeng are using it in their project (it is not publicly available AFAIK) |
|
@tianon @giuseppe Yes we're using it in our internal project in Huawei, it's still premature and not open sourced yet. I think the implementation of this library is pretty straightforward and should be stable, most of the maintenance work would be adapting the changes in specs, so there won't be significantly more mature IMO. Regarding the usage by other OCI projects, since the major user of this library would be spec implementations, I think we'll only have one implementation for one spec in OCI according to our pre-discussions, and that implementation would most likely be a go version, so I doubt there would be any c version implementation which uses this library in OCI. |
|
Any update on this? @giuseppe is using this for a cool implementation of crun (https://github.com/giuseppe/crun), basic an OCI runtime written totally in C. |
|
@caniszczyk Thanks. |
16baa6c to
aa73a9f
Compare
|
rebased ⬆️ |
README.md
Outdated
| * [Digest](proposals/digest.md) | ||
| * [Distribution Spec](proposals/distribution.md) | ||
| * [Image Format Spec](proposals/image-format) | ||
| * [libocispec](https://github.com/opencontainers/tob/blob/master/proposals/libocispec.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.
Can you make this a relative link? See #51.
proposals/libocispec.md
Outdated
| Provide a C library for parsing and accessing OCI Runtime and Image specification JSON. | ||
|
|
||
| ## Proposal | ||
| With repositories under the http://github.com/opencontainers organization: |
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.
http -> https
proposals/libocispec.md
Outdated
| ### Initial Maintainers | ||
| Initial maintainers of the libocispec project: | ||
| * Giuseppe Scrivano <[email protected]> (@gscrivano) | ||
| * Qiang Huang <[email protected]> |
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.
(@hqhq)
proposals/libocispec.md
Outdated
| This project would incorporate the Governance and Releases processes from the OCI project template: https://github.com/opencontainers/project-template. | ||
|
|
||
| ### Project Communications | ||
| Both of the proposed projects would continue to use existing channels in use by the OCI developer community for communication including: |
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.
"Both of the proposed projects" -> "This project"
proposals/libocispec.md
Outdated
| Both of the proposed projects would continue to use existing channels in use by the OCI developer community for communication including: | ||
| * GitHub for issues and pull requests | ||
| * The [email protected] email list | ||
| * The weekly OCI developer community conference call |
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.
"weekly" -> "monthly"
proposals/libocispec.md
Outdated
| * The #OpenContainers IRC channel | ||
|
|
||
| ### Versioning / Roadmap | ||
| It aims to be a C library to be statically linked in the projects that need it. |
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.
What about versioning? I expect the ingtersection between sopported JSON and the exposed API will be interesting. Do you intend to buffer callers from breaking JSON schema changes? I expect not.
aa73a9f to
91f00d0
Compare
|
@wking thanks, I've addressed your comments and pushed a new version |
|
I'm not opposed to libocispec. I see value in having a C implementation
of OCI features.
Other's thoughts?
…On 05/11/2018 08:49 AM, Giuseppe Scrivano wrote:
@wking <https://github.com/wking> thanks, I've addressed your comments
and pushed a new version
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub
<#32 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAEF6RgG915CUECbsXeoOZZ5a_RRFmYHks5txYjmgaJpZM4Ot1eA>.
|
|
But is OCI the right place for more implementations? I thought we were shying away from putting more implementations into the OCI and keeping it spec focused. If we had to do it over again, runc would probably be somewhere else right? |
|
I think that's for the @opencontainers/tob to decide, you have the power to do what you want. I would put this more of a utility (ala runtime/image tools). The other issue with this project is that @giuseppe would have to relicense it under Apache v2 before it can even be considered for OCI |
|
I am fine to relicense it under Apache v2 if there is agreement on adding it to OCI. @crosbymichael, libocispec is not an implementation of the OCI specs, it is only the C parser (automatically generated from the JSON schema). https://github.com/giuseppe/crun is the OCI implementation that uses libocispec. |
|
|
||
| Rename (transfer) https://github.com/giuseppe/libocispec to https://github.com/opencontainers/libocispec. | ||
|
|
||
| ### Initial Maintainers |
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.
Is there a reason why you are proposing maintainers here that have not contributed code or issues directly to the project?
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.
at the time I proposed libocispec I asked around if someone was interested in co-maintaining it so to not have only one maintainer listed. I'll update the list if this is not the preferred way of doing it.
|
I see value for an c implementor and/or languages that would bind to such a lib, but may be overkill to make it a separate oci project. More of a subproject for the specs. |
| # OCI libocispec project proposal | ||
|
|
||
| ## Abstract | ||
| Provide a C library for parsing and accessing OCI Runtime and Image specification JSON. |
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.
Provide code for parsing and accessing JSON versions of OCI Runtime and Image specs. The first implementation will be a C library automatically generated directly from the OCI Runtime and Image specifications.
| ## Proposal | ||
| With repositories under the https://github.com/opencontainers organization: | ||
|
|
||
| Rename (transfer) https://github.com/giuseppe/libocispec to https://github.com/opencontainers/libocispec. |
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.
What about moving it here:
https://github.com/opencontainers/runtime-tools maybe in contrib/libocispec/c/
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.
What about moving it here:
https://github.com/opencontainers/runtime-tools maybe in contrib/libocispec/c/
My concern with that is that versioning the repo becomes tricky. Do you lock the Go and C APIs together under a single version? Version them separately with prefixed tags for C releases? And you'd need to check with runtime-tools maintainers to see if enough of them care about and feel comfortable enough with C to maintain this as well. I don't have a problem with this becoming an OCI Project in its own right, or remaining outside the OCI umbrella. But I think stuffing it into an existing OCI Project may be more trouble than its worth.
And however this shakes out, we probably want to link the library from here to raise awareness.
proposals/libocispec.md
Outdated
| * The #OpenContainers IRC channel | ||
|
|
||
| ### Versioning / Roadmap | ||
| It aims to be a C library to be statically linked in the projects that need it. |
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.
Guess that answers my versioning question :-)
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.
I guess I have to update this part :-) now libocispec supports also to be a shared library
proposals/libocispec.md
Outdated
| ### Initial Maintainers | ||
| Initial maintainers of the libocispec project: | ||
| * Giuseppe Scrivano <[email protected]> (@giuseppe) | ||
| * Qiang Huang <[email protected]> (@hqhq) |
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.
Sorry I'm not available to contribute or maintain this project now, I would recommend my colleague @tanyifeng who's been contributing to and using this project, I think he would be willing and qualified to do this job : )
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.
sure.
@tanyifeng, are you fine to be added here?
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.
Of course, I'll be glad to be a maintainer of libocispec.
Signed-off-by: Giuseppe Scrivano <[email protected]>
91f00d0 to
c546ea3
Compare
|
I've updated the proposal ⬆️ |
|
is there still any interest in moving libocispec to opencontainers? |
|
i still have interest, but for now I am not sure it makes sense, given the adoption and use. Better likely to have a page for implementations by programming language. |
|
given there is no interest, I am going to close this PR. Thanks to anyone who partecipated in the discussion. |
Signed-off-by: Giuseppe Scrivano [email protected]