Skip to content

Conversation

@giuseppe
Copy link
Member

@giuseppe giuseppe commented Aug 4, 2017

Signed-off-by: Giuseppe Scrivano [email protected]

@caniszczyk
Copy link
Contributor

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
Copy link
Contributor

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 :)?

Copy link
Member Author

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.

@giuseppe giuseppe force-pushed the propose-libocispec branch from 0651851 to d8bf367 Compare August 4, 2017 15:48
@giuseppe
Copy link
Member Author

giuseppe commented Aug 4, 2017

Worth saying: I've rewritten the read_file module and licensed it Apache 2.0

@giuseppe giuseppe force-pushed the propose-libocispec branch from d8bf367 to 64dd665 Compare August 4, 2017 15:55
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)
Copy link
Contributor

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.

# OCI libocispec project proposal

## Abstract
Provide a C library for parsing and handle OCI runtime spec file and OCI image spec files.
Copy link
Contributor

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.

## Proposal
With repositories under the http://github.com/opencontainers organization:

Rename (transfer) https://github.com/giuseppe/libocispec would become https://github.com/opencontainers/libocispec.
Copy link
Contributor

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).
Copy link
Contributor

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.

@giuseppe giuseppe force-pushed the propose-libocispec branch from 64dd665 to 16baa6c Compare August 4, 2017 16:43
@tianon
Copy link
Member

tianon commented Aug 4, 2017

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.

@giuseppe
Copy link
Member Author

giuseppe commented Aug 4, 2017

@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 generate.py script then I don't foresee any major work on it.

I know that @0x0916 and @tanyifeng are using it in their project (it is not publicly available AFAIK)

@hqhq
Copy link

hqhq commented Aug 7, 2017

@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.

@rhatdan
Copy link

rhatdan commented Jan 25, 2018

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
Copy link
Contributor

caniszczyk commented Jan 25, 2018

@rhatdan once the new @opencontainers/tob is formed at the end of this month, they can take a look at it: #33

@rhatdan
Copy link

rhatdan commented Jan 26, 2018

@caniszczyk Thanks.

@giuseppe giuseppe force-pushed the propose-libocispec branch from 16baa6c to aa73a9f Compare May 9, 2018 09:24
@giuseppe
Copy link
Member Author

giuseppe commented May 9, 2018

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)
Copy link
Contributor

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.

Provide a C library for parsing and accessing OCI Runtime and Image specification JSON.

## Proposal
With repositories under the http://github.com/opencontainers organization:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

http -> https

### Initial Maintainers
Initial maintainers of the libocispec project:
* Giuseppe Scrivano <[email protected]> (@gscrivano)
* Qiang Huang <[email protected]>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(@hqhq)

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:
Copy link
Contributor

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"

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
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"weekly" -> "monthly"

* The #OpenContainers IRC channel

### Versioning / Roadmap
It aims to be a C library to be statically linked in the projects that need it.
Copy link
Contributor

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.

@giuseppe giuseppe force-pushed the propose-libocispec branch from aa73a9f to 91f00d0 Compare May 11, 2018 12:48
@giuseppe
Copy link
Member Author

@wking thanks, I've addressed your comments and pushed a new version

@vbatts
Copy link
Member

vbatts commented May 16, 2018 via email

@crosbymichael
Copy link
Member

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?

@caniszczyk
Copy link
Contributor

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

@giuseppe
Copy link
Member Author

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
Copy link
Member

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?

https://github.com/giuseppe/libocispec/graphs/contributors

Copy link
Member Author

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.

@mikebrow
Copy link
Member

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.
Copy link
Member

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.
Copy link
Member

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/

Copy link
Contributor

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.

* The #OpenContainers IRC channel

### Versioning / Roadmap
It aims to be a C library to be statically linked in the projects that need it.
Copy link
Member

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 :-)

Copy link
Member Author

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

### Initial Maintainers
Initial maintainers of the libocispec project:
* Giuseppe Scrivano <[email protected]> (@giuseppe)
* Qiang Huang <[email protected]> (@hqhq)
Copy link

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 : )

Copy link
Member Author

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?

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]>
@giuseppe giuseppe force-pushed the propose-libocispec branch from 91f00d0 to c546ea3 Compare May 24, 2018 13:27
@giuseppe
Copy link
Member Author

I've updated the proposal ⬆️

@giuseppe
Copy link
Member Author

is there still any interest in moving libocispec to opencontainers?

@vbatts
Copy link
Member

vbatts commented Nov 28, 2018

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.

@giuseppe
Copy link
Member Author

given there is no interest, I am going to close this PR. Thanks to anyone who partecipated in the discussion.

@giuseppe giuseppe closed this Dec 21, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants